RPC

RPC远程过程调用

原理:研究Netty

RPC两个核心模块:通讯+序列化

序列化:数据传输需要转换

Apache Dubbo:高性能、轻量级的开源Java RPC框架,通信框架,很专业, 18年重启,Dubbo 3.x RPC

三大核心能力:面向接口的远程方法调用;智能容错和负载均衡;服务自动注册和发现

Dubbo 基于消费端的自动服务发现能力,其基本工作原理如下图:

 

 

 

 服务发现的一个核心组件是注册中心,Provider 注册地址到注册中心,Consumer 从注册中心读取和订阅 Provider 地址列表。 因此,要启用服务发现,需要为 Dubbo 增加注册中心配置:

以 dubbo-spring-boot-starter 使用方式为例,增加 registry 配置

# application.properties
dubbo
 registry
  address: zookeeper://127.0.0.1:2181

 

HTTP SpringCloud (生态)~ 

实战:

zookeeper :注册中心

dubbo-admin : 监控管理后台,查我们注册了哪些服务,哪些服务被消费了

Dubbo:jar包

步骤:

前提:zookeeper服务已启动

    1. 提供者提供服务

      • 导入依赖

      • 配置注册中心的地址,以及服务发现名,和要扫描的包

        [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zrVrmA8F-1594913883205)(D:\我\MyBlog\狂神说 SpringBoot.assets\image-20200716230709998.png)]

      • 在想要被注册的服务上面,再增加一个注解**@Service**(dubbo包下的)

    2. 消费者如何消费

      • 导入依赖

      • 配置注册中心的地址,配置自己的服务名
        [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ACONokw7-1594913883207)(D:\我\MyBlog\狂神说 SpringBoot.assets\image-20200716230419673.png)]

      • 从远程注入服务 @Reference

 

posted @ 2022-03-10 17:04  zhaoyanhao  阅读(43)  评论(0编辑  收藏  举报