Spring Cloud Alibaba : Nacos服务注册中心
承接上一篇学习内容: Spring Cloud Alibaba : Nacos服务配置中心
一 准备dubbo的service工程
1.1 按照 IDEA创建maven父子工程 这篇文章新建hobby-service子类,用于存放dubbo的service接口
1.2 在接口com.chaixy.hobby.service.admin.HobbyAdminService中添加抽象方法
1.3 将hobby-service引入到hobby-admin和hobby-consumer中
<dependency> <groupId>com.chaixy</groupId> <artifactId>hobby-service</artifactId> <version>1.0.0</version> </dependency>
二 改造父工程,引入dubbo的包
2.1 在父工程中加入dubbo所需的依赖
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-dubbo</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
①必须包含spring-boot-starter-actuator包
②spring-cloud-starter-dubbo包需要注意groupId,根据具体使用的spring cloud alibaba版本依赖来确定。
项目孵化期间,使用的groupId为:org.springframework.cloud;
项目孵化之后,使用的groupId修改为了com.alibaba.cloud,所以用户需要注意是否使用正确。避免加载不到对应JAR包的问题。
三 改造hobby-admin工程,使其成为dubbo服务的提供方
3.1 在其启动类加入@EnableDiscoveryClient注解
3.2 在hobby-admin中添加hobby-service:HobbyAdminService的实现类,
并且给实现类添加dubbo的注解org.apache.dubbo.config.annotation.Service,将其注入到spring容器中
3.3 在bootstrap.yml中添加nacos注册中心的必要配置
dubbo: scan: # dubbo 服务扫描基准包 base-packages: com.chaixy.hobby.admin.impl protocol: # dubbo 协议 name: dubbo # dubbo 协议端口( -1 表示自增端口,从 20880 开始) port: -1 registry: # 挂载到 Spring Cloud 注册中心 address: spring-cloud://localhost
dubbo.scan.base-packages : 指定 Dubbo 服务实现类的扫描基准包
3.4 startup.cmd -m -standalone启动nacos,并且启动hobby-admin工程
访问 http://127.0.0.1:8848/nacos,查看服务列表
说明我们的服务提供方hobby-admin已经成功将其服务注册测到nacos中
四 将hobby-consumer改造为dubbo的消费方
4.1 同hobby-admin一样,在其启动类加入@EnableDiscoveryClient注解,在bootstrap.yml中添加nacos注册中心的必要配置
dubbo:
scan:
# dubbo 服务扫描基准包
base-packages: com.chaixy.hobby.customer.impl
protocol:
# dubbo 协议
name: dubbo
# dubbo 协议端口( -1 表示自增端口,从 20880 开始)
port: -1
registry:
# 挂载到 Spring Cloud 注册中心
address: spring-cloud://localhost
dubbo.scan.base-packages : 指定 Dubbo 服务实现类的扫描基准包
4.2 启动hobby-consumer工程,查看是否成功注册到nacos中
4.3 在com.chaixy.hobby.customer.nacos.NacosConfigController中引入dubbo的服务提供方的接口(@Reference)
4.4 访问hobby-consumer的"/dubbo"接口
改造完成