Nacos15# Nacos配置中心核心原理提要
瓜农老梁
共 661字,需浏览 2分钟
· 2021-08-24
引言
通过对Nacos配置中心源码阅读,将其核心原理归纳提炼。包含:客户端逻辑和服务端逻辑。
配置中心客户端逻辑
1.客户端流程概览
客户端整体流程可以进一步简化为:
客户端通过长轮询的方式比较配置内容md5变更
长轮询通过从阻塞队列不断获取元素判断是否立即执行
阻塞队列无元素等待5秒执行
2.Listener注册逻辑
客户端Listener注册逻辑可以进一步简化为:
客户端缓存了CacheData 阻塞队列中添加了元素new Object()
3.配置变更检测逻辑
客户端长轮询逻辑,可以进一步简化为:
客户端收到服务端推送的变更事件后发起MD5校验 客户端主动向服务端发起MD5校验
4.阻塞队列添加时机
1.服务端变更发布流程
服务端变更发布流程可以进一步简化为:
将变更内容写入数据库
向本节点连接的Client发送变更通知
向集群中其他节点发送变更通知
2.向Client发送变更通知
向Client发送变更通知进一步简化为:
每个节点只负责直连到本节点的Client发送通知 通知通过缓存的gRPC连接向Client发送
3.向其他节点发送变更通知
如何检测到配置内容的变更?无非以下两种方式,上文是具体细节。
1.客户端通过长轮询向服务端查询
2.服务端向客户端发送变更通知
评论
每天骑的共享单车是什么通信原理,有人了解过吗?
转自:网络我们经常骑的共享单车到底是什么通信原理,有人了解过吗?现在就带大家了解下。一、智能车锁共享单车最核心的硬件是智能车锁,主要用于实现控制和定位功能。车锁内集成了嵌入式芯片(通信模块),GPS模块和物联网SIM卡。智能锁制造商通过在锁内集成带有独立号码的SIM卡,通过2G、3G、4G网络,与云
菜鸟学Python
1
算法工程师的核心竞争力是什么?
点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达链接:https://www.zhihu.com/question/527696166编辑:深度学习与计算机视觉声明:仅做学术分享,侵删作者:赵俊博 Jakehttps://www.zhihu.com/question/52769
小白学视觉
10
面试官:谈谈前端路由的实现原理【hash&history】
哈喽,大家好我是考拉🐨。今天我们来聊一聊前端路由。当谈到前端路由时,指的是在前端应用中管理页面导航和URL的机制。前端路由使得单页应用(Single-Page Application,SPA)能够在用户与应用交互时动态地加载不同的视图,而无需每次都重新加载整个页面。在前端开发中,常用的前端路由库有很
程序员成长指北
10
Neo欢迎两位核心开发者加入,在区块链技术前沿领域持续探索
亲爱的Neo社区:我们很荣幸地宣布,两位区块链资深人士加入Neo核心开发团队:Anna Shaleva(Neo SPCC软件工程师)和vang1ong7ang(Lazynode研究员)。两位开发者是Neo的长期贡献者,并在区块链编程方面表现出了精湛的技术。核心开发者有权管理和更新Neo核心代码库,并
Neo智能经济
0
LangChain:安装与环境配置
使用以下命令安装 LangChain:pip install langchain或者:conda install langchain -c conda-forge环境设定使用LangChain通常需要与一个或多个模型提供程序、数据存储、 A
Python之王
0
Linux 配置和管理网络接口的基本命令
更多Python学习内容:ipengtao.com在Linux系统中,网络接口的配置和管理是系统管理员日常工作的一部分。了解如何有效地使用命令行工具进行网络接口配置是至关重要的。本文将详细介绍一些基本的Linux网络接口管理命令,提供详实的示例代码,帮助管理员更全面地了解和掌握这些工具。ifconf
良许Linux
0
网络工程案例:某学校机房项目交换机的配置
一、学校项目配置案例某校计算机系承办市中考电脑阅卷任务,市教育局要求学校提供四百台电脑供改卷教师使用,同时需要4台配置性能较高的服务器以供四百台客户端电脑访问。该校计算机系四百台电脑分布在7间机房中,共由4个IP网段组成。一、要求:为了安全起见,要求处在4个网段的电脑相互之间不能访问,但所有的电脑均
数据中心运维管理
10
你必须知道的Linux系统安全配置
一:共享账号检查配置名称:用户账号分配检查,避免共享账号存在配置要求:1、系统需按照实际用户分配账号; 2、避免不同用户间共享账号,避免用户账号和服务器间通信使用的账号共享。操作指南:参考配置操作:cat /etc/passwd查看当前所有用户的情况;检查方法:命令cat /etc
开源Linux
1143