Nacos源码学习
文章平均质量分 93
Nacos源码分析学习
逸航不吃瓜
这个作者很懒,什么都没留下…
展开
-
Nacos 进阶篇---Nacos服务下线做了哪些事情 ?(八)
当Spring容器销毁的时候,首先我们知道Nacos客户端服务下线,是会调用服务端删除实例的接口,在这个接口当中,会把 instance 实例列表进行移除,然后就和服务注册代码逻辑一样,利用写时替换的方式,更新Nacos注册表的数据。在Nacos注册数据表变动后,服务端是发布一个事件,然后利用 udp 的方式去通知每一个客户端服务。注册服务:Spring容器启动,Nacos客户端利用事件监听,从而调用Nacos服务端 服务实例注册接口。在调用服务注册之前,客户端会开启一个 心跳健康检查异步任务。原创 2024-05-29 15:56:31 · 722 阅读 · 2 评论 -
Nacos 进阶篇---Nacos服务端怎么维护不健康的微服务实例 ?(七)
总结:本章讲了Nacos怎么维护整个微服务实例健康状态的流程,在客户端发起注册服务时会有心跳任务,每5s给服务端发送一次心态,服务端会把该 Instance 实例中的lastBeat 属性更新为当前时间。并且在服务端实例注册的时候,会开启心跳健康检查任务,把 lastBeat 跟当前时间比超过 15s,就会被标识为不健康的实例,把lastBeat 跟当前时间比超过 30s,Nacos 会把该 Instance 从注册表当中进行删除。原创 2024-05-19 15:44:14 · 751 阅读 · 0 评论 -
Nacos 进阶篇---服务发现:服务之间请求调用链路分析(六)
每一个客户端服务都有一个本地缓存列表,先根据服务名去本地缓存列表当中找,如果没有就去调用Nacos实例查询接口查询注册表当中数据,查到的话进行返回,同步更新本地缓存列表,同时也会开启定时任务来维护本地缓存列表。如果根据服务名在本地缓存列表查到多个服务实例,最终会根据负载均衡的策略选择其中一个, 进行 HTTP 调用。最后我们还看了Nacos实例查询接口,实例数据是从Nacos注册表当中获取,进行返回的。原创 2024-05-19 15:18:00 · 920 阅读 · 0 评论 -
Nacos 入门篇---内存注册表:高并发下如何保证注册表读写并发冲突 ?(五)
1、本章主要讲了 Nacos注册表的结构,可以看出Nacos注册表的设计方式还是很灵活的,可以通过命名空间、分组、集群来进行实例的区分,具体可以根据公司的业务场景来定。2、我们还讲了在高并发下读写冲突的问题,同时也讲了 解决方案“读写复制” 的理论。最后分析Nacos 实例异步注册任务中,是如何利用 “写时复制”来完成注册表修改的。那么到本章为止,我们 Nacos 源码分析完了一条路线:从客户端发起服务注册,到服务端响应实例注册请求。异步任务 + 内存队列怎么来处理的整个流程,就讲完了。原创 2024-05-12 20:51:54 · 683 阅读 · 0 评论 -
Nacos 入门篇---注册服务:如何做到高并发支持上百万服务注册(四)
本章节主要讲了三大点首先讲了Nacos能支持上百万台注册,主要归功于它的异步任务设计。那什么是异步任务?答:先接受到客户端的注册实例,包装成任务,放到阻塞队列当中。然后再开一条线程死循环去阻塞队列当中获取任务一个个去执行,完成真正的实例注册。(这里不会存在资源浪费的情况,阻塞队列有任务就执行,没任务线程就会挂起)接口响应快 :不用等注册完成才去返回。只要接受到客户端注册实例信息,包装成任务,丢入到阻塞队列当中,就进行返回。原创 2024-04-23 20:39:48 · 706 阅读 · 0 评论 -
Nacos 入门篇---服务端如何处理客户端的服务注册请求?(三)
最终默认调用到了 EphemeralConsistencyService 接口下的DistroConsistencyServiceImpl当中put方法,又在put方法当中调用了 onPut 方法,在onPut 方法当中,创建了Datum对象,把key、和 Instances都放入Datum对象里面去。其实就是 Instances 对象实现了 Record 的接口,Instances 对象当中有个instanceList属性,这个属性包含了之前已经注册的实例和新需要注册的实例。这个参数默认是为:true。原创 2024-04-14 21:29:29 · 820 阅读 · 0 评论 -
Nacos 入门篇---客户端如何发起服务注册?怎么发送服务心跳的(二)
本文主要围绕Nacos客户端发起自动注册的流程自动注册的方式发送服务心跳三个方面来分析源码的。原创 2024-04-06 21:32:00 · 810 阅读 · 0 评论 -
Nacos 入门篇(一)
在早期Spring Cloud开始流行的时候,Eureka使用的比较广泛,后来这个项目在2018年7月的时候,官方就宣布Eureka 2.0不再维护了。再后来阿里推出了全新的 Spring Cloud Alibaba 系列,nacos 就是其中的一员。接下来就跟小编一起来了解下:Nacos官网 | Nacos 官方社区 | Nacos 下载 | Nacos动态服务发现: 动态服务发现很好理解,就是新增或者下线微服务实例,nacos能感知到。这也是作为注册中心最基本的功能。配置管理。原创 2024-03-24 20:27:14 · 944 阅读 · 1 评论