当前位置: 首页 > article >正文

解决Dubbo3调用Springcloud接口报No provider available from registry RegistryDirectory

解决Dubbo调用Springcloud接口报No provider available from registry RegistryDirectory

  • 问题发现
  • 问题解决

问题发现

在学习Dubbo过程中,Dubbo官网有一篇文章《微服务最佳实践,零改造实现 Spring Cloud & Apache Dubbo 互通》,跟着示例进行实操报错。

依赖文件如下:

		<!-- dubbo依赖 -->
		<dependency>
			<groupId>org.apache.dubbo</groupId>
			<artifactId>dubbo-spring-boot-starter</artifactId>
			<version>3.3.0</version>
		</dependency>
		<!-- Nacos注册中心 -->
		<dependency>
			<groupId>org.apache.dubbo</groupId>
			<artifactId>dubbo-nacos-spring-boot-starter</artifactId>
			<version>3.3.0</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-openfeign</artifactId>
			<version>4.1.3</version>
		</dependency>

配置文件如下:

dubbo:
  application:
    name: dubbo-nacos-consumer
    qos-enable: false
  registry:
    address: nacos://127.0.0.1:8848
    register-mode: instance

编写在DubboFeign接口(不介绍SpringCloud相关代码,确保在Nacos注册成功),示例代码如下:

@FeignClient(name = "sc-nacos-product")
public interface EchoService {
    @GetMapping(value = "/echo/{str}")
    String echo(@PathVariable(value = "str") String str);
}

启动类如下:

@SpringBootApplication
@EnableDubbo
@EnableFeignClients
public class DubboNacosConsumerApplication {

	public static void main(String[] args) {
		SpringApplication.run(DubboNacosConsumerApplication.class, args);
	}

}

调用示例代码如下:

@Component
public class Consumer implements CommandLineRunner {

    @DubboReference(providedBy = "sc-nacos-product",check = false)
    private EchoService echoService;
    
    @Override
    public void run(String... args) throws Exception {
        String result = echoService.echo("world");
        System.out.println("Receive result ======> " + result);
    }
}

执行结果如图:

在这里插入图片描述
百度对该问题的解答非常少,无外乎是否注册成功,配置是否正确,似乎这些方案并不能解决我的问题。

问题解决

然后我就去Github寻求答案,发现官方确实是支持了Feign的调用方式,如图所示:

在这里插入图片描述
在这里插入图片描述
然后也发现一个遇到相同错误的问题,但是该问题却一直未关闭,看样子是未解决。

突然灵感爆发,该不会真的是版本问题把,但是官方都是3.3+的版本,然后我就说尝试一下,先将版本升高,没有解决,然后说把版本降低试试(需要单独引入Http依赖),依赖如下所示:

		<dependency>
			<groupId>org.apache.dubbo</groupId>
			<artifactId>dubbo-spring-boot-starter</artifactId>
			<version>3.2.17</version>
		</dependency>
		<dependency>
			<groupId>com.squareup.okhttp3</groupId>
			<artifactId>okhttp</artifactId>
			<version>4.11.0</version>
		</dependency>

然后重新启动,发现真的请求成功了,如图所示:

在这里插入图片描述
也真是大无语,官方的示例居然跑不通,估计代码被覆盖了,文章换了个版本就直接更新了。。。


http://www.kler.cn/a/614186.html

相关文章:

  • c#winform,倒鸭子字幕效果,typemonkey字幕效果,抖音瀑布流字幕效果
  • Python 序列构成的数组(元组不仅仅是不可变的列表)
  • 深入理解Agentic Workflows
  • 读DAMA数据管理知识体系指南34数据仓库和商务智能概念
  • 在 RK3588 多线程推理 YOLO 时,同时开启硬件解码和 RGA 加速的性能分析
  • bluecode-20240913_1_数据解码
  • 树莓派5智能家居中控:HomeAssistant全配置指南
  • uni-app:指引蒙层
  • Spring中的IOC及AOP概述
  • LeetCode 2360.图中的最长环:一步一打卡(不撞南墙不回头) - 通过故事讲道理
  • Python包管理完全指南:pip常用命令与最佳实践
  • mysql.8.4.4--初始化报错--libnuma.so.1缺失
  • 用Python打造智能宠物:强化学习的奇妙之旅
  • 《新凯来 :中国半导体设备制造行业从“跟随者”向“挑战者”的角色转变》
  • OpenAI API - 内置工具使用
  • 城电科技|零碳园区光伏太阳花绽放零碳绿色未来
  • 鸿蒙Next-集成HmRouter的路由模式
  • Spring Initializr搭建spring boot项目
  • 【数据结构】[特殊字符] 并查集优化全解:从链式退化到近O(1)的性能飞跃 | 路径压缩与合并策略深度实战
  • MDK中结构体的对齐、位域、配合联合体等用法说明