1、长连接还是短连接?
选择长连接,原因:更节约资源,多个消息复用同一个链路。
2、BIO还是NIO?
BIO通信模型最大的问题是系统缺乏弹性伸缩能力,服务端线程个数和客户端个数并发访问数呈现1:1比例,线程膨胀后,系统性能急剧下降,系统发生堆栈溢出,创建新线程失败,造成进程僵死等现象。
多路复用技术:把多个IO的阻塞复用到同一个select的阻塞上,从而使得系统在单线程的情况下可以同时处理多个客户端请求,节省了系统资源。
3、通信框架不与具体协议绑定,在通信框架之上,有私有协议栈和公有协议栈。
Binary Protocol | Text Protocol | Web Services | Restfull | HTTP |
Private Protocol | Public Protocol | |||
Transport Facade API | ||||
Base Long Connect Framework | Base Short Connect Framework | |||
Netty |
4、通信框架服务端的职责
提供上层API,用户初始化服务端实例,设置服务端通信参数,包括服务端的IO线程池、监听地址、TCP相关参数、接收和发送缓冲区大小;
提供可扩展的编解码插件;
提供拦截面,用于私有协议栈开发;