RPC到底是何方神圣

144 阅读2分钟

这是我参与「掘金日新计划 · 6 月更文挑战」的第6天 ,点击查看活动详情

PRC到底是什么东东?

目前来说绝大数系统采用的是分布式架构设计的微服务,服务之前的通信可就不是普通的http的调用了,这里就使用的是RPC的调用

简称 远程过程调用,--服务之间的一种进程间的通信方式 类似于桥梁通信

RPC的原理

服务A要调用服务B中的某个方法,这里就需要服务A和服务B建立网络socket连接 将需要调用的参数,传递给服务B进行调用,调用完毕后将服务B的返回值数据返回 给服务A,从而实现服务调用

image.png

不同服务之间的通信---分布式架构

比如我们使用的Apache dubbo的java的高性能 RPC的框架 dubbo官网

dubbo的特点:

  • 面向接口代理的高性能RPC调用--(以服务接口为粒度)
  • 不错的负载均衡的能力
  • 服务的自动注册与发现(注册中心-服务清单)

dubbo的设计架构:

image.png

  • 注册中心
  • 服务提供者
  • 服务消费者
  • 容器-启动
  • 监控信息(monitor)

dubbo容器启动,将自己提供的接口注册到注册中心registry中

服务消费者订阅自己需要的服务地址,在注册中心中 开始调用invoke

可以自己管理,或者是安装dubbo的监控中心和管理任务台

去GitHub上找到dubbo的监控中心管理台 自己打包然后可以用 默认是基于zookeeper作为注册中心

启动的顺序,是先要启动注册中心,配置文件地址必须是zookeeper注册中心的地址,

我们做一个订单服务,但是在创建订单的时候需要将用户自己的收货地址显示出来,但是订单服务--获取到地址服务

伪代码,一般是当前订单服务的实现类,

  • 加入当前地址服务的服务类

  • 暴露服务

  • 指定注册中心