Redis 多数据中心双向同步 祝辰Redis 多数据中心双向同步 祝辰 • 携程框架架构部门 • 资深研发工程师 • 专注于 Redis 高可用系统的 研发工作 • 对分布式存储系统有所涉猎 讲师介绍 祝辰 1 开篇 2 3 4 5 目 录 CONTENTS 携程的Redis架构 分布式理论 双向/多向同步的问题 CRDT 19 世纪的通讯 “At 12:30 am on April 4th 棕色的区域需要 40 天以上 的时间 21 世纪的通讯 同样的一张地图 在今天, 仅仅需要毫秒级 别的时间, 一条消息可以 被全世界共享起来 互联网的规模也从单独 一个数据中心的部署方 式转变为多数据中心, 甚 至是跨区域的部署模式 多区域部署 Serverless 分布式存储 Redis 内存数 据库 支持多种 数据结构 支持主 从架构 缓存服务 分布式锁 消息队列 计数器 目前携程的 群, 支持海外站点和国内站点同时进行读写; 并解决因此可能出现的数据一致性问题. 需求的产生 DRC 的概念是在近年来, 云计算兴起, 多站点部署的场景下, 延伸出来对于数 据共享的一个需求. 多站点部署的架构, 对于单元化部署的 应用来讲, 跨数据中心的数据访问一直 是一个最大的痛点. 目前很多用户 • 抑或是采取了同一份写入到两个站 点的数据库 • 抑或是跨站点写入数据库同时同步 回来(例如0 码力 | 45 页 | 1.74 MB | 1 年前3
多租户Kubernetes VM Solutions for Multi-Tenant Applications0 码力 | 33 页 | 3.34 MB | 1 年前3
Zabbix 6.0 ManualZabbix 每天生成的事件数量。在最坏的情况下,假设 Zabbix 每秒生成一 个事件。 对 于 每 个 恢 复 的 事 件, 将 创 建 一 个 event_recovery 记 录。 通 常, 大 多 数 事 件 将 被 恢 复, 因 此 我 们 可 以 假 设 每 个 事 件 有 一 个 event_recovery 记录。这意味着每个事件额外 80 个字节。 (可选)事件可以具有标记,每个标记记录需要大约 zabbix-web-mysql 容器的 8080/TCP 向主机的 80/TCP port (HTTP) 暴露端口。 Docker Compose Zabbix 还提供了用于在 Docker 中定义和运行多容器 Zabbix 组件的 compose 文件。这些 compose 文件可以在 github.com: https://github.com/zabbix/zabbix-docker 上的 Zabbix ,图表等)的关联。 3 嵌套 概述 嵌套是一个模板包含一个或多个其他模板的一种方式。 由于在各种服务、应用程序等的各个模板上分离实体是有意义的,因此您最终可能会得到相当多的模板,所有这些模板都可能需要链接到 相当多的主机。为了简化图片,可以将一些模板链接到一个模板中。 嵌套的好处是您只需将一个模板(“嵌套”,父模板)链接到主机,主机将自动继承链接模板(“嵌套”,子模板)的所有实体。例如,如果0 码力 | 1741 页 | 22.78 MB | 1 年前3
Zabbix 5.0 Manual或 取 消 选 中 该 复 选 框 不 会 立 即 激 活/禁 用 压 缩。 由 于 压 缩 是 由 内 置 数 据 管 理 机 制 House- keeper 处 理 的, 因 此 更 改 最 多 将 在 2 倍 HousekeepingFrequency 时 间 后 生 效 (zab- bix_server.conf中 设 置) 禁 用 压 缩 后, 属 于 压 缩 周 期 的 新 块 应该使用以下命令进行服务安装: zabbix_agentd.exe --config--install 应指定配置文件的完整路径。 Zabbix agent 多实例作为服务安装的命令如下: zabbix_agentd.exe --config --install --multiple-agents 启动使用自定义配置文件的单实例 Zabbix agent 命令如下: zabbix_agentd.exe --config --start 启动多实例 Zabbix agent 中的一个实例命令如下: zabbix_agentd.exe --config --start 0 码力 | 2715 页 | 28.60 MB | 1 年前3
Python 标准库参考指南 3.7.13 实参指定排序函数用的参数,如传给list.sort() 的。 default 实参是当可迭代对象为空时返回的值。如果可迭代对象为空,并且没有给 default ,则会触 发ValueError。 如 果 有 多 个 最 大 元 素, 则 此 函 数 将 返 回 第 一 个 找 到 的。 这 和 其 他 稳 定 排 序 工 具 如 sorted(iterable, key=keyfunc, reverse=True)[0] 实参指定排序函数用的参数,如传给list.sort() 的。 default 实参是当可迭代对象为空时返回的值。如果可迭代对象为空,并且没有给 default ,则会触 发ValueError。 如 果 有 多 个 最 小 元 素, 则 此 函 数 将 返 回 第 一 个 找 到 的。 这 和 其 他 稳 定 排 序 工 具 如 sorted(iterable, key=keyfunc)[0] 和 heapq 'U',该字符已不再具有任何效果,并被视为已弃用。之前它会在文 本模式中启用universal newlines,这在 Python 3.0 中成为默认行为。请参阅newline 形参的文档了解更 多细节。 注解: Python 不依赖于底层操作系统的文本文件概念; 所有处理都由 Python 本身完成,因此与平台 无关。 buffering 是一个可选的整数,用于设置缓冲策略。传递 0 以切换缓冲关闭(仅允许在二进制模式0 码力 | 1846 页 | 9.09 MB | 9 月前3
Python 标准库参考指南 3.7.13 Python 一同发行的标准库。它 还描述了通常包含在 Python 发行版中的一些可选组件。 Python 标准库非常庞大,所提供的组件涉及范围十分广泛,正如以下内容目录所显示的。这个库包含了多 个内置模块 (以 C 编写),Python 程序员必须依靠它们来实现系统级功能,例如文件 I/O,此外还有大量以 Python 编写的模块,提供了日常编程中许多问题的标准解决方案。其中有些模块经过专门设计,通过将特定 $,通常匹配’foo2’,但在MULTILINE 模式下可以匹配到’foo1’;在 'foo\n' 中搜索 $ 会找到两个 (空的)匹配:一个在换行符之前,一个在字符串的末尾。 * 对它前面的正则式匹配 0 到任意次重复,尽量多的匹配字符串。ab* 会匹配 'a','ab',或者 'a' 后面 跟随任意个 'b'。 + 对它前面的正则式匹配 1 到任意次重复。ab+ 会匹配 'a' 后面跟随 1 个以上到任意个 'b',它不会匹配 'b',它不会匹配 'a'。 ? 对它前面的正则式匹配 0 到 1 次重复。ab? 会匹配 'a' 或者 'ab'。 *?, +?, ?? '*', '+',和 '?' 修饰符都是 贪婪的;它们在字符串进行尽可能多的匹配。有时候并不需要这 种行为。如果正则式 <.*> 希望找到 ' b',它将会匹配整个字符串,而不仅是 ''。在修 饰符之后添加 ? 将使样式以 非贪婪 ‘方式或者:dfn:‘最小方式进行匹配;尽量 0 码力 | 1961 页 | 9.14 MB | 9 月前3
Python 标准库参考指南 3.8.20 实参指定排序函数用的参数,如传给list.sort() 的。 default 实参是当可迭代对象为空时返回的值。如果可迭代对象为空,并且没有给 default ,则会触 发ValueError。 如 果 有 多 个 最 大 元 素, 则 此 函 数 将 返 回 第 一 个 找 到 的。 这 和 其 他 稳 定 排 序 工 具 如 sorted(iterable, key=keyfunc, reverse=True)[0] 且没有给 default ,则会触 发ValueError。 14 Chapter 2. 内置函数 The Python Library Reference, 发布 3.8.20 如 果 有 多 个 最 小 元 素, 则 此 函 数 将 返 回 第 一 个 找 到 的。 这 和 其 他 稳 定 排 序 工 具 如 sorted(iterable, key=keyfunc)[0] 和 heapq 'U',该字符已不再具有任何效果,并被视为已弃用。之前它会在文 本模式中启用universal newlines,这在 Python 3.0 中成为默认行为。请参阅newline 形参的文档了解更 多细节。 注解: Python 不依赖于底层操作系统的文本文件概念; 所有处理都由 Python 本身完成,因此与平台 无关。 buffering 是一个可选的整数,用于设置缓冲策略。传递 0 以切换缓冲关闭(仅允许在二进制模式下),0 码力 | 1927 页 | 9.69 MB | 9 月前3
Python 标准库参考指南 3.8.20 实参指定排序函数用的参数,如传给list.sort() 的。 default 实参是当可迭代对象为空时返回的值。如果可迭代对象为空,并且没有给 default ,则会触 发ValueError。 如 果 有 多 个 最 大 元 素, 则 此 函 数 将 返 回 第 一 个 找 到 的。 这 和 其 他 稳 定 排 序 工 具 如 sorted(iterable, key=keyfunc, reverse=True)[0] 且没有给 default ,则会触 发ValueError。 14 Chapter 2. 内置函数 The Python Library Reference, 发布 3.8.20 如 果 有 多 个 最 小 元 素, 则 此 函 数 将 返 回 第 一 个 找 到 的。 这 和 其 他 稳 定 排 序 工 具 如 sorted(iterable, key=keyfunc)[0] 和 heapq 'U',该字符已不再具有任何效果,并被视为已弃用。之前它会在文 本模式中启用universal newlines,这在 Python 3.0 中成为默认行为。请参阅newline 形参的文档了解更 多细节。 注解: Python 不依赖于底层操作系统的文本文件概念; 所有处理都由 Python 本身完成,因此与平台 无关。 buffering 是一个可选的整数,用于设置缓冲策略。传递 0 以切换缓冲关闭(仅允许在二进制模式下),0 码力 | 1927 页 | 9.69 MB | 9 月前3
Python 标准库参考指南 3.8.20 Python 一同发行的标准库。它 还描述了通常包含在 Python 发行版中的一些可选组件。 Python 标准库非常庞大,所提供的组件涉及范围十分广泛,正如以下内容目录所显示的。这个库包含了多 个内置模块 (以 C 编写),Python 程序员必须依靠它们来实现系统级功能,例如文件 I/O,此外还有大量以 Python 编写的模块,提供了日常编程中许多问题的标准解决方案。其中有些模块经过专门设计,通过将特定 $,通常匹配’foo2’,但在MULTILINE 模式下可以匹配到’foo1’;在 'foo\n' 中搜索 $ 会找到两个 (空的)匹配:一个在换行符之前,一个在字符串的末尾。 * 对它前面的正则式匹配 0 到任意次重复,尽量多的匹配字符串。ab* 会匹配 'a','ab',或者 'a' 后面 跟随任意个 'b'。 + 对它前面的正则式匹配 1 到任意次重复。ab+ 会匹配 'a' 后面跟随 1 个以上到任意个 'b',它不会匹配 'b',它不会匹配 'a'。 ? 对它前面的正则式匹配 0 到 1 次重复。ab? 会匹配 'a' 或者 'ab'。 *?, +?, ?? '*', '+',和 '?' 修饰符都是 贪婪的;它们在字符串进行尽可能多的匹配。有时候并不需要这 种行为。如果正则式 <.*> 希望找到 ' b',它将会匹配整个字符串,而不仅是 ''。在修 饰符之后添加 ? 将使样式以 非贪婪 ‘方式或者:dfn:‘最小方式进行匹配;尽量 0 码力 | 2052 页 | 9.74 MB | 9 月前3
Python 标准库参考指南 3.9.20 实参指定排序函数用的参数,如传给list.sort() 的。 default 实参是当可迭代对象为空时返回的值。如果可迭代对象为空,并且没有给 default ,则会触 发ValueError。 如 果 有 多 个 最 大 元 素, 则 此 函 数 将 返 回 第 一 个 找 到 的。 这 和 其 他 稳 定 排 序 工 具 如 sorted(iterable, key=keyfunc, reverse=True)[0] 实参指定排序函数用的参数,如传给list.sort() 的。 default 实参是当可迭代对象为空时返回的值。如果可迭代对象为空,并且没有给 default ,则会触 发ValueError。 如 果 有 多 个 最 小 元 素, 则 此 函 数 将 返 回 第 一 个 找 到 的。 这 和 其 他 稳 定 排 序 工 具 如 sorted(iterable, key=keyfunc)[0] 和 heapq 'U',该字符已不再具有任何效果,并被视为已弃用。之前它会在文 本模式中启用universal newlines,这在 Python 3.0 中成为默认行为。请参阅newline 形参的文档了解更 多细节。 注解: Python 不依赖于底层操作系统的文本文件概念; 所有处理都由 Python 本身完成,因此与平台 无关。 buffering 是一个可选的整数,用于设置缓冲策略。传入 0 来关闭缓冲(只允许在二进制模式下),传入0 码力 | 2015 页 | 10.12 MB | 9 月前3
共 75 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8













