在公司内部及社区中分享的PPT.
- apache pulsar的设计实现原理
- Qcon海量长连接消息推送系统实践
- 网络编程那些事儿
- Golang项目实战
- Etcd的设计与实现
- git的那些事儿
- 分布式消息推送
- Kafka的设计与实现
- TCP的那些事儿
- Golang高级编程技巧
- GRPC的那些事儿
- 分布式任务系统
- 优雅的编程者
- 分布式行情推送系统(golang)
- Redis经验之谈
- http2和quic的那些事儿
- kubernetes的那些事儿
- istio的那些事儿
- Service Mesh的那些事儿
- RedisCluster那些事儿
- golang高级讲义
- golang高性能实战
- mysql快速讲义
- 微服务那些事儿
- 异步io调度框架的实现
- cdn设计原理
- 分析mysql acid设计实现
- Python Gil全局锁那些事儿
- Redis设计实现
- 分布式一致性raft实现原理
- Python高级内存管理
- 美妙的多进程管理
- 聊聊集群管理
2023-10-12
- Apache pulsar 的架构设计
- Pulsar broker 的计算层设计
- 系统 IO 的介绍 (page cache, buffered io, direct io ...)
- Pulsar bookKeeper 的存储层设计
- Pulsar 的高级功能设计
- QA
2021-06-30
- 超百万的⻓连接接入
- 每天近 100 亿条消息
- 高峰值时每秒 70w+ 条消息 目标
- 如何尽量保证消息的低延迟
- 如何保证系统的高并发
- 如何保证消息的可靠性
- 如何保证系统的可用性
- ...
2021-12-16
- 收包发包原理, socket及阻塞非阻塞, 同步异步的本质
- linux 五种IO模型
- io多路复用模型
- select
- poll
- epoll
- 数据结构组成
- 如何使用 epoll 的那几个方法
- 从底层来讲解 epoll 的实现原理
- epolloneshot 的场景
- 水平触发和边缘触发到底是怎么一回事, 各种case来描述
- 社区中常见的服务端使用 epoll 哪种触发模型
- epoll 的开发技巧
- io_uring
- aio 到底是怎么一回事? 存在的问题
- 当前社区比较流行的 网络编程 模型
- 新线程模型
- 单多路复用 + 业务线程池模型
- prefork 模型
- reactor
- proactor
- 常见的网络编程问题
- 半连接全连接代表的意思,如何配置,不同内核参数下表现形式
- 常见的读写返回值的处理方式
- reuseaddr vs reuseport
- epoll 的惊群问题
- 粘包半包
- 半关闭
- 如何实现异步 connect
- 弱网络问题, kcp
- fork, exec, system 在继承传递 fd 的问题
- 如何实现网络服务的 upgrade
- 论心跳的重要性, 为什么使用应用层心跳
- 如何处理各种的网络异常问题
2021-11-08
- 代码规范
- 接口规范
- Git规范
- 常见设计模式
- Golang开发经验
- Golang编码技巧
2021-07-05
- raft共识算法
- boltdb知识点
- etcd自身的功能实现
- 关键结构体
- mvcc实现
- treeindex及boltdb存储布局
- txn事务的实现
- watch监听的实现
- lease监听的实现
- compact的实现
- defrag的实现
- 锁的实现
- etcd的使用经验
2021-04-21
- git由来
- git原理 (大篇幅讲解)
- git规范 (git-flow工作流讲解)
- git技巧
2021-03-24
2021-02-23
2021-01-06
2020-11-15
2020-09-30
讲述了grpc的特点, 使用方法及生产环境中的经验,话题包括了http1.1, http2.0, http3.0的实现, protobuf的编码实现, wireshark抓包分析grpc等等.
2020-06
2020-03
2019-12
2019-11
2019-08
2019-08
2019-07
2019-07
2019-02
2018-07
2018-03
2017-08
2017-05
2017-02
2016-12
2016-07
2016-05
2016-04
2016-03
2015-08
2015-06
2015-02
2014-09