Closed zd-double closed 8 years ago
最近在线上环境一些依赖sofa-pbrpc的服务出现"resolve address failed"的问题,导致client和一些server不能正常通信。
如 #37 中描述:RpcChannel在构造函数中调用具体实现channel的Init()函数对地址进行解析不能返回Init的结果,当地址解析失败会设置_resolve_address_succeed的状态,在之后每次RpcChannel的CallMethod都会检查_resolve_address_succeed状态,如果为false则返回用户失败并设置RPC_ERROR_RESOLVE_ADDRESS的错误码。
@qinzuoyan @cyshi 左言和承毅对这个问题有什么方案吗?
@qinzuoyan 看看 我觉得几种方案都不是很合适
ChannelOption 中增加一个选项 bool createWithInit 默认true 进行初始化 兼容老代码
程序运行中出错的话 需要用户自己处理 重新init或者退出
问题现象
最近在线上环境一些依赖sofa-pbrpc的服务出现"resolve address failed"的问题,导致client和一些server不能正常通信。
问题原因
如 #37 中描述:RpcChannel在构造函数中调用具体实现channel的Init()函数对地址进行解析不能返回Init的结果,当地址解析失败会设置_resolve_address_succeed的状态,在之后每次RpcChannel的CallMethod都会检查_resolve_address_succeed状态,如果为false则返回用户失败并设置RPC_ERROR_RESOLVE_ADDRESS的错误码。
解决方案
@qinzuoyan @cyshi 左言和承毅对这个问题有什么方案吗?