netty是全双工的工作模式
dubbo异步转同步。
执行流程:
consumer 发送消息给provider,provider接受到消息,provider返回给consumer消息,consumer接受到消息。
实现原理:
consumer 发送消息给provider,这时候consumer保存全局唯一id,用future实现等待结果。 consumer接受到消息后加锁,锁里边future.get取得结果。
因为netty是全双工,我怎么知道那么多线程互相发消息谁发给谁的, 这个时候用consumer 发送消息给provider的时候保存的全局唯一id,如果拿到后比对无误,删除这个id,返回结果给consumer。
来源:oschina
链接:https://my.oschina.net/u/3730149/blog/3220742