企业神奇的中间件-RPC

企业动态
在企业的业务发展到一定程度的时候,企业内部的系统总会进行这样或者那样的系统切分。那么这会导致一个什么问题呢?

在企业的业务发展到一定程度的时候,企业内部的系统总会进行这样或者那样的系统切分。那么这会导致一个什么问题呢?原来直接通过直接本地调用方式的功能,已经无法正常工作了,因为物理上或者逻辑上已经隔离了。切分应用分别部署一般来说有四种方式。

1、同一主机不同端口。

2、同一主机跨虚拟机或者跨 Docker 容器。

3、跨主机同一内网

4、跨主机跨网络。

[[227883]]

这就使得不论是从逻辑还是从物理上隔离,都使得远程调用尤为重要。现在最常用的就四大类。

1、SpringCloud系列,以 RESTful API 为首的 HTTP 类交互。

2、消息队列系列。

3、WebSocket系列。

4、RPC系列,远程过程调用。

各自都有什么特点呢?

SpringCloud 系列,基本都是基于 HTTP 协议来进行传输的, RESTful 风格的开发方式,接口层面可以做到兼容所有开发语言,这对于开发语言非常多样化的项目来说还是比较合适的。

消息队列系列,可以做到系统间解耦,以及进行各种削峰等操作。缺点就是消息队列一般是无法实时响应的,需要自己实现一套系统交互机制。

WebSocket系列。一般来说会用于浏览器和服务端的交互中,全双工模式以及持久化链接的设计,可以方便地替代消息队列交互中的轮询机制。当然WebSocket 系列也可以作用于服务间,用来实现双向推送。

RPC系列。一般来说,RPC不像HTTP一直要三次握手,RPC框架一般都伴随着长连接。RPC并不是一个单点的技术,而是一类技术,目前比较有名的有 JMI、gRPC、Thrift、Dubbo、Motan(微博版Dubbo)、HSF、Hetty 、rpcx等等。

我们后面的专栏主题系列最主要就是针对 RPC 的设计及原理,以及各种 RPC 的入门,最后会给出各种 RPC 的比较以及建议,可以赏个一毛钱给大蕉表达你想看这个系列的意向吗?

RPC是长什么样子的?

RPC(Remote Procedure Call),远程过程调用,从最简单最抽象的模式来看,就是下面这个图这样。客户端调用某个方法,然后中间经过一系列的过程,调用到服务端的某个方法。服务端进行处理之后,做出相应,然后逐层原路返回到客户端。

是不是很简单,一般来说,开发者只需要关注蓝色( functions )部分,而至于红色部分( stub句柄 ) 和黄色部分(socket 网络)部分呢,框架层面会把它解决掉。蓝色部分,服务端开发者要做的事情就是定义某个接口,客户端开发者要做的事情就是调用某个接口,一切开发模式都跟本地调用无差别。

燃鹅,因为框架做得那么好了,所以出现了很多像我这样只会定义RPC和调用RPC的人工智能开发工程师(嗯,人工写代码是挺智能的,人工智能怎么能少了人工呢),希望能通过这个系列,解除你的疑惑,如果能有点帮助那就更好了。今天不讲太多 RPC 技术性细节性的东西,亲爱的朋友们,你们希望看到些什么内容留言告诉我吧。

【本文为51CTO专栏作者“大蕉”的原创稿件,转载请通过作者微信公众号“一名叫大蕉的程序员”获取授权】

戳这里,看该作者更多好文

责任编辑:武晓燕 来源: 51CTO专栏
相关推荐

2018-05-08 16:33:31

中间件RPC企业

2018-06-12 15:10:49

RPCRM企业

2009-06-16 15:55:06

JBoss企业中间件

2012-11-01 15:16:22

金蝶中间件研究院院长

2016-11-11 21:00:46

中间件

2013-07-30 16:29:24

中间件

2011-05-24 15:10:48

2021-02-11 08:21:02

中间件开发CRUD

2018-07-29 12:27:30

云中间件云计算API

2018-02-01 10:19:22

中间件服务器系统

2010-03-29 10:24:15

金蝶中间件Apusic企业架构

2015-02-07 21:52:45

PaaS中间件

2013-03-13 10:37:22

中间件Windows

2021-06-15 10:01:02

应用系统软件

2023-06-29 10:10:06

Rocket MQ消息中间件

2023-10-24 07:50:18

消息中间件MQ

2012-11-30 10:21:46

移动中间件

2022-11-18 07:54:02

Go中间件项目

2013-08-25 23:57:31

中间件移动中间件选型企业移动信息化

2012-09-13 15:48:16

云计算中间件
点赞
收藏

51CTO技术栈公众号