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

解决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.dtcms.com/a/98883.html

相关文章:

  • 【java基础】Java 泛型
  • IPv6 Over IPv4 自动 6to4 隧道
  • Altium Designer——同时更改多个元素的属性(名称、网络标签、字符串标识)
  • OpenBMC:BmcWeb 生效路由5 优化trie
  • Unity高渲染管线
  • 经济均衡问题建模与求解:单一市场供需平衡分析
  • 蓝桥杯单片机刷题——E2PROM记录开机次数
  • R CSV 文件处理指南
  • 项目如何安装本地tgz包并配置局部registry
  • NixVis 开源轻量级 Nginx 日志分析工具
  • 鸿蒙开发:了解Canvas绘制
  • [C++项目]高并发内存池性能测试
  • 音乐推荐系统的研究与应用
  • JAVA学习*单列模式
  • Linux进程状态补充(10)
  • 18-动规-子序列中的 k 种字母(中等)
  • Python --- .flush() 强制输出缓冲区的数据(缓冲区未满)
  • 代码随想录算法训练营--打卡day3
  • HTML元素小卖部:表单元素 vs 表格元素选购指南
  • 从零开始研发GPS接收机连载——19、自制GPS接收机的春运之旅
  • 《Spring Cloud Eureka 高可用集群实战:从零构建高可靠性的微服务注册中心》
  • 【RabbitMQ】Linux上安装RabbitMQ详细步骤
  • 全球化2.0 | ZStack举办香港Partner Day,推动AIOS智塔+DeepSeek海外实践
  • 嵌入式libc
  • [创业之路-344]:战略的本质是选择、聚焦, 是成本/效率/低毛利优先,还是差易化/效益/高毛利优先?无论是成本优先,还是差易化战略,产品聚焦是前提。
  • 基于HTML5和CSS3实现3D旋转相册效果
  • linux课程学习二——缓存
  • JAVA的内存图理解
  • C/C++回调函数实现与std::function和std::bind介绍
  • 综合实验2