赞
踩
本文章基于dubbo-spring-boot-starter最新依赖,快速搭建spring boot dubbo工程,采用nacos作为注册中心。
Spring boot 版本:3.2.5
java 版本:17
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.apache.dubbo</groupId>
- <artifactId>dubbo-spring-boot-starter</artifactId>
- <version>3.3.0-beta.2</version>
- </dependency>
- <dependency>
- <groupId>org.apache.dubbo</groupId>
- <artifactId>dubbo-registry-nacos</artifactId>
- <version>3.3.0-beta.2</version>
- </dependency>
可以理解为服务提供端和服务消费端的桥梁(服务端和消费端需要同时引入该模块),当消费端调用该接口时,通过注册中心在服务提供端就可以找到该接口的实现类,进而实现服务间通讯。
- public interface HelloWorldDemoApi {
- public String helloWorld(String string);
- }
(1)在pom中引入该模块
- <dependency>
- <groupId>com.example</groupId>
- <artifactId>common-interface</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- </dependency>
(2)实现HelloWorldDemoApi接口,使用注解@DubboService注解标注为服务提供者
- @DubboService
- @Service
- @Slf4j
- public class DubboHelloWorldDemoApiImpl implements HelloWorldDemoApi {
- @Override
- public String helloWorld(String string){
- log.info(string);
- return string + " Hello World!";
- }
- }
(3)在启动类上加上@EnableDubbo注解,启动Dubbo自动注册功能
- @SpringBootApplication
- @EnableDubbo
- public class CloudProviderApplication {
-
- public static void main(String[] args) {
- SpringApplication.run(CloudProviderApplication.class, args);
- }
-
- }
(4)配置application.properties
- spring.application.name=cloud-provider
- server.port=8081
-
- dubbo.registry.address=nacos://127.0.0.1:8848
- dubbo.registry.username=nacos
- dubbo.registry.password=nacos
-
- #是否启动 qos 默认 true
- # 能够列出来该实例服务提供者与调用者状态
- dubbo.application.qosEnable=true
- # 启动 qos 绑定的端口 默认 22222
- dubbo.application.qosPort=22222
- # 是否允许远程访问 默认是 false
- dubbo.application.qosAcceptForeignIp=false
(1)在pom中引入该模块
- <dependency>
- <groupId>com.example</groupId>
- <artifactId>common-interface</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- </dependency>
(2)注入HelloWorldDemoApi服务,使用注解@DubboReference注解标注为服务调用方
- @RestController
- public class TestController{
- @DubboReference
- private HelloWorldDemoApi api;
-
- @GetMapping("/test")
- public String getResult(){
- return api.helloWorld("tom");
- }
- }
(3)在启动类上加上@EnableDubbo注解,启动Dubbo自动注册功能
-
- @SpringBootApplication
- @EnableDubbo
- public class CloudConsumerApplication {
-
- public static void main(String[] args) {
- SpringApplication.run(CloudConsumerApplication.class, args);
- }
-
- }
(4)配置application.properties
- spring.application.name=cloud-consumer
- server.port=8082
-
- dubbo.registry.address=nacos://127.0.0.1:8848
- dubbo.registry.username=nacos
- dubbo.registry.password=nacos
- #是否启动 qos 默认 true
- # 能够列出来该实例服务提供者与调用者状态
- dubbo.application.qosEnable=true
- # 启动 qos 绑定的端口 默认 22222
- # 服务提供者已经把该端口占用了,那么服务消费者就不能使用该端口了,需要换一下
- dubbo.application.qosPort=33333
- # 是否允许远程访问 默认是 false
- dubbo.application.qosAcceptForeignIp=false
启动提供端服务和消费端服务,在浏览器中输入http://127.0.0.1:8082/test
输出:
Tom Hello World!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。