diff --git a/README.md b/README.md index f21ed94..26c5108 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,19 @@ # 技术分享PPT - 在公司内部及社区中分享的PPT. ## Download -[download in github](https://github.com/rfyiamcool/share_ppt/releases) +[download in github](https://github.com/rfyiamcool/share_ppt/tags) -## MENU +## Agenda +- [网络编程那些事儿-meican](#网络编程那些事儿-meican) +- [apache pulsar的设计实现原理](#ApachePulsar的设计实现原理) +- [Qcon海量长连接消息推送系统实践](#Qcon海量长连接消息推送系统实践) +- [网络编程那些事儿](#网络编程那些事儿) +- [Golang项目实战](#Golang项目实战) - [Etcd的设计与实现](#Etcd的设计与实现) -- [git的那些事儿](#git的那些事儿) +- [git的那些事儿](#GIT的那些事儿) - [分布式消息推送](#分布式消息推送) - [Kafka的设计与实现](#Kafka的设计与实现) - [TCP的那些事儿](#TCP的那些事儿) @@ -17,7 +21,7 @@ - [GRPC的那些事儿](#GRPC的那些事儿) - [分布式任务系统](#分布式任务系统) - [优雅的编程者](#优雅的编程者) -- [分布式行情推送系统(golang)](#分布式行情推送系统(golang)) +- [分布式行情推送系统(golang)](#分布式行情推送系统golang) - [Redis经验之谈](#Redis经验之谈) - [http2和quic的那些事儿](#http2和quic的那些事儿) - [kubernetes的那些事儿](#kubernetes的那些事儿) @@ -40,6 +44,149 @@ ## LIST +### 网络编程那些事儿-meican + +#### 分享时间 + +2023-12-20 + +#### ppt地址 + +[下载地址](network_skill.pdf) + +#### 截图 + + + + + + +### ApachePulsar的设计实现原理 + +#### 分享时间 + +2023-10-12 + +#### 内容 + +- Apache pulsar 的架构设计 +- Pulsar broker 的计算层设计 +- 系统 IO 的介绍 (page cache, buffered io, direct io ...) +- Pulsar bookKeeper 的存储层设计 +- Pulsar 的高级功能设计 +- QA + +#### ppt地址 + +[下载地址](apache-pulsar.pdf) + +#### 截图 + + + + + + +### Qcon海量长连接消息推送系统实践 + +#### 分享时间 + +2021-06-30 +#### 内容 + +- 超百万的⻓连接接入 +- 每天近 100 亿条消息 +- 高峰值时每秒 70w+ 条消息 目标 +- 如何尽量保证消息的低延迟 +- 如何保证系统的高并发 +- 如何保证消息的可靠性 +- 如何保证系统的可用性 +- ... + +#### ppt地址 + +[下载地址](qcon_push_service.pdf) + +#### 截图 + + + + + +### 网络编程那些事儿 + +#### 分享时间 + +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 + - 论心跳的重要性, 为什么使用应用层心跳 + - 如何处理各种的网络异常问题 + +#### ppt地址 + +[下载地址](network_server.pdf) + +#### 截图 + + + +### Golang项目实战 + +#### 分享时间 + +2021-11-08 + +#### 内容 + +- 代码规范 +- 接口规范 +- Git规范 +- 常见设计模式 +- Golang开发经验 +- Golang编码技巧 + +#### ppt地址 + +[下载地址](golang_skills.pdf) + +#### 截图 + + + ### Etcd的设计与实现 #### 分享时间 @@ -70,7 +217,7 @@ -### GIT的哪儿事儿 +### GIT的那些事儿 #### 分享时间 @@ -205,7 +352,7 @@ -### 分布式行情推送系统(golang) +### 分布式行情推送系统golang #### 分享时间 diff --git a/apache-pulsar.pdf b/apache-pulsar.pdf new file mode 100644 index 0000000..07745ab Binary files /dev/null and b/apache-pulsar.pdf differ diff --git a/golang_skills.pdf b/golang_skills.pdf new file mode 100644 index 0000000..cb9402e Binary files /dev/null and b/golang_skills.pdf differ diff --git a/images/golang_skills.jpg b/images/golang_skills.jpg new file mode 100644 index 0000000..5eeb9a8 Binary files /dev/null and b/images/golang_skills.jpg differ diff --git a/images/network_server.jpg b/images/network_server.jpg new file mode 100644 index 0000000..6c7831a Binary files /dev/null and b/images/network_server.jpg differ diff --git a/images/network_skill_1.png b/images/network_skill_1.png new file mode 100644 index 0000000..55501f7 Binary files /dev/null and b/images/network_skill_1.png differ diff --git a/images/network_skill_2.png b/images/network_skill_2.png new file mode 100644 index 0000000..c691883 Binary files /dev/null and b/images/network_skill_2.png differ diff --git a/images/network_skill_3.png b/images/network_skill_3.png new file mode 100644 index 0000000..b861541 Binary files /dev/null and b/images/network_skill_3.png differ diff --git a/images/network_skill_4.png b/images/network_skill_4.png new file mode 100644 index 0000000..dbe19d3 Binary files /dev/null and b/images/network_skill_4.png differ diff --git a/images/pulsar_1.jpg b/images/pulsar_1.jpg new file mode 100644 index 0000000..2d0ee94 Binary files /dev/null and b/images/pulsar_1.jpg differ diff --git a/images/pulsar_2.jpg b/images/pulsar_2.jpg new file mode 100644 index 0000000..c4e53c3 Binary files /dev/null and b/images/pulsar_2.jpg differ diff --git a/images/pulsar_3.jpg b/images/pulsar_3.jpg new file mode 100644 index 0000000..8224274 Binary files /dev/null and b/images/pulsar_3.jpg differ diff --git a/images/pulsar_4.jpg b/images/pulsar_4.jpg new file mode 100644 index 0000000..7823b7f Binary files /dev/null and b/images/pulsar_4.jpg differ diff --git a/images/qcon_push_service01.jpg b/images/qcon_push_service01.jpg new file mode 100644 index 0000000..45bf9e7 Binary files /dev/null and b/images/qcon_push_service01.jpg differ diff --git a/images/qcon_push_service02.jpg b/images/qcon_push_service02.jpg new file mode 100644 index 0000000..ebc323c Binary files /dev/null and b/images/qcon_push_service02.jpg differ diff --git a/images/qcon_push_service03.jpg b/images/qcon_push_service03.jpg new file mode 100644 index 0000000..1b5fa50 Binary files /dev/null and b/images/qcon_push_service03.jpg differ diff --git a/images/shark_home.jpg b/images/shark_home.jpg deleted file mode 100644 index c99e2e6..0000000 Binary files a/images/shark_home.jpg and /dev/null differ diff --git a/network_server.pdf b/network_server.pdf new file mode 100644 index 0000000..4070e24 Binary files /dev/null and b/network_server.pdf differ diff --git a/network_skill.pdf b/network_skill.pdf new file mode 100644 index 0000000..8703126 Binary files /dev/null and b/network_skill.pdf differ diff --git a/qcon_push_service.pdf b/qcon_push_service.pdf new file mode 100644 index 0000000..66941f1 Binary files /dev/null and b/qcon_push_service.pdf differ