
Nacos
文章平均质量分 97
从实际工作应用中如何正确运用 Nacos,以及在源码角度下学习 Nacos
vnjohn
vnjohn,博主名字的简写,是一名专注于后端领域的程序猿,借用歌名“自己”里的歌词来时刻提醒自己要不断学习,不断思而前行:“第一要保持希望在每天清晨太阳升起,第二切记不要与自身的平凡为敌,第三与自己所处的现在促膝长谈”
展开
-
Nacos 服务端配置中心从浅入深原理及源码剖析
Nacos Server 服务节点在启动时,总结以下几个重要的点:1、通过 heartbeatFile 文件写入的时长是否超过 6 小时,来判断是否进行全量数据拉取还是对可变的数据进行重新加载;2、DumpAllTaskManager 任务管理器,6 小时执行一次全量数据的同步;DumpTaskManager 任务管理器,每隔 0.1 秒去监测是否有 DumpTask 任务需要处理,来确保在 Nacos 控制台上更新配置,能够及时响应给客户端,让客户端主动的来拉取最新的配置信息原创 2023-03-14 17:42:19 · 2841 阅读 · 4 评论 -
Nacos 客户端配置中心从浅入深原理及源码剖析
Nacos 2.x 抛弃了 1.x 采用的长轮询模式,替而代之的是长连接模式,通过心跳的机制定时去监测服务端实例状态是否正常,若不正常了,切换到另外一个服务端实例客户端感应到了主动去拉取最新的配置数据进行 md5 比对,若与之前的 md5 不一样了,此时将发生变化的状态通知到 Listener 持有者,此时,持有者就会重新从 Nacos 服务端拿到最新的数据保存下来,在这里总结一下 Nacos 客户端关于配置这块内容应用到的轮询方案原创 2023-03-13 00:37:34 · 3191 阅读 · 4 评论 -
一文带你从零到一深入透析 @RefreshScope 结合 Nacos 动态刷新源码
该篇文章从零到一分析完了 @RefreshScope 加载的过程,从源码各个细节分解以及有对应的流程图整理,主要通过以下几个步骤来进行分析:1、在处理 BeanDefinition 时它是如何去标识 scope=refresh 过程,以及 spring-cloud-context 是如何加载它去新增 scope 对象的;2、介绍了核心类:RefreshScope、GenericScope 如何去提前加载需要动态刷新的 Bean ,RefreshEventListener、ContextRefresher原创 2023-02-26 19:01:19 · 4589 阅读 · 0 评论 -
从源码角度分析 Nacos 配置文件加载以及加载优先级
该篇文章从源码角度上分析了 Nacos 配置文件如何加载的过程以及常见的一些会出现在细节上忽略的问题,配置文件上加载的优先级:shared-configs、extension-configs、应用配置,最后对配置文件加载的入口以及配置规则解析的源码进行了分析,包括:动态刷新监听器的触发点->NacosPropertySourceRepository#NACOS_PROPERTY_SOURCE_REPOSITORY原创 2023-02-24 18:16:42 · 3515 阅读 · 1 评论 -
Nacos 配置中心实际运用场景以及配置优先级简要概述
该篇博文讲解在实际工作如何使用 Nacos 、配置动态刷新的运用,对 Spring Cloud 新老版本的依赖引入作了描述,从 2021.0.1.0 版本开始,移除了 spring-cloud-starter-bootstrap 依赖,最后,对配置的优先级作了区分,对不同环境配置、不同微服务如何共享配置做了详细的介绍,下篇文章让我们从源码的角度来看 Nacos 是如何加载配置的!原创 2023-02-24 17:39:57 · 5467 阅读 · 0 评论 -
Nacos 客户端/服务端同步集群数据源码分析(五)
在 1.x 版本中,责任节点每 5s 同步所有 Service 下 Instance 列表的摘要(md5)给非责任节点,非责任节点用对端传过来的服务 md5 对比本地服务的 md5,如果发送了改变,需要反查责任节点。在 2.x 版本中,对这个流程进行改造,责任节点会发送 Client 全量数据,非责任节点会定时监测同步过来的 Client 是否过期,减少 1.x 版本中非责任节点的反查。原创 2023-01-22 09:49:00 · 2337 阅读 · 0 评论 -
Nacos 客户端本地缓存及故障转移源码分析(四)
ServiceInfoHolder:顾名思义,服务信息的持有者;缓存 ServiceInfo判断 ServiceInfo 是否更新发起写入本地缓存发布变更事件除了这些核心功能以外,该类在实例化时,还做了本地缓存目录初始化、故障转移初始化等操作,下面来进行详细分析。原创 2023-01-21 11:58:31 · 3052 阅读 · 1 评论 -
Nacos 服务端健康检查及客户端服务订阅机制源码分析(三)
整体服务订阅的事件机制还是比较复杂的,因为用到了事件的形式,逻辑比较绕,并且其中还有守护线程、死循环、阻塞队列等;重点理解的是 NotifyCenter 对事件发布者、事件订阅者和事件之间关系的维护,而这一关系维护的入口就位于 NacosNamingService#init 方法当中,以下是核心流程:事件发布、事件处理流程图如下分析:ServiceInfoHolder 中通过 NotifyCenter 发布了 InstancesChangeEvent 事件。原创 2022-12-27 00:13:39 · 3348 阅读 · 0 评论 -
Nacos 介绍及搭建集群、相关组件
此篇博文,讲解了 Nacos 是什么以及为何使用 Nacos 的初衷,从零到一实战落地搭建 Nacos 集群,包含了依赖于其他的组件:JDK、MySQL、Nginx 等,随即演示了怎么去使用集群进行数据操作,最后,将该部分实战的源码整理到 `GitHub 以及网盘中`,希望能够帮助到你~原创 2022-08-11 13:37:12 · 8281 阅读 · 0 评论 -
Nacos 服务端注册、客户端服务发现源码分析(二)
客户端在注册服务时实际上是调用的 NamingService#registerInstance 方法来完成实例的注册,而且在最后知道 Nacos 2.0 以前的版本通过 Http 方式进行服务注册就是调用的接口:/nacos/v1/ns/intanceNacos 客户端的服务发现,其实就是封装参数、调用服务接口、获得返回实例列表,再给具体的订阅原创 2022-12-19 17:03:31 · 2713 阅读 · 0 评论 -
Nacos 服务注册概述及客户端注册实例源码分析(一)
Nacos 服务注册概述及客户端实例源码分析,基于客户端实例如何注册到 Nacos 服务端作了一个整体流程的分析和源码的剖解原创 2022-12-18 17:22:19 · 3121 阅读 · 4 评论