请问RPC通信的实现?

remote procedure call
远程过程调用。

例如 Motan,Dubbo,rpcx,gRPC,thrift等等RPC框架。

最近对RPC有诸多疑问,想问问大家有关于RPC实现的几个疑问?

1 大多数RPC框架在传输层是基于什么协议实现的?(TCP协议或者是框架自己的协议?)

2 为什么有的公司会选择将HTTP作为RPC的调用协议?这是出于什么考虑,纯粹为了简单吗?

阅读 4k
1 个回答
  1. rpc是用于不同主机上或者相同主机上的网络服务的调用,网络通信协议栈的运输层中有TCP和UDP这两种协议,为了保证服务的可靠性和稳定性,rpc大部分基于运输层为TCP协议来实现,至于TCP之上使用的应用层协议,则可以使用知名协议(http等)或者自定义的协议,实现自定义的应用层协议可以参考文章:http://www.jianshu.com/p/307b...
  2. 简单是一方面,另外一方面是可以快速搭建实现。http是明文的文本协议,可读性强,便于调试(使用浏览器或者curl调试);http是通用的知名的应用层协议,有通用的编解码算法,各大知名语言中都内置实现和支持,能快速实现rpc。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进