spring-cloud-alibaba Dubbo 2.7.6 kill -9 会导致 consumer 会报 No provider available from registry (disabled, not registered or in blacklist) , 而且不会重连

blmhpbnm  于 21天前  发布在  Spring
关注(0)|答案(7)|浏览(15)

我们鼓励使用英文,如果不能直接使用,可以使用翻译软件,您仍旧可以保留中文原文。
We recommend using English. If you are non-native English speaker, you can use the translation software.

Which Component
升级之后
spring-cloud-starter-dubbo: 2.2.1
dubbo: 2.7.6

升级之前:
spring-cloud-starter-dubbo: 2.1.4
dubbo: 2.7.3

Describe what problem you have encountered
升到 2.7.6 后常常重启 provider 后, consumer 会变得再也不可连, 且会报错:
No provider available from registry ST-NACOS-01:9090 for service st-my-provider/com.alibaba.cloud.dubbo.service.DubboMetadataService:1.0.0 on consumer xxx.xxx.xxx.xxx use dubbo version 2.7.6, please check status of providers(disabled, not registered or in blacklist).

就算我 provider 已经启动了也没用

升级之前并没有遇到这类的问题, 研究很久找不出原因, 不知道具体机制是什么

Describe what information you have read
根据 log 观察, 是我下线 provider 是用 kill -9 , 导致 consumer 在短时间调用会报 connection refuse
造成

试了几次不用 kill -9 删除, 看起来就没问题了

请问有配置可以避免这种情况吗? 我想让 consumer 可以重新连上 provider
在升级前似乎都没这问题

xesrikrc

xesrikrc1#

测试了几次, 感觉又是偶发的, 不知在什么情况才会造成不自动重连

of1yzvn4

of1yzvn42#

测试过dubbo的cluster功能吗?我测试了几次,这个配置完全没有生效

u1ehiz5o

u1ehiz5o3#

遇到同样的问题,在用容器部署的时候,服务端重新发布一次,客户端就报这错误

t2a7ltrp

t2a7ltrp5#

看下 #1259

看过了, 我的程序 dubbo port 等相关全部都是配死的 (启动脚本就指定), 不会浮动

另外我目前有三个环境的 nacos

开发环境, 测试环境, 生产环境

只有开发环境跟测试环境会有问题, 生产没问题...

x4shl7ld

x4shl7ld6#

我在k8s环境可以100%复现这个问题,但是在mac上用随机端口却复现不出来,百思不得其解。。

olmpazwi

olmpazwi7#

在配置中添加 dubbo.scan.base-packages 可以解决

类似这样

dubbo.scan.base-packages=com.test.dubbo.provider

原理详见官方文档

其 scanBasePackages 属性扫描指定 Java 包,将所有标注 @service 的服务接口实现类暴露为 Spring Bean,随即被导出 Dubbo 服务。
Dubbo 融合 Nacos 成为注册中心

相关问题