问题1:
场景: 线上一个接口收到了预发的调用,预发配置的注册中心有两个,一个是预发的zk地址,一个是线上的zk地址,但是线上的zk地址 ,是配置在backupProvider标签属性里面
<dubbo:registry address="${dubbo.registry}" backupProvider="${dubbo.provider.backup}"/>
可以看到在dubbo的RegistryConfig类里面

如果address地址里面取不到服务,就去backupProvider的地址里面去找provider。
源码里面
如果备用地址不为空,会用;分隔加到address里面去

问题2
cause:message can not send,because channel is closed 端口未开放
问题3 序列化 hession 子类和父类字段相同
hessian默认是使用 com.caucho.hessian.io.JavaSerializer 序列化,同名字段子类字段值被赋值两次,最终用父类null值赋给了子类同名字段
本文探讨了Dubbo框架中注册中心配置导致的服务发现异常,包括预发环境调用线上服务的问题,以及Hessian序列化同名字段覆盖引起的错误。分析了Dubbo的RegistryConfig类工作原理,指出在address未找到服务时,如何从backupProvider地址查找provider。同时,讨论了序列化过程中子类字段被父类同名字段覆盖的原因。
802

被折叠的 条评论
为什么被折叠?



