三分钟理解JAVA中的RPC技术到底是何物!

前言

看到很多人不理解什么是RPC,特撰文分享一下。(尤其是那些分不清http和rpc的人,一定要看)

RPC概念

RPC即远程过程调用(Remote Procedure Call),这么讲你可能不明白,画个图

《三分钟理解JAVA中的RPC技术到底是何物!》

这就是一个RPC场景

我习惯这么去理解:RPC(远程过程调用)是一功能的称呼,这个功能就是客户端和服务端之间数据交互的过程,不是一个具体的技术/代码。就好比“软件开发”是一个笼统的描述,具体有java、c、go、.net、php等等….

RPC到底有什么呢?

1、 RPC核心过程

既然它的意思是客户端和服务端之间数据交互的过程,那包含了哪些东西?

rpc核心过程包括了客户端和服务端的通讯协议寻址数据序列化/反序列化

举个例子,你(客户端)要一个外国人(服务端)帮你干一件事情,这就是RPC的过程,这个过程是这样的:

《三分钟理解JAVA中的RPC技术到底是何物!》

注意看3个核心过程

你可以选择飞过去找一个外国人(寻址)面对面的交谈(通信),要让她帮你干活,你们之间必须用一样的语言(数据序列化)进行交流。

2、 RPC协议

协议就是,详细的规定了上面说的RPC三个核心过程怎么样去实现。比如:规定协议是tcp还是udp,你通过什么方式去找到服务端的地址,请求/响应数据如何去组装。

http,dubbo-rpc,rmi等很多协议都属于rpc范畴,如果你要基于他们去实现rpc,就得遵守它们这个协议。

就像你要去写一个http客户端,你就必须按照它的要求去实现,组装数据的方式也要按它的来。

3、 RPC框架

对上述核心过程进行了封装,不需要开发人员自己去定义协议、实现序列化的细节工作,这样的组件称为RPC框架,常见的框架比如:thrift,gRpc,dubbo,motan 。

4、 写在最后

rcp技术被称为分布式系统的基石,在互联网公司应用是最广泛的,如果你长期重复没技术含量的工作,还没有接触过这些分布式系统开发技术,一定用心学习,提升自己的竞争力。

《三分钟理解JAVA中的RPC技术到底是何物!》

图片转自网络,侵删

大型公司都会搞自己的一套RPC框架,你懂了核心原理,就会发现没什么区别,万变不离其中!

今天的知识你明白了吗?不明白的地方可以留言或私信一起讨论哦!

《三分钟理解JAVA中的RPC技术到底是何物!》

每天收获一点点,坚持带来大改变!

    原文作者:启示录是真的
    原文地址: https://www.jianshu.com/p/346114a5196c
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞