这是我参与「掘金日新计划 · 6 月更文挑战」的第6天 ,点击查看活动详情
PRC到底是什么东东?
目前来说绝大数系统采用的是分布式架构设计的微服务,服务之前的通信可就不是普通的http的调用了,这里就使用的是RPC的调用
简称 远程过程调用,--服务之间的一种进程间的通信方式 类似于桥梁通信
RPC的原理
服务A要调用服务B中的某个方法,这里就需要服务A和服务B建立网络socket连接 将需要调用的参数,传递给服务B进行调用,调用完毕后将服务B的返回值数据返回 给服务A,从而实现服务调用
不同服务之间的通信---分布式架构
比如我们使用的Apache dubbo的java的高性能 RPC的框架 dubbo官网
dubbo的特点:
- 面向接口代理的高性能RPC调用--(以服务接口为粒度)
- 不错的负载均衡的能力
- 服务的自动注册与发现(注册中心-服务清单)
dubbo的设计架构:
- 注册中心
- 服务提供者
- 服务消费者
- 容器-启动
- 监控信息(monitor)
dubbo容器启动,将自己提供的接口注册到注册中心registry中
服务消费者订阅自己需要的服务地址,在注册中心中 开始调用invoke
可以自己管理,或者是安装dubbo的监控中心和管理任务台
去GitHub上找到dubbo的监控中心管理台 自己打包然后可以用 默认是基于zookeeper作为注册中心
启动的顺序,是先要启动注册中心,配置文件地址必须是zookeeper注册中心的地址,
我们做一个订单服务,但是在创建订单的时候需要将用户自己的收货地址显示出来,但是订单服务--获取到地址服务
伪代码,一般是当前订单服务的实现类,
-
加入当前地址服务的服务类
-
暴露服务
-
指定注册中心