Results 10 comments of zz630

Confirm that the service is not re enabled due to heartbeat 确认并非由心跳导致服务重新启用 Nacos does not enable authentication, and all interfaces return OK nacos并未启用认证,并且接口均返回OK // 待参考#8653,是1.3.1发现的问题,已合并到2.1.1

naming-server日志找到 `2022-07-26 10:38:49,581 INFO Positioning inconsistency remove Service{namespace='prod', group='web', name='bservice', ephemeral=false, revision=213}, 61.147.184.72:18741#false 2022-07-26 10:38:49,581 INFO Client remove for service Service{namespace='prod', group='web', name='bservice', ephemeral=false, revision=213}, 61.147.184.72:18741#false 2022-07-26 10:38:49,941 INFO Positioning...

处理delete请求的节点没有滚动日志查不了当天的,其他节点的naming-event当天10点到11点时段的tcp:ok都没有这个实例的服务名和ip

> 有没有 61.147.184.72:18741#false disconnection 的日志? 日志滚动刷走了。查了nacos 2.0.3的代码,都没有打印'disconnection'的哦,jraft日志也没disconnection关键词

> 那搜一下有没有61.147.184.72:18741#false remove service 类似的日志 有的,上面就有 > naming-server日志找到 `2022-07-26 10:38:49,581 INFO Positioning inconsistency remove Service{namespace='prod', group='web', name='bservice', ephemeral=false, revision=213}, 61.147.184.72:18741#false 2022-07-26 10:38:49,581 INFO Client remove for service Service{namespace='prod', group='web', name='bservice',...

> 那其实说明删除确实是删除完成了。是说删除之后控制台上还能看到,还是应用还在调用这个ip? 应用还在调用这个ip,然后才通知到我这边排查。排查发现删除之后(access log找到删除请求)控制台上还能看到。 我升级版本,或者按 #8653 改代码试试。

查了下v2.2.1的代码,没有grpc相关,还是用http的方式。nacos 2.x的服务端兼容http。理解为现在也是支持 2.x 的服务端但没用上新特性

我们的解决方案是nacosSync用nacos client 2.x注册持久化实例,不维持心跳 ,绕开这个问题。nacosSync本身也维持不了过多的心跳,当同步的实例数多了后就要考虑分片。所以采用注册持久化实例的方式

我之前是用注册持久化实例来做的同步,nacos版本是没有批量接口的2.0.3。 临时实例的问题在于,nacosSync高可用时,可能存在多个nacosSync同时处理一个任务,维持着某个实例的grpc连接。这时如果某个nacosSync到数据源nacos的网络出问题,同时实例下线了,这个nacosSync会一直维持着grpc连接。导致下线掉的实例在被同步的集群下线不了。 持久化实例起码有健康检查可以规避问题。 nacos的服务不允许同时有持久化和临时实例,所以普通注册也改为持久化实例。