私有协议:
广义上通信协议可以分为公有协议和私有协议,绝大多数私有协议传输层都基于TCP/IP,所以利用Netty的NIO TCP协议栈可以方便地进行私有协议的定制和开发。私有协议也称非标准协议,是由某个企业自己制定,只在本企业自己生产的设备之间使用的协议。
因为现代软件系统的复杂性,一个大型软件系统往往会被人为地拆解成多个模块,为了能支撑业务的发展,往往需要集群和分布式部署,这样各个模块之间就要进行跨节点通信。在java中通常以以下四种方式进行跨节点通信:
(1)通过RMI(远程方法调用)进行远程服务调用;
(2)通过Java的Socket+Java序列化的方式进行跨节点调用;
(3)利用一些开源的RPC框架进行远程服务调用;
(4)利用公有协议进行跨节点调用;
跨节点的远程服务调用需要对请求和响应消息进行编解码,同时也需要携带一些控制和管理类质量,这些功能最合到一起后就会形成私有协议。
Netty协议栈:
Netty协议栈用于内部各模块之间的通信,承载了业务内部各模块之间的消息交互和服务调用。它基于TCP/IP协议栈,是一个类HTTP协议的应用层协议栈。
●分布式组网环境下,每个Netty节点之间建立长连接,使用Netty进行通信。
●Netty节点谁先发起连接请求,谁就是客户端,另一方为服务端。