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

当服务集群规模进一步扩大,带动IT治理结构进一步升级,需要实现动态部署,进行流动计算,现有分布式服务架构不会带来阻力。下图是未来可能的一种架构:

节点角色说明

节点 角色说明
Deployer   自动部署服务的本地代理  
Repository   仓库用于存储服务应用发布包  
Scheduler   调度中心基于访问压力自动增减服务提供者  
Admin   统一管理控制台  
Registry   服务注册与发现的注册中心  
Monitor   统计服务的调用次数和调用时间的监控中心  

大家可访问官网文档:,里面有详细说明和使用说明的。这里就不再阐述了。

Dubbo集成和使用

基于官方的incubator-dubbo-spring-boot-project项目,在SpringBoot中集成起来很简单。

注意:由于本系列还是使用1.5.x版本进行讲解,所以使用的版本为0.1.x。若使用SpringBoot2.x的同学,可以使用0.2.x版本。

官方说明

这里为了方便,直接创建了一个接口工程,spring-boot-dubbo-api。

IHelloService.java

/** * 定义一个接口 * @author oKong * */ public interface IHelloService { String hello(String name); } 服务提供者

创建一个spring-boot-dubbo-provider工程。
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>

注意:这里直接选用了redis作为注册中心使用。默认是zookeeper。

1.编写接口实现类。
HelloServiceImpl.java

/** * 定义一个服务实现类 * @author oKong * */ // 这里注意 此类@service是dubbo的 @Service( version = "${demo.service.version}", //版本 application = "${dubbo.application.id}", //应用ID protocol = "${dubbo.protocol.id}", //协议id registry = "${dubbo.registry.id}")//注册中心id @Slf4j public class HelloServiceImpl implements IHelloService { @Override public String hello(String name) { log.info("dubbo提供者,参数name:{}", name); return "hello " + name + ",this is a dubbo provider!"; } }

说明下:这里的@Service是包路径com.alibaba.dubbo.config.annotation.Service下的注解类,其指定了接口版本、协议id、注册中心id等基本信息。这里注意还是版本号有用,因为会一个接口多版本共存问题,所以一般上都会设置版本信息的。
2.设置配置文件信息,添加dubbo相关信息,比如注册中心类型,地址等。

# 应用名称 便于识别 dubbo.application.id=spring-boot-dubbo-provider dubbo.application.name=spring-boot-dubbo-provider server.port=8686 # 设置版本 demo.service.version=1.0.0 #协议 可选dubbo redis、http、thrift等 dubbo.protocol.id=dubbo dubbo.protocol.name=dubbo dubbo.protocol.port=20880 #设置扫描路径 被注解@service和@Reference 等 dubbo.scan.basePackages=cn.lqdev.learning.springboot.dubbo.provider.service # 注册中心配置 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

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

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