《Spring Cloud Alibaba实战》系列-集成dubbo实现远程RPC调用,以nacos作为注册中心

本文是Spring Cloud场景下使用Dubbo远程调用,以Nacos替换Zookeeper为注册中心的案例,如果单纯Dubbo融合Nacos作为注册中心,请参考 ☞官方文档;对Nacos不了解的可以参考之前☞Nacos文章

1. Maven依赖

首先增加依赖版本统一管理

    <properties>
        <!--   统一版本管理   -->
        <spring-cloud.version>Hoxton.RELEASE</spring-cloud.version>
        <alibaba-cloud.version>2.2.0.RELEASE</alibaba-cloud.version>
    </properties>
 <dependencyManagement>
        <dependencies>
            <!--spring cloud -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--spring cloud -->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${alibaba-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

增加Dubbo、nacos依赖

<!--spring cloud dubbo -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-dubbo</artifactId>
        </dependency>
        <!-- spring cloud nacos discovery -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

2. 提供服务方[provider]

yaml配置文件

spring:
  application:
    name: demo-provider-service
  cloud:
    nacos:
      # 注册中心
      discovery:
        enabled: true
        # 自己nacos地址
        server-addr: localhost:8848 
        namespace: xxxx
        
 # dubbo 配置
dubbo:
  application.name: ${spring.application.name}
  scan:
    base-packages: com.demo.service
  protocol:
    name: dubbo
    port: -1
  registry:
    # 挂载到 Spring Cloud 注册中心,不需要加nacos的namespace,不要使用 nacos:// 
    address: spring-cloud://${spring.cloud.nacos.discovery.server-addr}

对应service接口上增加 @Service 注解,【org.apache.dubbo.config.annotation.Service 下的注解】

import org.apache.dubbo.config.annotation.Service;

@Service(version = "1.0.0", timeout = 10000)
public class DemoProviderServiceImpl implements DemoProviderService {

}

2. 消费服务方[consumer]

yaml配置文件

spring:
  application:
    name: demo-consumer-service
  cloud:
    nacos:
      # 注册中心
      discovery:
        enabled: true
        # 自己nacos地址
        server-addr: localhost:8848
        namespace: xxxx
dubbo:
  registry:
    # 挂载到 Spring Cloud 注册中心
    address: spring-cloud://${spring.cloud.nacos.discovery.server-addr}
    # 配置namespace
    #parameters[namespace]: ${spring.cloud.nacos.discovery.namespace}
  cloud:
    subscribed-services: demo-provider-service
  consumer:
    check: false
    loadbalance: "leastactive"

引入服务时,增加@Reference注解,[同样是org.apache.dubbo.config.annotation.Reference下面的]

import org.apache.dubbo.config.annotation.Reference;

@RestController
@RequestMapping(value = "test")
public class DemoConsumerController {
    @Reference(version = "1.0.0", timeout = 10000, check = false)
    private DemoProviderService demoProviderService;
}

3. 启动服务,查看Nacos注册情况

在这里插入图片描述
查看详情如下
在这里插入图片描述
这样就整合完成了,调用测试接口测试通过;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值