目录

  • 一、背景介绍
  • 1、问题描述
  • 2、解决
  • 二、问题分析过程
  • 1、解决过程设计到的知识
  • ①、nacos的data目录作用
  • ②、nacos data目下的protocol目录
  • ③、nacos ip混乱问题
  • 三、Naocs服务注册和发现
  • 1、服务注册
  • 2、服务发现
  • 四、总结
  • 1、注册到Nacos的服务出现掉线的情况
  • ①、网络故障
  • ②、Nacos服务器故障
  • ③、服务配置错误
  • ④、服务异常退出
  • ⑤、Nacos配置错误
  • 2、对于以上情况,可以通过以下方式来解决和预防
  • ①、监控和报警
  • ②、网络优化
  • ③、Nacos高可用
  • ④、配置验证
  • ⑤、异常处理
  • ⑥、定期检查和更新


一、背景介绍

1、问题描述

因为某些特殊原因需要把nacos迁移到另一个版本的nacos(我迁的是nacos2.0.2版本.)
迁移完成后,Nacos注册中心有一个微服务有多台实例的时候,点击一个实例下线操作,报错

caused: errCode: 500, errMsg: do metadata operation failed ;caused:com.alibaba.nacos.consistency.exception.ConsistencyException:com.alibaba.nacos.core.distributed.raft.exception.NoLeaderException: The Raft Group [naming_instance_metadata] did not find the Leader node;caused:com.alibaba.nacos.core.distributed.raft.exception.NoLeaderException:The Raft Group [naming_instance_metadata] did not find the Leader node;

2、解决

注册的ip混乱,导致出现该问题,先停服务,再停nacos,再删掉data目录下的protocol文件夹,再重启nacos。最后在重启需要注册的那些服务

【项目实战典型案例】23.部分服务总是频繁出现掉线情况_微服务

二、问题分析过程

1、解决过程设计到的知识

①、nacos的data目录作用

nacos的data目录是用来存储nacos服务的数据的,包括配置信息,服务信息等。默认的情况下,data目录位于naocs安装目录下的。

【项目实战典型案例】23.部分服务总是频繁出现掉线情况_微服务_02

②、nacos data目下的protocol目录

nacos的data目录下的protocol目录是用来存储。服务中心的协议信息的,它记录了服务注册中心所使用的协议类型,版本号等等。以便于服务提供者和服务消费者之间进行通信。

③、nacos ip混乱问题

nacos的ip混乱。可能是因为网络配置不正确,或者服务注册不规范导致的。可以通过检查网络配置和服务注册情况来解决这个问题。我们这里使用的解决问题是注册的服务全部删掉,然后重新注册解决的。

三、Naocs服务注册和发现

1、服务注册

nacos 服务注册中心,它是服务,其实例及元数据的数据库。服务实例在启动时注册到服务注册表,并在关闭时注销。服务和路由器的客户端查询服务注册表以查找服务的可用实例。服务注册中心可能会调用服务实例的健康检查 API 来验证它是否能够处理请求。

2、服务发现

各服务实例会上报自己的网络地址,这样服务中心就形成了一个完整的服务注册表,各服务实例会通过服务发现中心来获取访问目标服务的网络地址,从而实现服务发现的机制。同时会在Nacos Client 本地开启一个定时任务,定时拉取服务端最新注册表信息,更新到本地缓存。

四、总结

【项目实战典型案例】23.部分服务总是频繁出现掉线情况_java_03

1、注册到Nacos的服务出现掉线的情况

①、网络故障

如果服务所在的网络出现故障,例如网络断开、网络延迟等,会导致服务与Nacos服务器之间的连接中断,从而导致服务在Nacos上的注册信息失效,出现掉线情况。

②、Nacos服务器故障

如果Nacos服务器出现故障,例如服务器宕机、服务崩溃等,会导致服务无法与Nacos服务器通信,注册信息无法正常更新,从而导致服务掉线。

③、服务配置错误

如果服务在注册到Nacos时配置错误,例如配置的服务名称、IP地址、端口等与实际情况不符,会导致Nacos无法正确识别和管理该服务,从而导致服务掉线。

④、服务异常退出

如果服务发生异常退出或崩溃,例如由于代码bug、内存溢出等原因,会导致服务与Nacos服务器的连接中断,注册信息失效,从而导致服务掉线。

⑤、Nacos配置错误

如果在Nacos上配置服务注册信息时出现错误,例如配置的服务名称、IP地址、端口等与实际情况不符,会导致服务无法正确注册到Nacos,从而导致服务掉线。

2、对于以上情况,可以通过以下方式来解决和预防

①、监控和报警

建立监控系统,实时监测服务与Nacos之间的连接状态,及时发出报警通知。

②、网络优化

确保服务所在的网络稳定可靠,避免网络故障导致的掉线情况。

③、Nacos高可用

使用Nacos的集群模式,配置多个Nacos服务器,确保高可用性,避免单点故障。

④、配置验证

在注册到Nacos之前,对服务的配置信息进行验证,确保配置正确无误。

⑤、异常处理

在服务中添加异常处理机制,避免服务异常退出导致的掉线情况。

⑥、定期检查和更新

定期检查服务的注册信息是否正确,并及时更新配置,确保服务与Nacos的连接正常。