个人总结
command.py
file.py
time.py
excel.py
with 的原理和用法
subprocess 模块
cline 提示词
PathLike
pathlib
peewee
生成随机ID
FastApi 使用 peewee
http connect
Dataframe Protocol
pyarrow
overload 函数重载
1111
peewee 线程安全
Python 日志模块
rabbitmq 问答
多进程 daemon 参数
记录异常
dict.py
多进程
忽略异常
timer.py
Ctrl+C 退出while
发布pip包
Bolo组件
迭代器与生成器
dataclass
单例模式(二)
单例模式(一)
errors.py
enum.py
每日学习
本文档使用 MrDoc 发布
-
+
首页
每日学习
## 2021.01.17 ### 1. python 通过字符串引入包 可以使用 importlib 或 import_string 或 __import__ ### 2. flask endpoint > 参考:[Flask中endpoint的理解](https://www.cnblogs.com/eric-nirnava/p/endpoint.html "Flask中endpoint的理解") ### 3. flannel 网络模型 #### 概念 flannel 网络模型是一个专门为k8s设计的叠加网络。 当一个容器需要与另一个宿主机上的容器通信时,flanneld 进程会将docker0 网桥发出的数据包封装,在ETCD中查询目标宿主机的IP,将数据包发送给目标宿主机,目标宿主机上的flanneld 进程解封数据包后发送给docker0 网桥,由docker0网桥将数据发送给目标容器。 #### 一些说明 - ETCD中记录了容器IP与宿主机IP的映射关系; - flanneld进程之间的通信可以理解为flannel 协议,它们有自己的数据包格式; 图片: https://uploader.shimo.im/f/Kf1LEQFLbhrLfyNx.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2NTc2NDM2MDAsImZpbGVHVUlEIjoidjNkNjN0dzN5UTN3UkhrRCIsImlhdCI6MTY1NzY0MzMwMCwidXNlcklkIjoxMDE0MDF9.H3uLXx7vUNwsmXi3saHBJDNSEBu7Y9XiIar-eLbXrB4 参考: [十分钟漫谈容器网络方案 01—Flannel](https://www.infoq.cn/article/rnbqhui1wipzj6bjiwet "十分钟漫谈容器网络方案 01—Flannel") ### k8s有状态服务 #### 概念 1. 什么是无状态服务 像nginx这种,不同pod可以共享同一份数据,每个pod 没有自己独立的数据,我们称它为无状态服务。 无状态服务可以使用 deployment或 ReplicaSet 部署。 2. 什么是有状态服务 像mysql的master-slave 集群,每个pod都有自己的持久化数据,我们称它为有状态服务。 有状态服务可以使用 StatefulSet 部署。 参考: K8s 应用管理之道 - 有状态服务 如何使用Flask-User ## 2021.01.18 ### 1. token 过期与刷新机制 需要两个token: AccessToken,过期时间设置为1天; RefreshToken,过期时间设置为2天; 当AccessToken过期时,去检测RefreshToken: 如果RefreshToken没有过期,则刷新AccessToken,同时刷新RefreshToken; 如果RefreshToken过期,则用户跳转到登录页,重新登录; 接口配置https ## 2021.01.19 k8s Service 类型 Service 有四种类型,分别为: ClusterIP:生成虚拟IP,供集群内部的容器使用。也可以用作Headless Service NodePort:将端口暴露到宿主机,客户端可以通过主机的IP和端口访问 LoadBalancer ExternalName 参考: K8S Service Headless Service 用在什么场景?如何使用? headless service 主要供StatefulSet 使用。 Headless Service 对应的每一个Pod都有独立的域名,因此可以实现Pod之间的访问,对于一些需要主从同步的集群来说这非常有用。 为什么需要Ingress 我们使用Service 也可以将服务暴露给宿主机的端口,从而给用户提供服务。但是Service 只能提供4层代理,虽然可以让我们访问后台服务,但是当我们需要根据一定的URL规则做反向代理转发的时候,Service 就无能为力了。所以对于HTTP服务来说,最好的还是7层代理,4层代理只能提供基本服务。所以我们需要Ingress 或 Nginx。 ## 2021.04.07 ### 1. Python 如何查询内存泄露 思路一: > Python的垃圾回收是引用计数法,当一个对象的引用计数降为0时,就会被回收。 我们可以使用 gc 模块分析一个对象的引用信息,便于我们查找多余的引用,或使用 weakref 去优化代码。 gc 模块有两个很好用的方法: gc.get_referrers(*objs) 返回一个列表,内容是所有直接引用了任意一个objs的对象 gc.get_referents(*objs) 返回一个列表,内容是objs所引用的所有对象 思路二: > 从python3.4 版本开始,新增了一个tracemalloc 模块,可以拍摄内存快照,并分析内存使用情况。 [Python 内存分析杂记](https://rickyhao.com/2019/07/29/python-%E5%86%85%E5%AD%98%E5%88%86%E6%9E%90%E6%9D%82%E8%AE%B0/ "Python 内存分析杂记") ### 2. tracemalloc 的原理是什么 未知 > 参考:[tracemalloc.c](https://github.com/python/cpython/blob/3.9/Modules/_tracemalloc.c#L1323 "tracemalloc.c") ### 3. Flask 框架结构 > 参考:[一文看懂FLASK框架的基本结构](https://juejin.cn/post/6844904175428599815 "一文看懂FLASK框架的基本结构") ### 4. 任务调度系统的方案 > 参考:[基于最小堆设计任务调度系统](https://www.imooc.com/read/76/article/1913 "基于最小堆设计任务调度系统") ## 2021.04.21 redis 主从复制的过程 redis 哨兵模式投票原理 redis 哨兵选举考虑的条件 redis 分布式锁 > 参考:[深入学习redis](https://www.cnblogs.com/kismetv/p/8654978.html "深入学习redis") ## 2021.04.28 单点登录的协议 CAS OpenID OAuth2 jwt syslog协议 ## 2021.05.06 ICMP协议 Ping命令 Ping命令,它到底是什么 ## 2021.06.09 rabbitmq channel是什么 rabbitmq 队列或数据有优先级? rabbitmq 如何持久化数据 rabbitmq 删除消息时,如何删除持久化的数据 rabbitmq 消息消费失败,放回队列,处在什么位置? rabbitmq publish 什么时候会失败?publish 需要确认? rabbitmq 队列设置了持久化,消息可以不设置持久化吗? rabbitmq QoS表示允许几条消息没有被确认 ## 2021.06.30 MySQL半同步和全同步 ## 2021.07.06 ### 1. 什么是服务治理 服务治理能力,包括熔断、限流、链路跟踪等 k8s不具备服务治理能力, istio 具备服务治理能力 istio 数据平面 统一服务发现 ## 2021.12.06 go 语言的slice没有提供exists查询,也没有办法做到O(1)的exist查询,但是Python的列表提供了这个方法,他们的实现有什么不同? ## 2021.12.17 #### 1. 代码格式化的原理是什么 > 参考:https://github.com/PyCQA/pycodestyle #### 2. language server 是什么,有什么作用 ## 2022.07.12 #### 1. 可哈希对象有什么特点 如果一个对象是可哈希的,那么它必须满足以下要求: > 1. 它是不可变的; 2. 它需要一个哈希函数 `__hash__()` ; 3. 它需要一个比较函数 `__cmp__()` 或者 `__equal__()` ,用来和其他对象比较; 4. 值相等的对象哈希值也一定相同; 我们都知道int类型是可哈希的,不妨来看看它有没有这些魔法函数: ``` > dir(6) [... '__eq__', ... '__hash__', ... ] ``` 可以看到确实有这些魔法函数。 我们都知道列表是不可哈希的,那我们也来看看它有没有这些魔法函数: ``` > dir([1, 2]) [... '__eq__', ... '__hash__', ... ] ``` 我们发现列表对象也有哈希函数和比较函数,那为什么它不是可哈希对象呢? 因为所有类型的基类`object` 有这两个方法,但它并没有实现这两个方法。所以并不是有这两个方法就是可哈希对象,还要看它如何实现这两个方法,而list并没有实现这两个方法,所以调用这两个方法时会抛出异常。 #### 2. 元组可以作为字典的key,说明元组是可哈希对象,那么元组的哈希是怎么计算的? 元组本身实现了哈希方法,元组在计算哈希值的时候,会提取每个元素并分别计算它的哈希值,然后把它们拼接起来再通过计算获得结果。 在Python中,每个类型都有自己的方法用来计算哈希值。 #### 3. 元组和列表的实现有什么不同? #### 4. 迭代器都有个 __length__hint 方法,用来猜测迭代器的元素数量,它是怎么猜的?
gaojian
2022年7月14日 00:17
分享文档
收藏文档
上一篇
下一篇
微信扫一扫
复制链接
手机扫一扫进行分享
复制链接
关于 MrDoc
觅思文档MrDoc
是
州的先生
开发并开源的在线文档系统,其适合作为个人和小型团队的云笔记、文档和知识库管理工具。
如果觅思文档给你或你的团队带来了帮助,欢迎对作者进行一些打赏捐助,这将有力支持作者持续投入精力更新和维护觅思文档,感谢你的捐助!
>>>捐助鸣谢列表
微信
支付宝
QQ
PayPal
Markdown文件
分享
链接
类型
密码
更新密码