- 博客(38)
- 收藏
- 关注
原创 2019.03.12 - 常见算法和数据结构
文章目录抽象数据类型和面向对象编程示例:Bag类抽象数据类型和面向对象编程学习资料Python 中文数据结构和算法教程Python 讲解笔记与代码 - Github利用class实现数据结构datamethodAbstract Data Type, ADT:抽象数据类型示例:Bag类data:容器methodadd:添加remove:删除...
2019-03-12 17:55:31 627 1
原创 CAS协议原理与代码实现(单点登录 与 单点登出的流程)
CASCAS协议原理应用场景传统方式及弊端CAS协议原理概念解释组成部分CAS基本流程CAS协议的具体流程及细节建立单点登录,首次访问豆瓣第二次访问豆瓣读书首次访问豆瓣电影单点登出(SLO)代码实现(基于Flask)CAS协议原理应用场景豆瓣公司旗下的有多种服务,豆瓣用户需要一次登录就实现豆瓣旗下所有服务的登录。豆瓣电影、豆瓣读书、豆瓣音乐、豆瓣同城等。以上场景即为单点登录。传统方...
2018-12-30 18:24:15 3194 6
原创 OAuth2.0协议及演示服务搭建
OAuth2.0OAuth2.0协议应用场景传统方法及弊端弊端基本概念名词定义OAuth基本思路OAuth2.0基本流程OAuth2.0多种授权模式授权码模式步骤流程步骤参数细节A步骤:客户端申请认证的URIC步骤:服务器回应客户端的URID步骤:客户端向认证服务器申请令牌的HTTP请求代码实现(OAuth2.0第三方Server和认证Server搭建)具体流程数据库关系关键点参考资料OAut...
2018-12-18 18:50:23 931 1
原创 WebRTC基础知识
对称 NAT:Symmetric NAT 该方式是限制最多的一种,必须使用TURN服务。一对一 NAT:外部的IP和port可以映射到内部的IP和port。
2023-08-09 15:11:27 203
原创 学习Makefile的一些资料
学习Makefile的一些资料Makefile之Makefile运行用Makefile简化重复的多个命令GNU Makefile–命令行参数的传递Makefile学习笔记<显示/隐藏命令 忽略命令错误>
2023-07-10 16:50:06 187
原创 Sanic、uvloop及Asyncio的局限
如果追求性能,建议使用原生支持高并发和协程的语言,如:Golang、node.js等,代价就是切换技术栈,开发成本的增加。即便不开发 Sanic 服务,也可以使用 uvloop 来替换 asyncio 内部的事件循环。uvloop是Python原生事件循环的替代品,能提高了性能。这是用简单的echo服务做的测试,不能代表所有生产环境的情况。Python基于协程的异步是为了弥补GIL对多线程并发的限制。只要有一处同步就会阻塞整个线程及其中的所有协程。目前主要是很多库还是同步的。
2023-07-03 14:38:43 650
原创 网络io模型、同步异步及libuv
同步阻塞 IO 模型是最常用的一个模型,也是最简单的模型。在linux中,默认情况下所有的socket都是blocking。它符合人们最常见的思考逻辑。阻塞就是进程 “被” 休息,CPU处理其它进程去了。在这个IO模型中,用户空间的应用程序执行一个系统调用(recvform),这会导致应用程序阻塞,什么也不干,直到数据准备好,并且将数据从内核复制到用户进程,最后进程再处理数据,在等待数据到处理数据的两个阶段,整个进程都被阻塞。不能处理别的网络IO。
2023-06-27 15:46:50 281
原创 2022.06.12 - Vue学习笔记
Vue学习笔记区分:js表达式 和 js代码表达式:一个表达式会产生一个值,可以放在任何一个需要值的地方:aa+bdemo(1)x === y ? ‘a’ : ‘b’js代码/语句:if语句for语句模板语法模板语法有两大类插值语法:功能:用于解析标签体内容写法:{{xxx}},xxx是js表达式,且可以直接读取data中的所有属性。指令语法:功能:用于解析标签(包括:属性、标签体内容、绑定事件等)eg: 或 简写为 ,xxx同样是j....
2022-06-12 22:50:41 178
原创 2021.09.05 - Python重难点总结
文章目录多重继承顺序问题&同名方法类的魔法方法(`class.__fun__()`)详解装饰器函数装饰器无参数有参数类装饰器多重继承基本概念:多重继承-廖雪峰顺序问题&同名方法问题:如果不同的父类中存在 同名的方法,子类对象在调用方法时,会调用哪一个父类中的方法呢?Python 中的 MRO (方法搜索顺序)Python 中针对 类 提供了一个内置属性 mro 可以查看方法搜索顺序MRO 是 method resolution order,主要用于在多继承时判断 方法
2021-09-05 21:00:40 152
原创 2021.06.14 - 记一次”分页“功能踩坑
文章目录项目背景方案方案1Redis改进方案粘性会话改进方案方案2思考项目背景需求:运营后台的分页功能(基于时间线的 审核 和 管理页面)项目场景:类似 朋友圈 的动态发布,会有大量朋友圈(图文/视频)发布,数量会达 几十W~百万级。技术框架:Django+Vue做前后端分离。方案方案1简介:第一次查询时,取出所有数据(符合查询条件的数据),然后进行分页 并放入本地缓存,得到一个缓存Key(Page Key),返回给前端。前端需要查询分页结果时,直接使用该Page Key和页码 从内存缓
2021-06-14 18:11:49 108
原创 2021-04-06 - Django生产部署的相关概念与思考(wsgi/gunicorn)
Django生产部署常用组合按照请求的生命周期顺序(Request -> Response)Nginx -> Gunicorn -> DjangoNginx -> Uwisg -> DjangoGunicorn使用示例# gunicorn使用gevent来运行Django服务gunicorn --workers=2 --worker-class gevent --timeout 180 -b 127.0.0.1:8000 story_admin.w
2021-04-06 18:25:44 296
原创 2021-03-21 - 网络知识指南整理
文章目录网络协议基础网络分层总结键入网址再按下回车的全过程使用 IP 地址访问 Web 服务器使用域名访问 Web 服务器TCP/IP & UDPHTTP/HTTPS提示:其中很多是付费课程,仅做个人指南和整理,无任何推广。网络协议基础网络分层网络分层(以http为例):常说的“四层”和“七层”到底是什么?“五层”“六层”哪去了?OSI与TCP/IP网络分层模型比较总结1、二层转发:二层应该指数据链路层,工作在二层的设备,通过查找到目标MAC地址,进行数据转发三层路由:
2021-03-21 22:49:37 109
原创 20210301 - RabbitMQ学习笔记
RPC概括图RPC将像这样工作客户端启动时,它将创建一个匿名排他回调队列。对于RPC请求,客户端发送一条消息,该消息具有两个属性: reply_to(设置为回调队列)和correlation_id(设置为每个请求的唯一值)。该请求被发送到rpc_queue队列。RPC工作程序(又名:服务器)正在等待该队列上的请求。出现请求时,它会使用reply_to字段中的队列来完成工作,并将消息和结果发送回客户端。客户端等待回调队列上的数据。出现消息时,它将检查correlation_id属性。如果
2021-03-01 16:11:26 91
原创 2021-01-22 - Django事务、delete、多数据库
背景Django 3.1.5Django配置:默认配置多数据库default: default_db表:user表another_db: another_db表:another表尝试delete和更新数据代码问题:delete未回滚且生效,user回滚。代码内容:尝试delete another_db.another表中的数据且更新 user表中的enable字段def delete_anchor(id): user = User.obje
2021-01-22 16:32:39 309 1
原创 2020.01.04 - 无法import模块
背景报错提示:ModuleNotFoundError: No module named 'xxx'项目结构:import相关代码:from proto.VCProto_pb2 import *from live_service.base import TestBase, S2STestBase原因原理:导入一个模块时,import xxx,默认情况下python解析器会搜索当前目录、已安装的内置模块和第三方模块,搜索路径存放在sys模块的path中:sys.path。
2021-01-04 16:55:30 162
原创 2020-12-31 - 记元旦的一次部署服务尝试
背景机器:阿里云服务器服务:普通sanic服务(python-web服务)问题完成 mysql, redis与虚拟环境配置完成 阿里云服务器的安全组配置(ip与端口)服务启动成功服务器本地可以curl,但从外网无法访问服务。思路查看防火墙firewalld防火墙情况:firewall-cmd --list-all防火墙服务状态:systemctl status firewalldiptables -L甚至ufw status坑服务监听127.0.0
2020-12-31 17:43:31 101
原创 Nginx学习笔记 - 《Nginx核心知识100讲》
文章目录初识NginxNginx的优点初识NginxNginx适用于哪些场景:静态资源服务- 通过本地文件系统提供服务反向代理服务Nginx的强大性能缓存负载均衡Api服务OpenRestyNginx出现的历史背景(Nginx为什么出现?)低效的Apeche:一个连接对应一个进程,处理完一个请求才会处理下一个,无法支持“高并发”。新增服务器绝大多数都是NginxNginx的优点...
2020-08-02 19:20:44 2743
原创 2018.06.28 - Flask学习笔记
2018.05.16-Flask-Official文章目录2018.05.16-Flask-Official学习目标配置路由整体框架配置路由:app.route()转换器 + 路径参数变量:获取路径参数转换器构造URLHTTP方法静态文件templates的位置模板的使用单元测试请求对象文件上传Cookies重定向和错误响应会话如何生成强壮的密钥消息闪现日志记录整合 WSGI 中间件部署到 Web 服务器Flaskr-博客项目创建文件夹创建数据库模式应用设置代码数据库路径创建数据库项目-zlktqa_de
2020-07-12 20:30:41 559
原创 记一次配置SSH Key
流程本地生成key:ssh-keygen创建,目录:~/.ssh私钥:id_rsa(只可放在本地,千万不可分享。)公钥:id_rsa.pub(放在服务器,通过 私钥可得到公钥,反之不可。)把公钥放到服务器:写到~/.ssh/authorized_keys然后在CRT等工具中 使用 PublicKey方式登录(使用id_rsa.pub)。参考设置 SSH Key 登录服务...
2020-04-26 15:56:28 214
原创 ansible及ansible-playbook 使用指南
文档每个模块的文档能够通过命令行的 ansible-doc 工具来获取:ansible-doc yum列出所有已安装的模块文档::ansible-doc -l参考Playbooks简介:Playbooks模块超简介:模块相关...
2020-04-22 19:26:47 185
原创 记一次编译安装python服务
文章目录背景编译安装python创建虚拟工作环境编译安装lxml的依赖库打包即部署supervisor配置环境变量参考背景有一个利用sanic框架和lxml库的服务需要打包代码和环境 便于 直接 解压 就可运行服务。选择通过 编译安装 python 及 lxml依赖的libxml2和libxslt。通过编译安装 及 配置环境变量,可以不用通过 apt 安装依赖,进而方便部署 及 减少占用系...
2020-03-17 17:38:51 142
原创 Zabbix使用指南
文章目录概念概念抽象流程:我们想监控的指标在zabbix中称为“监控项”(item),如 磁盘使用率。如果想获取指标的值,必须使用 “键”(key, item key),key 类似对应命令的“命令别名”,通过 key,可以监控cpu、内存、硬盘灯常用指标信息,还可自定义key。...
2020-02-06 17:02:57 598
原创 logging日志模块
目录logging模块的简单使用代码:使用范例参数详解RotatingFileHandler示例TimedRotatingFileHandler示例使用配置文件参考logging模块的简单使用代码:使用范例注意:需保证有logs文件夹,用于存放日志文件。# encoding: utf-8# 创建loggerimport logging.handlersimport osfro...
2019-11-11 17:49:26 124
原创 2019.10.18 - Linux与MacOS 修改系统时间
查看时间dateMacOS:Linux:修改时间Linuxntp自动校时关闭ntp自动校时:sudo timedatectl set-ntp no打开ntp自动校时:sudo timedatectl set-ntp yesdate -s修改系统时间sudo date -s "2016/11/11 10:21:32"sudo date -s "20...
2019-10-18 11:44:37 1861
原创 2019.07.02 - SQL 日期时间换算 与 UTC时区转换,即dateadd(), date_add(), date()使用
文章目录使用场景DateTime数据格式SQL Server的日期换算MySQLTimeStamp数据格式使用场景日期换算往往用于UTC时间+时区UTC时间DateTime数据格式SQL Server的日期换算DATEADD(hour,2, creat_time):增加两小时DATE(creat_time):获取日期"2019-06-28"Amazon RedShi...
2019-07-02 10:32:32 9709
原创 2019.06.18 - Protobuf及WireShark抓包分析
文章目录WireShark抓包分析WireShark抓包分析wireshark监听localhost地址时,需要选择Loopback: lo0这个选项。找到相应的Request请求,然后 右键选择 - 查看HTTP流示例HTTP报文,请求 和 响应(Body为乱码,因为被加密)...
2019-06-18 12:26:48 1376
原创 2019.06.02 - Git
文章目录Git基础概念Git命令行GitHub先建立本地仓库,后建立远程仓库先建立远程仓库,后建立本地仓库其他代码管理分支如何同步远程与本地利用branch利用git fetch利用git stash查看所有log基于《2018.06.07 - Git》Git基础概念工作文件夹(Working Directory)暂存区(Stage,Index)本地仓库(本地Repository,HE...
2019-06-02 11:17:57 117
原创 2019.05.22 - HTTP、HTTPS与QUIC 协议
文章目录HTTP协议HTTP 请求的准备HTTP请求的构建第一部分:请求行GETPOSTPUTDELETE第二部分:首部字段Accept-Charset(字符集)Content-Type(正文格式)Cache-control与If-Modified-Since(缓存控制)缓存HTTP 请求的发送HTTP 响应/返回的构建状态码首部字段HTTP 响应/返回的发送HTTP 2.0HTTP 2.0的特性...
2019-05-20 16:57:58 848
原创 2019.03.22 - LockFile模块解读
文章目录模块概述代码来源模块目的模块结构LockFileLinkLockFile模块概述代码来源Githubpip install lockfile:PyPI模块目的lockfile通过LockFile类,简单地实现了“文件锁”功能。模块结构__init__.pylinklockfile.pymkdirlockfile.pypidlockfile.pysqlitelo...
2019-03-25 10:48:47 1223
原创 BIRT的“Scripted数据源”
BIRT的“Scripted数据源”开发与部署BIRT的“Scripted数据源”开发环境开发实例Java源码在Java工程中创建复合JavaBean类Contact.java在Java工程中创建数据工厂类ContactListFactory.java报表编程准备步骤编写数据访问脚设计报表视图部署与浏览参考BIRT的“Scripted数据源”BIRT是用于制作和生成excel、word、pd...
2019-01-29 18:29:37 376
原创 not found for libcrypto
解决方法sudo cp /usr/lib/libcrypto.35.dylib libcrypto.35.dylib参考:Unable to configure openssl, libcrypto not found error with openssl library installed
2018-11-07 19:41:52 2467
原创 SNMP介绍与netsnmp库使用
SNMP协议与netsnmp库使用SNMP协议SNMP基础观念概述SNMP系统的三大基本组件SNMP协议的常见版本MIB管理信息库查看MIB库的软件SNMP常用操作最基本的三种操作SNMP七种操作get-requestget-next-requestgetBulkRequestget-responseset-requesttrapinformRequestCommunity的安全问题(SNMPv1...
2018-11-06 18:58:50 8583 1
原创 ICMP协议与自动化ping实现
ICMP协议与自动化ping实现ICMP协议ICMP报文结构报头填充数据报文类型PING自动化ping(基于scapy实现)ICMP协议全称为互联网控制消息协议(Internet Control Message Protocol,缩写:ICMP),它用于TCP/IP网络中发送控制消息,提供可能发生在通信环境中的各种问题反馈,使管理者可以对所发生的问题作出诊断。ICMP 协议依靠IP协议来完成...
2018-10-30 18:05:14 858
原创 浅谈Python的四舍五入
浅谈Python的四舍五入浅谈Python的四舍五入Python自带的round方法Python2.7.10的roundPython 3.6.4的roundPython的format保留小数位numpy模块的around方法浅谈Python的四舍五入试着探讨python2.7和python3.6中的round函数,numpy的around函数等多种实现四舍五入的方法尝试和各自缺陷,并不对深层次...
2018-09-19 18:36:41 6296
原创 更新MacOS后,丢失xcode(即xrun报错)和 其他关于xcode的坑。
想必用Mac的程序猿都遇到过,xrun报错。原因:就是每次MacOS更新都会自动卸载xcode。解决方案:在terminal运行 xcode-select –install。就是手动重装xcode,然后用xcode-select --install来安装一些xcode插件。深入追问:近日,邮件联系了apple developer询问,何种级别的MacOS更新会触发这种情况,并没有得到满意的...
2018-07-05 11:35:11 2514
原创 Pycharm2018设置debug模式与host,port的坑
最近,Pycharm升级到2018版,没想到遇到大坑。在编写Flask项目时,Debug=True后,代码调试模式无法开启。然后,尝试绑定 PORT=8888,也不能成功。Pycharm的Debug模式必须在又上角 运行按钮 左侧 的下拉栏中 选择 Edit Config...,在其中手动勾选 Debug Mode。其后,我尝试寻找HOST和PORT设置的相关选项,但是无果。经过在中外论坛的一番查...
2018-06-22 16:42:09 7836 3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人