要设计一个高并发的服务器,应用层协议栈应该满足如下设计思路:

协议栈要分成底层、中层、和高层,线程要分为IO线程和业务线程:

一、底层连接要采用NIO多路复用、事件通知

二、中层要完成原始TCP数据流到业务层消息的协议编解码

三、高层负责上层业务消息分发和收集(读和写)要完成:

  • 提供上层读写API和事件通知、提供底层连接状态获取相关的API
  • 提供IO线程和业务线程之间的切换,比如读API能完成IO线程到业务线程的转换,写API能完成业务线程到IO线程的转换
  • 要能满足协议收发时序的要求,即做协议时序控制(协调多个请求和多个响应的处理顺序)

四、业务层线程模型要实现为无阻塞异步消息模型

(完)

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐