nacos-group / r-nacos

Nacos server re-implemented in Rust.
https://r-nacos.github.io/docs/
Apache License 2.0
807 stars 84 forks source link

运行中的应用从nacos切换rnacos时服务列表为空 #85

Closed FlowerBirds closed 3 months ago

FlowerBirds commented 3 months ago

前提:nacos的配置和rnacos的配置一样;

测试1:我先启动nacos,保证各个应用启动正常,且可以访问。此时,关掉nacos服务,启动rnacos服务,启动后服务列表一直为空,系统无法访问,因为系统访问的时候,网关在rnacos上找存活的实例时没有找到。

测试2:先启动rnacos,各个应用启动正常,且可以访问,rnacos的服务列表中展示正常。关闭rnacos,等待10s左右,再次启动rnacos,服务列表正常;

测试3:先启动rnacos,各个应用启动正常,且可以访问,rnacos的服务列表中展示正常。关闭rnacos,等待10s左右,启动nacos,nacos启动后服务列表正常,系统访问正常。此时关闭nacos服务,启动rnacos服务,rnacos后台无报错,日志正常,但是服务列表为空,系统无法访问,情况同测试1。

现象总结:从nacos切换到rnacos时,服务列表为空,从rnacos到nacos时,服务列表正常。

1716173460839

FlowerBirds commented 3 months ago

nacos server: 2.0.2 nacos client: 1.3.3 rnacos: 0.5.8

heqingpan commented 3 months ago

收到,我大概猜到是什么原因: nacos open api服务心跳接口最开始只有一类参数模式,只后再加了一个新模式(少一次解析json)。 r-nacos目前只支持旧模式。 参数模式选择涉及一个协商,从nacos切换到r-nacos时使用新模式,用新模式请求r-nacos无效。从r-nacos切nacos则没有问题。

我回去再验证一下,考虑后续版本支持。

FlowerBirds commented 3 months ago

观察应用的日志,beat的时候出现500错误:EOF while parsing a value at line 1 column 0

应该是r-nacos服务内部错误,但是这个错误没在控制台打印,猜测解析json的时候是空字符串。

希望能有所帮助

heqingpan commented 3 months ago

观察应用的日志,beat的时候出现500错误:EOF while parsing a value at line 1 column 0

应该是r-nacos服务内部错误,但是这个错误没在控制台打印,猜测解析json的时候是空字符串。

希望能有所帮助

收到,感谢!

我到时会兼容处理的。

heqingpan commented 3 months ago

新版本v0.5.11已支持服务心跳接口从nacos平滑切换到r-nacos