Nacos架构&原理
事件机制:实现异步化事件通知,SDK 数据变化异步通知等逻辑,是 Nacos 高性能的关键部分。 日志模块:管理日志分类,日志级别,日志可移植性(尤其避免冲突),日志格式,异常码+帮 助文档。 回调机制:SDK 通知数据,通过统⼀的模式回调用户处理。接口和数据结构需要具备可扩展性。 寻址模式:解决 Server IP 直连,域名访问,Nameserver 寻址、广播等多种寻址模式,需要可 扩展。 推送通道:解决 也提高了维护的成本。 那么如何能够做到服务不重启就可以修改配置?所有就产生了四个基础诉求: 需要支持动态修改配置 需要动态变更有多实时 变更快了之后如何管控控制变更风险,如灰度、回滚等 敏感配置如何做安全配置 Nacos 架构 < 22 概念介绍 配置(Configuration) 在系统开发过程中通常会将⼀些需要变更的参数、变量等从代码中分离出来独立管理,以独立的配 配置的标签表,在发布配置的时候如果指定了标签,那么会把标签和配置 的关联信息存储在该表中。 his_config_info 配置的历史信息表,在配置的发布、更新、删除等操作都会记录⼀条数据,可 以做多版本管理和快速回滚。 Nacos 架构 < 28 Nacos 内核设计 Nacos ⼀致性协议 为什么 Nacos 需要⼀致性协议 Nacos 在开源支持就定下了⼀个目标,尽可能的减少用户部署以及运维成本,做到用户只需要⼀个0 码力 | 326 页 | 12.83 MB | 9 月前3Python 标准库参考指南 3.12
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 ii 6.7.5 启动钩子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 6.7.6 Completion 开启和关闭事件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1752 29.2.4 注册回调函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1753 29.3 sysconfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1831 29.15 site --- 站点专属的配置钩子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1831 29.15.1 sitecustomize0 码力 | 2253 页 | 11.81 MB | 9 月前3Python 标准库参考指南 3.12
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 ii 6.7.5 启动钩子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 6.7.6 Completion 开启和关闭事件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1752 29.2.4 注册回调函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1753 29.3 sysconfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1831 29.15 site --- 站点专属的配置钩子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1831 29.15.1 sitecustomize0 码力 | 2253 页 | 11.81 MB | 9 月前3Python 标准库参考指南 3.13
历史列表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 6.7.5 启动钩子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 6.7.6 Completion 开启和关闭事件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1781 29.2.4 注册回调函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1782 29.3 sysconfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1860 29.15 site --- 站点专属的配置钩子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1860 29.15.1 sitecustomize0 码力 | 2246 页 | 11.74 MB | 9 月前3Python 标准库参考指南 3.13
历史列表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 6.7.5 启动钩子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 6.7.6 Completion 开启和关闭事件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1777 29.2.4 注册回调函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1778 29.3 sysconfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1856 29.15 site --- 站点专属的配置钩子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1856 29.15.1 sitecustomize0 码力 | 2242 页 | 11.73 MB | 9 月前3Python 标准库参考指南 3.8.20
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1718 29.14 site ——指定域的配置钩子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1733 30 自定义 Python 解释器 1737 type(value).__format__(value, format_spec) , 所 以 实 例 字 典 中 的 __format__() 方 法 将 不 会 调 用。 如 果 方 法 搜 索 回 退 到object 类但 format_spec 不为空,或者如果 format_spec 或返回值不是字符串,则会触发TypeError 异常。 在 3.4 版更改: 当 format_spec 的__mro__ 属性列出了getattr() 和super() 所共同使用的方法解析搜索顺序。该属 性是动态的,可以在任何继承层级结构发生更新的时候被改变。 如 果 省 略 第 二 个 参 数, 则 返 回 的 超 类 对 象 是 未 绑 定 的。 如 果 第 二 个 参 数 为 一 个 对 象, 则 isinstance(obj, type) 必须为真值。如果第二个参数为一个类型,则 issubclass(type20 码力 | 2052 页 | 9.74 MB | 9 月前3Python 标准库参考指南 3.10.15
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 6.7.5 启动钩子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 6.7.6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1792 29.14 site ——指定域的配置钩子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1793 29.14.1 Readline 配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1819 31.5.5 importlib.machinery ——导入器和路径钩子函数。 . . . . . . . . . . . . . . . . 1820 31.5.6 importlib.util ——导入器的工具程序代码 . . . . . . . . . . .0 码力 | 2207 页 | 10.45 MB | 9 月前3Python 标准库参考指南 3.9.20
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 6.7.5 启动钩子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 6.7.6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1739 29.14 site ——指定域的配置钩子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1740 29.14.1 Readline 配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1764 31.5.5 importlib.machinery ——导入器和路径钩子函数。 . . . . . . . . . . . . . . . . 1766 31.5.6 importlib.util ——导入器的工具程序代码 . . . . . . . . . . .0 码力 | 2146 页 | 10.17 MB | 9 月前3Python 标准库参考指南 3.8.20
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1607 29.14 site ——指定域的配置钩子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1621 30 自定义 Python 解释器 1625 实际上是一种可变序列类型,详情请参阅列表 和序列类型 --- list, tuple, range。 locals() 更新并返回表示当前本地符号表的字典。在函数代码块但不是类代码块中调用locals() 时将返 回自由变量。请注意在模块层级上,locals() 和globals() 是同一个字典。 注解: 不要更改此字典的内容;更改不会影响解释器使用的局部变量或自由变量的值。 map(function, iterable default 实参是当可迭代对象为空时返回的值。如果可迭代对象为空,并且没有给 default ,则会触 发ValueError。 如 果 有 多 个 最 大 元 素, 则 此 函 数 将 返 回 第 一 个 找 到 的。 这 和 其 他 稳 定 排 序 工 具 如 sorted(iterable, key=keyfunc, reverse=True)[0] 和 heapq.nlargest(10 码力 | 1927 页 | 9.69 MB | 9 月前3Python 标准库参考指南 3.8.20
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1607 29.14 site ——指定域的配置钩子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1621 30 自定义 Python 解释器 1625 实际上是一种可变序列类型,详情请参阅列表 和序列类型 --- list, tuple, range。 locals() 更新并返回表示当前本地符号表的字典。在函数代码块但不是类代码块中调用locals() 时将返 回自由变量。请注意在模块层级上,locals() 和globals() 是同一个字典。 注解: 不要更改此字典的内容;更改不会影响解释器使用的局部变量或自由变量的值。 map(function, iterable default 实参是当可迭代对象为空时返回的值。如果可迭代对象为空,并且没有给 default ,则会触 发ValueError。 如 果 有 多 个 最 大 元 素, 则 此 函 数 将 返 回 第 一 个 找 到 的。 这 和 其 他 稳 定 排 序 工 具 如 sorted(iterable, key=keyfunc, reverse=True)[0] 和 heapq.nlargest(10 码力 | 1927 页 | 9.69 MB | 9 月前3
共 92 条
- 1
- 2
- 3
- 4
- 5
- 6
- 10