nacos 学习笔记

本文详细阐述了Nacos注册中心的工作流程,包括服务提供者和服务消费者如何交互,临时和永久实例的区别,以及健康检查机制。还介绍了nacos集群的选举机制基于raft算法实现。
摘要由CSDN通过智能技术生成

注册中心流程

1)服务提供者启动时把服务注册到nacos注册中心。
2)服务提供者注册成功后,定时发http请求(即心跳)到注册中心,证明自身服务实例可用。
3)如果注册中心长时间没有收到服务提供者的心跳,则剔除该实例或把监控状态设置为false。
4)服务消费者发现服务支持两种方式:
4.1)一种是主动请求注册中心获取服务列表
4.2)订阅注册中心的服务并注册一个listener,如果注册中心的服务有变更,由listener来通知服务消费者更新本地服务列表
5)服务消费者获取服务相关信息进行远程调用。

服务实例类型

1)临时实例,注册中心的服务类型默认为临时实例,健康检查,客户端主动删,如果超过30秒没有收到心跳,则移除实例
1.1)可能产生的问题:大面积删除实例 ,当Nacos 本身网络故障时,可能大面积删除临时实例,极端情况下会导致注册列表全部清空,如果清空后的列表成功下发到 消费者的客户端,会造成严重故障
2)永久实例,可以通过配置参数实现,监控检查使用反向探测机制,会保留不健康的实例。
优点:保护阈值存在的意义在于当服务A健康实例数/总实例数 < 保护阈值时,说明健康的实例不多了,保护阈值会被触发(状态true). Nacos会把该服务所有的实例信息(健康的+不健康的)全部提供给消费者,消费者可能访问到不健康的实例,请求失败,但这样也⽐造成雪崩要好。牺牲了⼀些请求,保证了整个系统的可⽤。

健康检查

1)注册中心的两种服务实例,临时实例和永久实例
2)临时实例的健康检查使用的是客户端主动上报机制,每个5秒会主动上报一次自己的健康状态,这种机制也叫心跳机制。如果心跳包的间隔时间超过15秒,那么nacos服务端就会将此服务实例标记为非健康实例,如果心跳包超过30s秒,那么nacos服务端将会把此服务实例从服务列表中删除。
3)永久实例采用的是服务端反向探测机制。可以使用http探测和tcp探测,http探测是调用nacos客户端的接口是否返回200,tcp探测是通过与注册实例建立信道,不断ping注册实例的端口,来判断实例是否健康。

nacos 集群选举机制

nacos的集群是通过raft共识算法实现的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值