待分类前后分离

RPC

2019-10-14  本文已影响0人  Aaron_Swartz

RPC(Romote Procedure Call):远程过程调用,允许一台计算机程序远程调用另外一台计算机的子程序,不用关心底层网络通信。
在socket基础上实现,比socket需要更多资源。

从服务提供者的角度看:当提供者服务启动时,需要自动向注册中心注册服务;
当提供者服务停止时,需要向注册中心注销服务;
提供者需要定时向注册中心发送心跳,一段时间未收到来自提供者的心跳后,认为提供者已经停止服务,从注册中心上摘取掉对应的服务。
从调用者的角度看:调用者启动时订阅注册中心的消息并从注册中心获取提供者的地址;
当有提供者上线或者下线时,注册中心会告知到调用者;
调用者下线时,取消订阅。

4 网络传输:序列化和反序列化

B机器进行本地调用(通过代理Proxy)之后得到了返回值,此时还需要再把返回值发送回A机器,同样也需要经过序列化操作,然后再经过网络传输将二进制数据发送回A机器,而当A机器接收到这些返回值之后,则再次进行反序列化操作,恢复为内存中的表达方式,最后再交给A机器上的应用进行相关处理(一般是业务逻辑处理操作)。

参考:
1 微服务系列:RPC框架的实现原理,及RPC架构组件详解
2 阿里P8架构师谈:Dubbo的详细介绍、设计思路、以及4大适用场景
3 sofa-pbrpc
4 高性能Java RPC框架Dubbo与zookeeper的使用

上一篇下一篇

猜你喜欢

热点阅读