Rocketmq的通信层是基于通信框架netty 4.0.21.Final之上做了简单的协议封装,是强依赖。
一: NettyRemotingAbstract Server与Client公用抽象类
ResponseFuture模式:
invokeSyncImpl和invokeAsyncImpl都使用了
请求方会new一个ResponseFuture对象缓存起来ConcurrentHashMap<Integer/* opaque */, ResponseFuture>,并且设置opaque 值
Broker接收请求将opaque 直接把这个值设置回响应对象,客户端接收到这个响应,通过opaque从缓存查找对应的ResponseFuture对象
1. invokeSyncImpl同步调用实现
构建ResponseFuture,设置opaque值