dubbo生产环境使用时遇到的问题

本文探讨了Dubbo框架中注册中心配置导致的服务发现异常,包括预发环境调用线上服务的问题,以及Hessian序列化同名字段覆盖引起的错误。分析了Dubbo的RegistryConfig类工作原理,指出在address未找到服务时,如何从backupProvider地址查找provider。同时,讨论了序列化过程中子类字段被父类同名字段覆盖的原因。

问题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值赋给了子类同名字段

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值