28个案例问题分析---023---部分服务总是出现频繁掉线的情况--nacos,springCloud 淡淡的烟草味﹌ 2023-10-09 15:51 15阅读 0赞 #### nacos部分服务掉线 #### * 一:故事背景 * 二:原因分析 * * 2.1 Nacos的data目录 * 2.1.1. nacos的data目录作用。 * 2.1.2 nacos data目下的主要目录 * 2.1.3 nacos ip混乱问题可能原因及解决方式 * * 2.1.3.1 原因 * 2.1.3.2 解决方式 * 2.2 nacos服务注册发现原理 * * 2.2.1 服务注册 * 2.2.2. 服务心跳 * 2.2.3. 服务发现 * 2.2.4. 服务健康检测 * 2.2.3 nacos的服务注册与发现和data的关系 * 2.2.4 为什么删除 nacos的date目录可以解决ip混乱的问题 * 三:总结&提升 * * 3.1 总结 * 3.2 思想展望 ## 一:故事背景 ## 我们的springCloud项目,使用的nacos作为服务中心。但是其中有一个服务,总是出现频繁掉线的问题。后来通过查询博客。采用。先停nacos,再删掉data目录下的protocol文件夹,最后重启需要注册的服务进行的解决,今天就来总结一下,这个问题涉及到的知识点。 ![在这里插入图片描述][be9a292f023c4f179e89fac1109ad0bc.png] ## 二:原因分析 ## ### 2.1 Nacos的data目录 ### ### 2.1.1. nacos的data目录作用。 ### Nacos是一个开源的分布式配置中心和服务发现平台,它的data目录是Nacos服务器存储所有数据的目录,包括配置数据、服务实例数据、命名空间数据等。 在Nacos中,data目录的默认路径为$\{user.home\}/nacos/data,可以通过修改nacos/conf/application.properties文件中的nacos.core.data.dir属性来指定data目录的路径。 ![在这里插入图片描述][1f6089e79e904beeb6660daf7d3f607e.png] ### 2.1.2 nacos data目下的主要目录 ### 在data目录下,有多个子目录和文件,其中比较重要的有: * cluster: 存储Nacos集群节点的信息,包括每个节点的IP地址、端口号等; * config-data: 存储所有的配置数据,以及与配置相关的元数据信息; * data-mysql: 存储使用MySQL作为Nacos数据库时的相关信息,包括数据库的URL、用户名、密码等; * namespace: 存储所有的命名空间信息; * snapshot: 存储每个Nacos节点的快照信息,包括配置数据、服务实例数据等。 需要注意的是,data目录中的数据都是二进制格式的,因此不应该直接对其进行修改。如果需要修改配置数据等信息,应该通过Nacos提供的API或控制台进行操作。 ### 2.1.3 nacos ip混乱问题可能原因及解决方式 ### #### 2.1.3.1 原因 #### * 主机名不唯一:当多个节点的主机名相同,但是IP地址不同,可能会导致Nacos集群中的节点无法正确识别彼此。 * 网络配置错误:在多网卡环境下,如果节点的IP地址设置错误,可能会导致节点之间的通信失败。 * 配置错误:Nacos集群中的节点需要在配置文件中指定相应的IP地址,如果配置错误,可能会导致节点之间无法正常通信。 * 节点故障:当某个节点宕机或者被关闭时,其它节点可能无法及时发现和更新该节点的状态,从而导致节点的IP混乱问题。 #### 2.1.3.2 解决方式 #### * 每个节点的主机名必须唯一,避免主机名冲突; * 在多网卡环境下,节点的IP地址必须正确设置,确保节点之间能够正确通信; * 配置文件中的IP地址必须正确配置,避免节点之间无法通信; * 配置合适的健康检查机制,及时检测并处理故障节点 ### 2.2 nacos服务注册发现原理 ### #### 2.2.1 服务注册 #### Nacos Client 通过发送REST请求向Nacos Server注册自己的服务。提供自己的 ip地址、端口等信息。 #### 2.2.2. 服务心跳 #### 服务注册之后。Nacos Client 会默认每5s向Nacos Server 发送一次心跳。以防止服务被剔除。 #### 2.2.3. 服务发现 #### 服务消费者Nacos Client ,在调用服务提供者服务时,会发送一个REST请求给,Nacos Server ,获取Nacos Server上注册的服务清单。并且缓存在 本地。同时会在Nacos Client 本地开启一个定时任务,定时拉取服务端最新注册表信息,更新到本地缓存。 #### 2.2.4. 服务健康检测 #### Nacos Server 开启一个定时任务,检查注册服务实例的健康情况。超过15s没有收到客户端心跳的实例,会将它的 healthy数据设置为(false),如果某个实例超过30s没有收到心跳,直接剔除该实例(如果服务恢复的话,) ### 2.2.3 nacos的服务注册与发现和data的关系 ### * Nacos是一个面向微服务架构的服务发现、配置管理和服务管理平台,其中服务注册与发现是Nacos的核心功能之一。服务注册与发现可以让微服务架构下的各个服务互相发现和调用,从而实现整个系统的高效协同。 * 而Nacos的data目录则是Nacos在本地磁盘上存储数据的目录。在Nacos中,所有的配置信息、服务实例信息等都被持久化到磁盘上,以便在Nacos重启后能够恢复之前的状态。因此,Nacos的data目录是Nacos服务注册与发现和其他功能正常运行的基础。 * 当Nacos启动时,它会读取data目录中的数据并加载到内存中,然后提供服务注册与发现、配置管理等功能。如果data目录丢失或损坏,Nacos可能无法正常启动或无法恢复之前的状态。 ### 2.2.4 为什么删除 nacos的date目录可以解决ip混乱的问题 ### * 删除 Nacos 的 data 目录会清空 Nacos 的数据缓存,包括注册中心数据、配置信息等,当 Nacos 节点重启时会重新拉取最新数据并重新注册服务。这个操作可能会解决 IP 混乱的问题,因为当 Nacos 的数据缓存存在错误时,可能导致 Nacos 将错误的 IP 地址返回给服务消费者,从而导致服务消费者无法正确地访问服务提供者。通过删除 data 目录来清空缓存,可以消除这个问题。 * 需要注意的是,删除 data 目录的操作是有一定风险的,因为会丢失 Nacos 的所有数据。在进行此操作之前,建议先备份数据,以免造成不可挽回的损失。同时,也需要考虑到在删除数据缓存后,可能需要重新注册服务和重新配置 Nacos 的一些参数等操作。 ## 三:总结&提升 ## ### 3.1 总结 ### 我们在这篇文章里讲解了解决 Spring Cloud 项目中服务频繁掉线的问题。该项目使用 Nacos 作为服务中心,给出了nacos的ip出现混乱的情况的解决方法:先停止 Nacos,再删除 data 目录下的 protocol 文件夹,最后重启需要注册的服务。 ### 3.2 思想展望 ### 希望这篇文章能对你解决nacos的ip混乱的问题提供一下思路。解决问题的时候,不能局限于问题本身,思路打开,才可以找到更好的解决方案。 [be9a292f023c4f179e89fac1109ad0bc.png]: https://img-blog.csdnimg.cn/be9a292f023c4f179e89fac1109ad0bc.png [1f6089e79e904beeb6660daf7d3f607e.png]: https://img-blog.csdnimg.cn/1f6089e79e904beeb6660daf7d3f607e.png
相关 频繁出现:Java多线程同步问题实例 在Java编程中,多线程同步问题是常见的挑战之一。以下是一些关于Java多线程同步问题的实例: 1. **互斥锁(Mutex)**: ```java Lock l 小鱼儿/ 2024年09月19日 12:03/ 0 赞/ 5 阅读
相关 频繁出现的Java并发问题实例 在Java并发编程中,常见的问题有线程阻塞、死锁、资源泄露、无序执行等。 1. 线程阻塞: ```java // 错误例子:线程A无限等待线程B完成任务 T 电玩女神/ 2024年09月11日 15:36/ 0 赞/ 15 阅读
相关 28个案例问题分析---023---部分服务总是出现频繁掉线的情况--nacos,springCloud nacos部分服务掉线 一:故事背景 二:原因分析 2.1 Nacos的data目录 2.1.1. nacos的data目录作用。 淡淡的烟草味﹌/ 2023年10月09日 15:51/ 0 赞/ 16 阅读
相关 28个案例问题分析---08---让软件的使用者成为软件的设计者--思想 背景介绍 ![在这里插入图片描述][9674090117bc489a922ec76a325dd48a.png] 这是我们做的对上线记录进行管理的一种方式,使用的是公共的 不念不忘少年蓝@/ 2023年10月09日 15:49/ 0 赞/ 21 阅读
相关 28个案例问题分析---027---单表的11个Update接口--MyBatis Mybatis动态SQL 一:背景介绍 二:前期准备 2.1 引入pom依赖 2.2 数据库连接文件 2.3 MyBa 雨点打透心脏的1/2处/ 2023年10月09日 15:49/ 0 赞/ 24 阅读
相关 28个案例问题分析---01---redis没有及时更新问题--Redis redis没有及时更新问题 一:背景介绍 二:前期准备 2.1 pom依赖 2.2 连接Redis工具类 2.3 连接 谁借莪1个温暖的怀抱¢/ 2023年10月09日 15:47/ 0 赞/ 26 阅读
相关 28个案例问题分析---013---学情页面逻辑问题--LocalStorage 目录 一:背景介绍 1.1 代码展示 1.2 逻辑分析 二:LocalStorage基础知识 2.1 LocalStor 快来打我*/ 2023年10月09日 15:44/ 0 赞/ 23 阅读
相关 mysql频繁掉线_KB967723补丁导致MySQL频繁掉线无法连接 大家在使用MySQL数据库的时候是否有经常被mysql频繁掉线无法连接而懊恼,怎么都找不出原因,今天介绍一种mysql掉线无法连接的解决办法。 表现形式:Can't conn 向右看齐/ 2023年01月11日 13:26/ 0 赞/ 114 阅读
相关 浏览器总是出现没有证书问题 今天我登上虚拟机,浏览器访问网页总是提示我没有证书,图片也无法加载! 解决:我一查看,系统时间和物理机不同,没有自动更新时间,是错误的,然后我就手动同步网络时间,然后问题解决 青旅半醒/ 2022年01月21日 08:25/ 0 赞/ 215 阅读
还没有评论,来说两句吧...