SpringBoot | 第二十九章:Dubbo的集成和使用 (3)

注意:这里为了方便,直接使用了Redis作为了注册中心。对于redis连接相关配置参数,可以通过dubbo.registry.parameters.xxx的形式来进行设置,由于parameters是个Map对象,所以添加的key是不会进行大小写转换的,填写了什么就是什么。具体的registry配置对象,可以查看com.alibaba.dubbo.config.RegistryConfig类。而对于redis相关参数配置,可以查看com.alibaba.dubbo.registry.redis.RedisRegistry类。

RedisRegistry

其他的注册中心,也是类似的,大家可在包com.alibaba.dubbo.registry找到都要的注册中心配置类。

3.启动类编写。

DubboProviderApplication.java

/** * dubbo-提供者 * @author oKong * */ @SpringBootApplication @Slf4j public class DubboProviderApplication { public static void main(String[] args) throws Exception { //由于dubbo提供者只是单纯提供服务的 可以为一个非web环境 new SpringApplicationBuilder(DubboProviderApplication.class).web(false).run(args); log.info("spring-boot-dubbo-provider启动!"); } }

4.启动应用,可以访问下redis服务,可以看见已经有服务列表信息了。

redis

服务消费者

创建spring-boot-dubbo-consumer工程。
0.引入pom依赖

<!-- 引入api --> <dependency> <groupId>cn.lqdev.learning</groupId> <artifactId>spring-boot-dubbo-api</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <!-- 引入dubbo依赖 --> <dependency> <groupId>com.alibaba.boot</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>0.1.1</version> </dependency> <!-- 引入redis作为注册中心 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>

1.配置文件添加注册中心及服务版本相关信息

# 应用名称 便于识别 dubbo.application.id=spring-boot-dubbo-consumer dubbo.application.name=spring-boot-dubbo-consumer server.port=9696 #设置扫描路径 被注解@service和@Reference 等 dubbo.scan.basePackages=cn.lqdev.learning.springboot.dubbo.consumer # 注册中心配置 dubbo.registry.id=okong-registry #注册中心类型 这里使用redis作为注册中心 # zookeeper://127.0.0.1:2181 dubbo.registry.address=redis://127.0.0.1:6379 # 设置用户名密码 若有的话 #dubbo.registry.username=oKong #dubbo.registry.password=oKong # 设置redis参数 # 连接池中的最大空闲连接 dubbo.registry.parameters.max.idle=8 # 连接池最大连接数(使用负值表示没有限制) dubbo.registry.parameters.max-active=8 # 连接池最大阻塞等待时间(使用负值表示没有限制) dubbo.registry.parameters.max-wait=-1 # 连接池中的最大空闲连接 dubbo.registry.parameters.max-idle=8 # 连接池中的最小空闲连接 dubbo.registry.parameters.min-idle=0

2.启动类编写

DubboConsumerApplication.java

/** * dubbo-消费者实例 * @author oKong * */ @SpringBootApplication @Slf4j public class DubboConsumerApplication { public static void main(String[] args) throws Exception { SpringApplication.run(DubboConsumerApplication.class, args); log.info("spring-boot-dubbo-consumer启动!"); } }

3.编写一个restapi接口服务,进行服务调用。

/** * 调用实例 * @author oKong * */ @RestController @Slf4j public class DemoController { /** * 申明为一个reference,其实就是设置一个bean类了, * 将原来xml配置替换成注解而已 * <dubbo:reference id=“xxxService” interface=“com.xxx.XxxService” /> */ @Reference(version = "1.0.0") IHelloService helloService; @GetMapping("/hello") public String hello(String name) { log.info("调用提供者服务,参数name:{}", name); return helloService.hello(name); } }

4.启动应用,访问::9696/hello?name=oKong ,可以看见服务调用成功了。

服务调用

监控后台

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwpsjf.html