开发者社区 > 云原生 > 正文

dubbo 启动警告 warn [DUBBO] Failed to start NettyClien

环境信息

Dubbo version: 3.0.X 3.1.X Operating System version: xxx Java version: 1.8

步骤重现

1、参考另一篇issue 把check=false和dynamic=true设置了 还是不行

2、启动AB两个之后 关闭B 重启A会去检查B 导致报错

3、xxx

org.apache.dubbo.remoting.RemotingException: client(url: dubbo://192.168.31.100:20881/com.ruoyi.system.api.RemoteUserService?anyhost=true&application=ruoyi-auth&background=false&cache=false&check=false&codec=dubbo&deprecated=false&dubbo=2.0.2&dubbo.endpoints=[{"port":20881,"protocol":"dubbo"}]&dubbo.metadata.revision=7aa6a74b2033555ff9f68bcaa0559883&dubbo.metadata.storage-type=remote&dynamic=true&generic=false&heartbeat=60000&interface=com.ruoyi.system.api.RemoteUserService&ispuserver=true&logger=slf4j&metadata-type=remote&methods=getUserInfoByPhonenumber,registerUserInfo,getUserInfoByOpenid,getUserInfo&pid=20324&qos.enable=false&register-mode=instance&register.ip=192.168.31.100&release=3.1.2&service-name-mapping=true&side=consumer&sticky=false&timeout=3000&timestamp=1667960478267&unloadClusterRelated=false&validation=false) failed to connect to server /192.168.31.100:20881, error message is:Connection refused: no further information: /192.168.31.100:20881

提问21.png

看了一下源码 如果等于check等于false直接就会报警告

提问22.png

设置了不检查 还疯狂连接报错 这设置意义何在呢

提问23.png

首先 创建NettyClient连接报error 然后因为设置了 check=false 再报一条warn 哭笑不得

提问24.png

通过修改 AbstractClient 源码 check=false 直接停止后续连接操作 所有报错都解决了 功能也都正常

原提问者GitHub用户JavaLionLi

展开
收起
大圣东游 2023-05-11 15:56:23 497 0
1 条回答
写回答
取消 提交回答
  • 这个报错是注册中心推送地址后地址不可达的报错(有可用地址,但是地址连接失败)。

    这里的 check 的作用是避免注册中心直接剔除这个地址(如果注册中心链路上有报错会直接剔除),日志中的报错在生产定位原因的时候是必要的。即使是没有通过地址剔除这种严格的处理也不应该任何日志不留存,否则在调用出现不通或者报错的时候会给分析带来难度(是注册中心问题还是网络问题还是使用方式问题等等)。

    从规范上来说,注册中心是不应该推送不可达地址的,根本应该解决的问题是应该保证下游服务都启动完毕。

    原回答者GitHub用户AlbumenJ

    2023-05-12 10:24:47
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关电子书

更多
Dubbo开源现状与2.7规划 立即下载
Dubbo分布式服务治理实战 立即下载
《Dubbo 3.0 前瞻》 立即下载