RPC、springcloud、dubbo、hadoop、zookeeper等概念的区别

RPC是一个远程调用的技术方式,其可以通过HTTP协议实现,也可以是基于SOCKET自己定义新的协议。其本质是为了让机器在进行远程调用的时候,不需要知道具体是从哪台机器调用,从而实现了服务的解耦。RPC本质上就实现了两个功能,一个是通过socket等实现的网络传输、一个是数据的序列化和反序列化。

RPC 和 HTTP 调用是没有经过中间件的,它们是端到端系统的直接数据交互。HTTP 调用其实也可以看成是一种特殊的 RPC,只不过传统意义上的 RPC 是指长连接数据交互,而 HTTP 一般是指即用即走的短链接。

RPC 在我们熟知的各种中间件中都有它的身影。Nginx/Redis/MySQL/Dubbo/Hadoop/Spark/Tensorflow 等重量级开源产品都是在 RPC 技术的基础上构建出来的,我们这里说的 RPC 指的是广义的 RPC,也就是分布式系统的通信技术。RPC 在技术中的地位好比我们身边的空气,它无处不在,但是又有很多人根本不知道它的存在。



作者:老钱
链接:https://www.zhihu.com/question/25536695/answer/417707733
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

hadoop是一个分布式的计算框架,主要用于分布式的存储(HDFS)和计算(MapReduce,可以被Spark替代),其机器间的技术使用的RPC(RPC可以使用HTTP协议实现,也可以是基于SOCKET自己定义新的协议)。其通俗的解释是将一个计算同时分派到很多机器一起算,每个机器算一部分。

springcloud和dubbo都是分布式的服务框架,主要承担分布式服务器间的RPC通信功能。springcloud的通信协议是REST,dubbo的通信技术是RPC。其通俗的解释是一个程序的不同模块放在了不同机器上,所以他们之间需要用网线来连在一起交互。

zookeeper是一个服务治理的组件,一般用于和dubbo配合使用(springcloud一般和eureka配合),因为dubbo实现了通信功能,但是你如果需要多个机器相应同一个功能模块,就需要 zookeeper来进行调度看什么时候分给哪一个。

  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值