异步io架构的设计实现

  • 77 浏览

rfyiamcool

2020/11/20 发布于 技术 分类

http://xiaorui.cc

http://github.com/rfyiamcool

异步io架构的设计实现

go epoll  async epoll 

文字内容
1. 异步io调度框架的实现 峰云就她了 http://xiaorui.cc
2. ⽹卡收到数据之后 包少,硬中断 包多,屏蔽硬中断,DMA+软中断
3. socket详细流程 tcp三次握⼿ setblocking backlog多⼤合适? syn, accept队列 accept(), Why new socket 协议栈 粘包 buffer缓冲区⼤小
4. IO阻塞的本质 读缓冲,写缓冲区 send,recv原理 满加锁,空解锁 tcp ack 滑动窗⼝角⾊ 那么8k的写缓冲区,我有80k要写,流程?
5. 疑问 怎么确定recv的结构是完整的? 短连接 协议约定 粘包是个伪命题 ! 长连接、短连接的区别 socket维护长短连接的⼿段 屏蔽close() IO复用模型 用thread、process活跃上下⽂ keepalive⼼跳包谁来维护? 自定义意义
6. 疑问 socket so_keepalive 参数的作用 检测对端的存活 keepalive_probes keepalive_time keepalive_intvl 如果没配置so_keepalive, client挂了,服务端在recv阶段呆很久... 如果配置了so_keepalive, 通过协议栈来探测存活
7. ⾼并发模型 fork模型 进程池模型 or 线程池模型 io复用模型
8. 疑问 惊群? 饥饿? so_reuseaddr so_reuseport
9. 上下⽂ 什么是上下⽂ 什么是上下⽂切换 为什么要上下⽂切换 什么时候会上下⽂切换
10. 执⾏单元 进程 线程 协程 堆、栈 抢占、协作
11. io 同步阻塞 同步非阻塞 异步阻塞 异步非阻塞
12. fd ⼀个线程如何多个fd ? 忙轮询? 要不线程池,堵塞等唤醒
13. io多路复用 select poll epoll
14. select 用法?
15. epoll epoll_create epoll_ctl epoll_wait ⽔平触发 vs 边缘触发 tornado、nginx的选择
16. 跨平台 libevent libev libuv
17. 非堵塞客户端 connect_ex() sock.setblocking eagain == EWOULDBLOCK O_NONBLOCK eintr
18. 连接问题 协程可以共用⼀个连接么 ? 连接池 vs call create ?
19. 调度器组成部分 核⼼ event loop 类⽣成器 map{fd: object} 信号处理 IO状态 ⽂件属性变化 定时器 periodic timeout
20. prefork + epoll Master Worker⼯作模型 max_requests add、reduce worker reload log reload socketpair
21. epoll wait惊群 — accept_mutex: : flags = NGX_POST_EVENTS; accept socket : epoll_wait , mutex epoll_wait tiemout
22. 疑问? c10k 服务端没有65535port限制
23. “END” –xiaorui.cc