远程调用
- 一、Dubbo快速上手
- 提供者
- @DubboService
- 调用者
- @DubboReference
- 开启Dubbo调用
- @EnableDubbo
- 二、Dubbo快速入门
- 1、添加 Dubbo 相关的 maven 依赖。
- 2、定义服务接口
- 3、 定义服务端的实现
- 4、配置服务端及消费端 Yml 配置文件
- 5、基于 Spring 配置服务端及消费端启动类
- 6、消费端远程调用服务端
一、Dubbo快速上手
提供者
@DubboService
调用者
@DubboReference
开启Dubbo调用
@EnableDubbo
二、Dubbo快速入门
Apache Dubbo 是一款 RPC 服务开发框架,用于解决微服务架构下的服务治理与通信问题,官方提供了 Java、Golang 等多语言 SDK 实现。使用 Dubbo 开发的微服务原生具备相互之间的远程地址发现与通信能力, 利用 Dubbo 提供的丰富服务治理特性,可以实现诸如服务发现、负载均衡、流量调度等服务治理诉求。Dubbo 被设计为高度可扩展,用户可以方便的实现流量拦截、选址的各种定制逻辑。
1、添加 Dubbo 相关的 maven 依赖。
对于多模块项目,首先需要在父项目的 pom.xml 里面配置依赖信息。
<!-- Dubbo --><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-bom</artifactId><version>${dubbo.version}</version><type>pom</type><scope>import</scope></dependency><!-- nacos作为注册中心 --> <dependency><groupId>com.alibaba.nacos</groupId><artifactId>nacos-client</artifactId><version>2.1.0</version></dependency>
注:Dubbo 3.0.0 及以上版本需 nacos-client 2.0.0 及以上版本。
# application.yml (Spring Boot) 注册到nacosdubboregistryaddress: nacos://localhost:8848parameters.namespace: 5cbb70a5-xxx-xxx-xxx-d43479ae0932
2、定义服务接口
服务接口 Dubbo 中沟通消费端和服务端的桥梁。
3、 定义服务端的实现
定义了服务接口之后,可以在服务端这一侧定义对应的实现,这部分的实现相对于消费端来说是远端的实现,本地没有相关的信息。
在 DemoServiceImpl 中,实现了 DemoService 接口,对于 sayHello 方法返回 Hello name。
注:在DemoServiceImpl 类中添加了 @DubboService 注解,通过这个配置可以基于 Spring Boot 去发布 Dubbo 服务。
4、配置服务端及消费端 Yml 配置文件
通过 Spring Boot 的方式配置 Dubbo 的一些基础信息。
dubbo:application:name: dubbo-springboot-demo-providerprotocol:name: dubboport: -1registry:address: zookeeper://${zookeeper.address:127.0.0.1}:2181
在这个配置文件中,定义了 Dubbo 的应用名、Dubbo 协议信息、Dubbo 使用的注册中心地址,服务端和消费端配置相同。
5、基于 Spring 配置服务端及消费端启动类
在这个启动类中,通过配置了一个@EnableDubbo注解去读取我们前面定义的 application.yml 配置文件并启动应用(服务端和消费端的启动类上都需要加上该注解)。
6、消费端远程调用服务端
在 Task 类中,通过@DubboReference注解 从 Dubbo 获取了一个 RPC 订阅,这个 demoService 就可以像本地调用一样直接调用。
后记
👉👉💕💕美好的一天,到此结束,下次继续努力!欲知后续,请看下回分解,写作不易,感谢大家的支持!! 🌹🌹🌹