自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 分布式键值存储ETCD

分布式协调组件

2022-06-16 20:56:59 1697 3

原创 grpc使用及意义

学习使用GRPC远程过程调用 RPC为何使用grpcprotobuf的使用及规范protobuf介绍字段规则默认值标识号嵌套消息远程过程调用 RPCRPC(Remote Procedure Call)远程过程调用协议,一种通过网络从远程计算机上请求服务,而不需要了解底层网络技术的协议。RPC假定了某些协议的存在,例如TCP/UDP等,为通信程序之间携带信息数据。在OSI七层模型中,RPC跨越了传输层和应用层,RPC使得开发,包括网络分布式多程序在内的应用程序更加容易。为何使用grpcprotob

2022-05-22 15:00:17 1057

原创 虚拟化技术

虚拟化技术虚拟化分类从资源提供角度分类从虚拟化实现方式分类hypervisor的架构分类hyperviosr type I型:半虚拟化(Para-virtulization)hyperviosr type II型:硬件辅助全虚拟化(Hardware-Assisted Full Virtualzation)hyperviosr type III型:操作系统虚拟化Hypervisor管理工具对比虚拟化分类从资源提供角度分类平台虚拟化如果把X86平台的CPU,内存和外设作为资源,那所对应的虚拟化技术就

2022-05-05 21:46:25 1933

原创 云计算openstack、kvm以及docker和k8s

容器技术

2022-01-11 20:15:59 5881

原创 分布式系统理论与协议

分布式理论和协议

2021-12-21 00:41:44 946

原创 http和tcp以及websocket协议

解析常见的协议TCP/IP协议HTTP协议什么是超文本什么是传输什么是协议优点总结HTTPSSSL/TLS协议分层模型TCP/IPOSI一个HTTP的请求过程二层转发以及三层路由HTTP/1HTTP/1.0HTTP/1.1队头阻塞问题HTTP/2websocket特性TCP/IP协议三次握手和四次挥手三次握手第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers

2021-12-11 15:48:55 4036 1

原创 go数据库-标准库-框架

go的数据操作数据库操作mysql增删改查redisstring的get和setstring的批量MGet和MSet操作list操作Hash表常用标准库框架数据库操作mysql增删改查增加数据addpackage mainimport ( "fmt" _ "github.com/go-sql-driver/mysql" "github.com/jmoiron/sqlx")type Person1 struct { UserId int `db:"user_id"`

2021-11-12 20:14:00 2458 1

原创 go的并发编程

go的学习--2go的并发goroutinechannel通道channel的三种操作无缓冲通道(阻塞通道)有缓冲的通道单向通道定时器select多路复用syncsync.WaitGroupsync.Oncesync.Map并发安全和锁互斥锁读写互斥锁GMP原理与调度线程与协程go的goroutinegoroutine的GMP模型的设计思想go的并发goroutine 奉行通过通信来共享内存,而不是共享内存来通信。goroutine实现goroutine的方式就是给函数前加go关键字调用pac

2021-10-22 20:11:42 204

原创 go的学习--数据类型--网络编程

go的基础数据类型汇总一览表字符串 string字符串修改字符串方法占位符数组和切片 array和slicearray定长数组slice切片切片的扩容策略new函数make函数映射 map判断键存在的写法遍历字典删除键值对map的实现原理map的主要组成结构成为map的键的规则go的map不是线程安全的,但是sync.map是线程安全的结构体匿名结构体结构体的匿名字段结构体的“继承”结构体字段的可见性几个面试题接口类型与接口的关系一个类型实现多个接口多个类型实现同一接口接口的类型断言和非接口的类型转换接口的

2021-10-21 10:56:20 339

原创 kafka消息队列

kafka介绍英文文档:kafka官方文档中文学习文档:kafka中文文档简介kafka写操作快的原因:kafka的特点磁盘随机IO和顺序IO的对比:随机和顺序I/O简介:kafka是一个事件流平台,专门为分布式高吞吐量系统而设计的消息传递系统,相对其他消息系统有更好的吞吐量、内置分区、复制和固有的容错能留,使其更适合处理大规模的消息程序。kafka的两种模式点对点:消息被保留在队列中。一个或者多个消费者可以消耗队列中的消息,但是特定消息只能由最多一个消费者消费。消息被消费后将会从队列消

2021-07-06 20:18:00 3264 1

原创 uwsgi+nginx部署django

前言:小伙子,虽然你不是专业做部署运维的,但是对于django的uwsgi部署最起码得试一试,实践一下,了解一下。博主良心建议,有益无害哈。使用uwsgi部署django其实很简单,就是在自己的项目主目录下新建一个ini文件,作为uwsgi启动整个项目的配置文件,接下来看步骤哈:1、先看看我的项目目录结构:在和manage.py同级的目录下创建xx.ini文件,文件里的内容[uwsgi]# 请求方式与端口http = 127.0.0.1:8000 # uwsgi直接访问用http,ngi

2020-12-07 17:16:12 317 1

原创 对于websocket的浅浅理解

websocket、http、https参考地址如下:https://blog.csdn.net/qq_43036190/article/details/107442010websocket理解上存在的问题1、全过程是否建立一次连接,可在我真正时间操作时,发现发送一次websocket之后,服务会自动断掉连接服务,如果要保持长连接,需要服务这边死循环保持连接,是否和websocket本身定义有冲突?2、如果要服务主动给客户推送信息,那是势必要知道推给某一个客户,而基于问题一的死循环保持连接,那么如

2020-11-11 16:39:06 238

原创 缓存数据库redis

redis简单介绍Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API,其实当前最热门的NoSQL数据库之一,NoSQL还包括了Memcached和mongodb。关于Redis和Memcached的比较请点击:Redis 和 Memcached 各有什么优缺点。Redis是NoSQL的一种,NoSQL(Not Only SQL),意即不仅仅是SQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据

2020-11-09 16:47:44 719 1

原创 关于进程通信的理解

Process间通信Queue队列PIPE管道Queue队列from multiprocessing import Process, Queueclass MyProcessGet(Process): def __init__(self, a, q, *args, **kwargs): self.a = a self.q = q super(MyProcessGet, self).__init__(*args, **kwargs)

2020-10-28 15:40:48 176

原创 mongo数据库和pymongo操作和嵌套查询

mongodb数据库

2020-10-22 18:16:12 2946 1

原创 异步发送网络请求aiohttp

并发发送异步网络请求"""注意:此处是DEMO,按需根据实际业务去改"""import asyncioimport aiohttpclass AsnycGrab(object): def __init__(self, url_list, max_threads): self.urls = url_list self.max_threads = max_threads #协程数 async def get_results(self, url

2020-10-19 10:31:20 210

原创 Cython编译项目

Cython编译项目windows下编译python项目为pyd文件将项目便以为pyc文件的命令linuxs下编译python项目为.so文件windows下编译python项目为pyd文件将以下脚本copy至项目的根下,python setup_pyd就可以了。注意:这里面有copy文件夹的操作,自己悠着点,别傻不愣登的执行CV大法,结果报错。还有,在编译项目时。不要再__init__文件中写代码。尽量,因为Cython编译项目会将py文件和py包分开,标志就是某个package下有没有ini

2020-10-19 10:19:53 950

原创 asyncio异步库创建UDP和TCP连接

异步IO:就是发起一个IO操作(如:网络请求,文件读写等),这些操作一般是比较耗时的,不用等待它结束,可以继续做其他事情,结束时会发来通知。协程:又称为微线程,在一个线程中执行,执行函数时可以随时中断,由程序(用户)自身控制,执行效率极高,与多线程比较,没有切换线程的开销和多线程锁机制。

2020-10-10 10:42:55 3499 2

原创 mysql数据库常用的操作

sql常用的操作CONCAT函数FROM_UNIXTIME函数UNIX_TIMESTAMP函数CONCAT_WS函数str_to_dateDATE_FORMATLEFT(s,n)CONCAT函数解释1、功能:将多个字符串连接成一个字符串。2、语法:concat(str1, str2,...)返回结果为连接参数产生的字符串,如果有任何一个参数为null,则返回值为null。SELECT CONCAT(id, ' ', task_name, ' ', FROM_UNIXTIME(task_st

2020-09-24 10:22:27 224

原创 django自定义logger

django自定义日志输出根据时间切割日志根据文件大小切割日志配置及实例化django中使用自带的日志系统,分割日志的方式有两种。一种是MyRotatingFileHandler,一种是MyTimedRotatingFileHandler。前者是指 日志文件到达一定大小之后自动将此文件重命名保存,在生成基础文件写入日志,如此循环。后者是指 日志文件到达一定大小之后自动将此文件重命名保存,在生成基础文件写入日志,如此循环。两者大同小异,但是django自带的分割器命名的日志格式很奇怪,这里就讲

2020-09-23 10:07:51 609

原创 casbin+python

使用casbin进行权限验证casbin介绍casbin在项目中的使用casbin介绍casbin的中文文档网址https://www.kancloud.cn/oldlei/casbin/1289455这段时间一直在做权限和角色认证的管理。做的博主是真的有点头疼,里面有很多的坑,下面我会慢慢把我踩的坑讲给你听,嘿嘿嘿我用的技术结合体:Django+oauth2+casbin其中django用来做主框架,oauth2用来做三方认证,casbin用来做权限的验证先来介绍一下casbi

2020-08-25 19:39:18 2736 3

原创 python代码结构设计

python的设计理念创建型模式工厂模式结构型模式适配器模式装饰器模式行为型模式观察者模式参考链接:https://blog.csdn.net/hbu_pig/article/details/80930375其实最近才了解到代码的设计模式一些理念,正是因为项目中写的代码,可扩展性差,前后兼容困,导致‘牵一发 而动全身’的尴尬就创建型模式工厂模式结构型模式适配器模式装饰器模式行为型模式观察者模式有时,我们希望在一个对象的状态改变时更新另外一组对象。在MVC模式中有这样一个非常常见的例子,假

2020-07-24 16:14:57 697

原创 python 网络编程IO多路复用 socket socketsever 内存泄漏问题

select、epoll、poll、udp、tcp。IO多路复用select IO多路复用自己的代码示例poll模式epoll模式select poll epoll的区别select方法 : windows linux unixpoll方法: linux unixepoll方法: linuxselect IO多路复用IO多路复用的目的即好处:同时监控多个IO事件,当哪个IO事件准备就绪就执行哪个IO事件。以此形成可以同时处理多个IO的行为,避免一个IO阻塞造成其他IO均无法执行,提高了IO

2020-07-09 15:48:27 893

原创 Django+oauth2的用户认证中心(第三方授权)

参考链接:https://docs.authlib.org/en/latest/django/比较清楚的流程图参考理解:http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.htmloauth授权的方式:授权码模式:oauth2客户端授权模式之授权码的实现流程图(authorization code)授权码模式(authorization code)是功能最完整、流程最严密的授权模式。它的特点就是通过客户端的后台服务器,与"服务提供商"的认证服务器进行互

2020-06-30 20:26:22 2297

原创 Django系列

Django系列Django基础modelsCBVmiddlewareCRUDDjango基础models数据库ORM字段和参数AutoField:int 自增列,必须填入参数 primary_key=True如果没有写 AutoField,则会自动创建一个列名为 id 的列from django.db import modelsclass Person(models.Model): id = models.AutoField(primary_key=True) # 自增的 id 主

2020-06-17 20:02:36 236

原创 MYSQL设计规范以及索引理解和事务的原理

MYSQL表结构设计原则#数据库三大范式第一范式(1NF)数据库表中的所有字段值都是不可分解的原子值意思就是保证每个字段的数据不可再被拆分,即数据不是拼接而成的长字符串,这个规则根据实际而定解释:原子性 字段不可再分,否则就不是关系数据库;反向示例:第二范式(2NF)首先是 1NF,另外包含两部分内容,一是表必须有一个主键;二是没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主键的一部分。有主键,非主键字段依赖主键解释:唯一性 一个表只说明一个事物; 即一张表只能存在一中依赖关系

2020-05-20 18:00:35 384

原创 opencv--动体追踪

物体运动检测的一个思想流程以及实现直接上代码# coding: utf-8import cv2import psutilimport threadingvideo = cv2.VideoCapture(0)# video = cv2.VideoCapture(r'E:\AIcamera\6773897721212085802.MP4')# KNN背景分割器,设置阴影检测back...

2020-01-16 15:18:41 255

原创 python的类的多继承以及调用顺序

class A(object): def go(self): print('A is go') def stop(self): print('A is stop') def pause(self): print('Not only Number')class B(A): def go(self): ...

2020-01-12 21:18:27 231

原创 python的os以及sys库常用函数

python的os,sys的使用os库sysos库os库提供通用的、基本的操作系统交互功能。os库是Python标准库,包含几百个函数,常用路径操作、进程管理、环境参数等几类。路径操作:os.path子库,处理文件路径及信息进程管理:启动系统中其他程序环境参数:获得系统软硬件信息等环境参数路径操作:os.path.abspath(path) 返回path在当前系统中的绝对路径&g...

2019-12-06 14:39:15 358

原创 python的类中常用的一些方法

类和实例的区别与联系主要是对类和类的实例做一个区别,主要以代码演示为准# -*- coding: utf-8 -*-class student: name = '我是24k' _fname = '我是_24k' __pname = '我是__24k' # def __new__(cls, *args, **kwargs): # if no...

2019-12-01 20:38:45 163

原创 mysql在windows和linux的配置

ubuntu18.04配置mysql8.04(mysql8.0支持ubuntu18.04,其他的不支持)1、清理干净ubuntu之中的mysql残留sudo apt-get autoremove mysql-server 删除mysqldpkg -l |grep ^rc|awk ‘{print $2}’ |sudo xargs dpkg -P 清理残留的mysql数据2、去mysql官网...

2019-11-28 23:32:04 382

原创 celery异步框架使用

标题常用命令及linux操作1、 xshell连接远程服务器连接远程出现ssh服务器拒绝了密码。修改/etc/ssh/sshd_config文件:PermitRootLogin prohibit-password修改为PermitRootLogin yes输入/etc/init.d/ssh restart重启sshd服务即可2、 源码安装redis1、下载源码包wget htt...

2019-11-28 22:59:43 208

原创 centos7.6.1810以及centos7.7.1908重装python和yum

查看版本号cat /etc/redhat-release安装过程卸载所有python环境和yum1、删除现有Python[root@test ~]# rpm -qa|grep python|xargs rpm -ev --allmatches --nodeps ##强制删除已安装程序及其关联[root@test ~]# whereis python |xargs rm -frv ##...

2019-11-12 22:54:02 1106 3

原创 四大文本提取选择器

beautifulsoup之bs4<!DOCTYPE html><!--[if IE 8]><html class="ie8"><![endif]--><!--[if IE 9]><html class="ie9"><![endif]--><!--[if gt IE 9]><!--&gt...

2019-11-06 11:14:55 1837 1

原创 Mysql数据库的基本操作

1、复制表结构及数据到新表(不包含主键、索引、分区等)CREATE TABLE 新表 SELECT * FROM 旧表或 CREATE TABLE 新表 AS SELECT * FROM 旧表这种方法将旧表基本结构和数据复制到新表。不过这种方法的一个最不好的地方就是新表中没有了旧表的主键、索引、Extra(auto_increment,字符集编码及排序)、注释、分区等属性 以及触发器、外键...

2019-10-21 21:28:21 182

原创 算法及数据结构

排序算法之快排序实现原理:话不多说,直接上代码,唯美暴力:"""实现原理:一个至少有两个数的列表拿出第一个元素,对其进行归位,即第一个元素最后的位置左侧都是比这个元素小的值,右边的都是比这个元素大的值,这个元素就是一个分割线。再以此元素的位置分割源列表为两个列表,不包括此元素,把左右两个列表,进行重复的归位,而这个过程为递归实现,直到递归最后为1个元素,也就是最后的列表中只有一个......

2019-10-18 23:20:49 191

原创 sqlalchemy的foreignkey操作

创表操作create_table_foreignkey.py#一对多建表操作from sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import create_enginefrom sqlalchemy import Column, Integer, String, ForeignKeyfrom sq...

2019-10-03 16:08:41 2965 1

原创 SQLalchemy的初步学习

创建表,创建引擎create_table.pyfrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import Column, Integer, String, Textfrom sqlalchemy import create_engine#创建ORM模型基类Base = declarative...

2019-10-03 10:59:57 176

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除