- connection 代表每次conn的封装。 负责读写方法(分离)
- request 代表的是 conn和数据msg的封装
- handle 处理的是request 为了多路由,后面升级成工作池处理。
- connManger 使用map管理所有的conn
- 连接进入后和断开连接前会调用Hook方法
- 解决tcp黏包问题
- worker池,任务队列解决高并发
客户端来一个请求 会开三个groutine go reader() -> go DoMsgHandle() ->go writer()
假如来10w个请求,那就有10w个reader和10w的writer但他们是阻塞的不会占用cpu资源, 但是还有10w个go DoMsgHandle() 处理客户端业务会占用cpu资源。
所以开辟一个worker池,任务队列。