解决spring cloud alibaba框架使用dubbo过程中No provider问题

本文最后更新于:2022年6月22日 下午

可能很多人为了服务能同时支持feign和dubbo的调用会选择使用spring cloud alibaba这个框架,最后发现了不少问题,比如重启provider的时候,consumer经常报No provider的异常,也查找了很多解决方式,尝试着升级版本等,最后可能都无济于事。一开始以为是dubbo的问题,最后了解到spring cloud alibaba目前还不太适合于生产环境,下面讲下如何以最便捷的方式解决这个问题。

1.注册中心的改造
注册中心这块如果你同时用到dubbo和feign的话,要把注册中心改成nacos,这样可以同时支持两种方式。以下的配置将基于nacos,nacos注册中心引入spring cloud alibaba提供的jar

1
2
3
4
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

2.把dubbo包换掉
不要使用spring cloud alibaba提供的dubbo包

1
2
3
4
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-dubbo</artifactId>
</dependency>

换成

1
2
3
4
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
</dependency>

3.修改配置

1
2
3
4
5
6
7
8
9
10
#可以两种方式同时使用
#1.使用feign方式的时候需要配置
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
#2.使用dubbo方式
dubbo.consumer.check = false
dubbo.consumer.timeout = 3000
dubbo.consumer.retries = 0
dubbo.protocol.name = dubbo
dubbo.protocol.port = -1
dubbo.registry.address=nacos://127.0.0.1:8848

4.目前我使用的相关版本信息
spring-boot:2.1.5.RELEASE
spring-cloud-dependencies:Greenwich.SR6
dubbo-spring-boot-starter:2.7.3
spring-cloud-alibaba-dependencies:2.1.4.RELEASE


解决spring cloud alibaba框架使用dubbo过程中No provider问题
https://blog.m2c.top/spring-cloud-alibaba-dubbo-no-provider.html
作者
Jeffery
发布于
2021年12月15日
许可协议