- Dubbo version: 3.1.0
- Java version: 1.8.0
- 在 Dubbo Provider 端配置
dubbo.provider.delay = 1000
并启动服务 - 启动过程中会发现日志
[DUBBO] No valid instance found, stop registering instance address to registry.
- 启动后马上到 zookeeper 中查看 /services/xxxService/ 下,会发现并没有刚启动的这台实例的 IP
- 30s 后 zookeeper 上会出现实例 IP
AbstractServiceDiscovery#register()
在注册到注册中心时,会发现找不到元数据信息,从而报出 No valid instance
警告:
而 30s 后则由 Dubbo 定时线程同步 Metadata 时发现并上报到注册中心的。
怀疑是应用级注册功能,并没有实现 dubbo.provider.delay
延迟暴露功能,反而会有冲突,导致实际上 30s 后才暴露。在线上这会。导致旧 Pod 已经下线,新 Pod 还没有注册上去,出现数秒到十数秒 No Provider 问题。