Nacos Client的Bug解决方法记录
起因
在Nacos
的API
方式使用中,当使用如下的代码去进行注册服务时,在不同的版本的Nacos
当中出现了不同的结果。
try { NamingService namingService = new NacosNamingService("localhost:8848"); namingService.registerInstance("wanna", "localhost", 8889); namingService.registerInstance("wanna", "localhost", 8890); TimeUnit.SECONDS.sleep(500); } catch (Exception ex) { ex.printStackTrace(); }
分析
- 1.在使用
Nacos Client
和NacosServer
版本为1.4.2
的版本当中,该代码正常运行,也能往NacosServer
当中注册上去两个Instance
。 - 2.在使用
Nacos Client
和NacosServer
版本为2.0.2
的版本当中,该代码只能往NacosServer
当中注册一个Instance
,后进行注册的8890,将会替代之前的8889,NacosServer
中只有一个Instance
。 - 3.在
Nacos Client
使用1.4.2
的版本,Nacos Server
使用2.0.2
的版本中,也能正常注册。 - 4.在
Nacos Client
使用2.0.2
的版本,Nacos Server
使用1.4.2
的版本中,Client
直接报错,不能启动。
版本兼容适配
懵逼状态,搞了一晚上排查问题,怀疑是Nacos Client
版本的问题?
给Github提了Issue,官方回复是,这是设计的问题,在Client2.0.x的版本当中,NamingService
维护着一个长连接,如果要注册别的服务,需要重新创建一个NamingService
去注册。(就很那个,官方文档说了和之前的API兼容,这,算是兼容吗,给的示例代码都是这样子的。。。找了老半天问题所在,根本不清楚这个问题,还好我最后换版本了)
以上就是Nacos Client的Bug解决方法记录的详细内容,更多关于Nacos Client Bug解决的资料请关注脚本之家其它相关文章!
相关文章
Java中的synchronized有几种加锁方式(实例详解)
在Java中,synchronized关键字提供了内置的支持来实现同步访问共享资源,以避免并发问题,这篇文章主要介绍了java的synchronized有几种加锁方式,需要的朋友可以参考下2024-05-05Spring Boot整合EasyExcel(完整版包含上传解析excel和下载模板)
这篇文章主要介绍了Spring Boot整合EasyExcel(完整版包含上传解析excel和下载模板),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-12-12
最新评论