解决的问题:
1、通信框架(解决客户端和服务端如何建立连接、管理连接以及服务端如何处理请求)
- HTTP
- Socket
2、通信协议(解决客户端和服务端采用哪种数据传输协议的问题)
- 同步阻塞方式(BIO)
适用于连接数比较小的业务场景
- 同步非阻塞方式(NIO)
适用于连接数比较多并且请求消耗比较轻的业务场景
- 异步非阻塞方式(AIO)
适用于连接数比较多而且请求消耗比较重的业务场景
通用通信框架如Netty、MINA
3、序列化与反序列化(解决客户端和服务端采用哪种数据编码的问题)
- 序列化方式
- 文本类:XML/JSON
- 二进制类:PB/Thrift
- 影响序列化方式的因素
- 数据类型
- 跨语言支持
- 性能