Dubbo3.0 整合 Nacos

本文详细介绍了如何在Dubbo3.0.7版本中与Nacos2.0.4集成,包括Provider和Consumer的配置,以及解决Consumer注册到Nacos的问题。重点强调了Dubbo3的双注册模式,并提供了配置修改方法。
摘要由CSDN通过智能技术生成

首先呢,这个项目分为provider提供者和consumer消费者,使用的版本是dubbo3.0.7,nacos是2.0.4。(注意:要使用dubbo3,nacos的版本必须在2.0.0以上)

Provider提供者

pom.xml

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.example</groupId>
            <artifactId>interfaces</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo</artifactId>
            <version>3.0.7</version>
        </dependency

        <dependency>
            <groupId>com.alibaba.nacos</groupId>
            <artifactId>nacos-client</artifactId>
            <version>2.0.4</version>
        </dependency>
</dependencies>

application.properties

需要注意的是,Dubbo3 默认采用 “应用级服务发现 + 接口级服务发现” 的双注册模式,因此会发现应用级服务(应用名)和接口级服务(接口名)同时出现在 Nacos 控制台,可以通过配置 dubbo.registry.register-mode=instance/interface/all 来改变注册行为。

# 应用名称
spring.application.name=provider

# 应用服务 WEB 访问端口
server.port=8964

# dubbo 协议
dubbo.application.name=provider
dubbo.protocol.id=dubbo
dubbo.protocol.name=dubbo

# dubbo 协议端口( -1 表示自增端口,从 20880 开始)
dubbo.protocol.port=-1

# dubbo连接nacos的地址
dubbo.registry.address=nacos://47.113.227.146:8848

# Dubbo3 默认采用 “应用级服务发现 + 接口级服务发现” 的双注册模式,因此会发现应用级服务(应用名)和接口级服务(接口名)同时出现在 Nacos 控制台,可以通过配置 dubbo.registry.register-mode=instance/interface/all 来改变注册行为。
dubbo.registry.register-mode=interface

service

@DubboService
public class ProviderServiceImpl implements ProviderService {
    @Override
    public String hello() {
        return "我是provider";
    }
}

ProviderApplication

@SpringBootApplication
//指定dubbo扫描的包
@EnableDubbo(scanBasePackages = "com.example.provider.service")
public class ProviderApplication {
    public static void main(String[] args) {
        SpringApplication.run(ProviderApplication.class, args);
    }
}

Customer消费者

application.properties

Dubbo3.0.0版本以后,增加了是否注册消费者的参数,如果需要将消费者注册到nacos注册中心上,需要将参数(register-consumer-url)设置为true,默认是false。

# 应用名称
spring.application.name=consumer

# 应用服务 WEB 访问端口
server.port=8080

# dubbo 协议
dubbo.application.name=consumer
dubbo.protocol.id=dubbo
dubbo.protocol.name=dubbo

# Dubbo 消费端订阅服务端的应用名,多个服务提供者用逗号分隔
# 这里订阅"自己",会被忽略掉,请根据实际情况添加
dubbo.cloud.subscribed-services=provider

#Dubbo3.0.0版本以后,增加了是否注册消费者的参数,如果需要将消费者注册到nacos注册中心上,需要将参数(register-consumer-url)设置为true,默认是false。
dubbo.registry.address=nacos://47.113.227.146:8848?register-consumer-url=true

controller

@RestController
public class MyController {
    @DubboReference
    ProviderService service;

    @GetMapping("/1")
    public String test(){
        return service.hello();
    }
}

CustomerApplication

@SpringBootApplication
@EnableDubbo
public class ConsumerApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConsumerApplication.class, args);
    }
}

错误

之前有试过无法注册到nacos上,报错Failed to register dubbo://192.168.1.104:20880/com.cola.interfaces.ProviderService

解决方法为:开启服务器上nacos的9848端口映射。

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用[1]:访问http://localhost:7070/baseLogin?username=xwl&password=123 引用[2]:具体jar包依赖:<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> 引用[3]:首先呢,这个项目分为provider提供者和consumer消费者,使用的版本是dubbo3.0.7,nacos是2.0.4。(注意:要使用dubbo3,nacos的版本必须在2.0.0以上) Provider提供者 pom.xml <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.example</groupId> <artifactId>interfaces</artifactId> <version>1.0-SNAPSHOT</version> </dependency> <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo</artifactId> <version>3.0.7</version> </dependency> <dependency> <groupId>com.alibaba.nacos</groupId> <artifactId>nacos-client</artifactId> <version>2.0.4</version> </dependency> </dependencies> application.properties 问题: springboot3.0整合nacos 回答: 在Spring Boot 3.0整合Nacos,你需要在pom.xml文件中添加相应的依赖。具体的依赖包括:spring-cloud-starter-bootstrap、spring-boot-starter-web、spring-cloud-starter-alibaba-nacos-config和spring-cloud-starter-alibaba-nacos-discovery。[2]此外,你还需要在application.properties文件中进行相应的配置。在整合过程中,你需要注意使用的版本。对于Dubbo 3和Nacos 2.0.0以上的版本是兼容的。[3]因此,确保你使用的是Dubbo 3.0.7和Nacos 2.0.4版本。这样,你就可以成功地将Spring Boot 3.0Nacos进行整合了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值