文章目录
- 问题背景
- 问题现象
- 问题定位
- 解决方案
- 经验总结
问题背景
今天在给项目增加服务注册和发现功能时,选择了 nacos 作为服务注册中心。在使用 nacos-sdk-go v2.29 版本进行开发时,遇到了一个令人啼笑皆非的问题,足足花了3个小时才找到原因。
问题现象
在实现服务订阅通知功能时,发现服务更改后总是不生效。通过代码追踪,发现问题。
问题定位
在 v2.2.7 版本中的NotifySubscriberRequest
的 GetRequestType()
是 NotifySubscriberRequest:
在 v2.2.9 中,被提取成了常量,但是少了一个r,是:NotifySubscribeRequest
这个拼写错误导致请求类型不匹配,无法正常的监听到服务注册信息的变化。这种拼写错误真是让人哭笑不得[捂脸]。
解决方案
依赖先降级到 v2.2.7
经验总结
- 在使用第三方库时,遇到问题要有耐心,从最基础的地方开始排查;
- 最重要的是先看看Issues,可能已经有人提了相关问题,避免浪费时间,因为这个问题已经有人提过了:https://github.com/nacos-group/nacos-sdk-go/issues/806