栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

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

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

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

1. Maven依赖

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

    
        
        Hoxton.RELEASE
        2.2.0.RELEASE
    
 
        
            
            
                org.springframework.cloud
                spring-cloud-dependencies
                ${spring-cloud.version}
                pom
                import
            
            
            
                com.alibaba.cloud
                spring-cloud-alibaba-dependencies
                ${alibaba-cloud.version}
                pom
                import
            
        
    

增加Dubbo、nacos依赖

        
            com.alibaba.cloud
            spring-cloud-starter-dubbo
        
        
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-discovery
        
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注册情况


查看详情如下

这样就整合完成了,调用测试接口测试通过;

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/282880.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号