【5种常见的rpc封装方案】

1)回调(唯一callbackId)

1.显式回调写法 // 自己封装callbackId

send(msgId, req, (data)->{

})

隐式回调写法:

send(msgId, req);

ResHandler(data){

}

协程其实也算是隐式的写法,毕竟协程只能在进程内通信,只不过算是等到对方回复后,我们是在有个地方等待处理。

2)Promise+thenAccept

send(msgId, req).thenAccept()

3)同步rpc写法

dubbo 或者 自己写的结合CountDownLatch实现同步rpc。

或者干脆是http。

或者是grpc。

4)await

ET的写法,较为优雅,但是只有c#语言有。

5)MQ的发布订阅

用的也多,比如:杨中科的英语网站微服务之间的通信封装为EventBus。

基于nats的pub和sub。