RPC
文章平均质量分 90
Zonda要好好学习
这个作者很懒,什么都没留下…
展开
-
RPC(Remote Procedure Call)的基本概念及架构
假设有一个单体项目,随着其自身用户逐渐增多,本地服务器无法满足需求,会分成多个微服务,将这些服务部署在不同的服务器上,来减轻单服务器的压力。分开后,各服务之间需要相互依赖,那么如图所示,有三个微服务器A、B、C,A服务依赖于B服务,需要向B服务要数据,这个过程就是RPC。假设A服务通过http协议(超文本传输协议)调用B服务,但是在这种情况下会发送一些不必要的数据,在RPC的场景下是浪费的,因此可以通过RPC自定义一个数据格式进行通信。这种情况下,调用方和提供方是确定的,但是如果提供方有变化该如何应对?原创 2024-04-03 13:56:45 · 822 阅读 · 1 评论 -
RPC的简化版实现
将底层网络IO等代码用Stub(树桩)封装,直接调用stub.findUserById(123)获得user,Stub是一种约定俗成的叫法,其实就是代理。如果获取到了IUserService接口,1、因为第一步演进中Stub中只有findId的方法,如果有findByName的新方法,那么就又得重新改进,因此有了第二步演进。1、原始的方式非常麻烦,因为需要知道传输的对象的一切细节才能把对象传输成功,如果user对象加一个属性,代码要大改。主要是客户端的改变,原本返回的是属性,现在封装成Object返回。原创 2024-04-04 13:24:22 · 451 阅读 · 1 评论