rpc采用了C/S模型,不支持双向通讯:client只能远程调用server端的RPC接口,但client端则没有RPC供server端调用,这意味着,client端可以主动与server端通讯,但server端不能主动与client端通讯而只能被动地对client端的请求做出应答。这种RPC模式在某些应用中存在缺陷,好比:有些应用,在大部分状况下,client端会主动向server端发请求或者向server端发送数据,而在少部分状况下,server端也须要主动向client发送一些命令,告知进行某些操做。server
为了解决该问题接口
双client/serverrpc
通讯双方都既是client,也是server。该方案须要在通讯双方之间创建两个通讯通道,开启两个端口,这比较繁琐,且很不优雅。但还是目前广泛采用的一套方案。cli
client/server <————————-> client/server请求