《RocketMq》一、网络传输篇
你是否想知道一个分布式系统的网络传输解决方案,那你可以学习下RocketMQ的网络传输原理,从RocketMQ的Remoting网络处理部分,可以学习到如何进行高效的网络传输,这些思想可以应用到不同的业务中。 一、要解决的问题 其实大部分应用的网络处理都要解决如下图所示的问题: 那么就以RocketMQ的源码入手,看看它是如何架构如上的结构的。 二、RocketMQ-remoting详解 2.1首先给出其整体的结构图 2.2 编码解码 在RocketMQ中,所有的通讯都是使用RemotingCommand这个结构,这个结构的内容如下: [java] view plain copy private static final int RPC_TYPE = 0; // 0, REQUEST_COMMAND // 1, RESPONSE_COMMAND private static final int RPC_ONEWAY = 1; // 0, RPC // 1, Oneway /** * Header 部分 */ private int code; // 用于标示请求类型,参见RequestCode,ResponseCode private LanguageCode language = LanguageCode.JAVA; private int version = 0;