Redis 多数据中心双向同步 祝辰Redis 多数据中心双向同步 祝辰 • 携程框架架构部门 • 资深研发工程师 • 专注于 Redis 高可用系统的 研发工作 • 对分布式存储系统有所涉猎 讲师介绍 祝辰 1 开篇 2 3 4 5 目 录 CONTENTS 携程的Redis架构 分布式理论 双向/多向同步的问题 CRDT 19 世纪的通讯 “At 12:30 am on April 4th 支持主 从架构 缓存服务 分布式锁 消息队列 计数器 目前携程的 Redis 部署架构 通过携程的 X-Pipe 项目, 来达到 Redis 跨站点和跨区域的数据同步问题 目前已经支持上海到美国和德国的 Redis 数据同步 • 到德国法兰克福站点, 平均延迟在 176ms 左右 • 到美西站点, 平均延迟在 160ms 左右 携程业务开发的需求, 对于 Redis 的数 据存储有着强依赖 据共享的一个需求. 多站点部署的架构, 对于单元化部署的 应用来讲, 跨数据中心的数据访问一直 是一个最大的痛点. 目前很多用户 • 抑或是采取了同一份写入到两个站 点的数据库 • 抑或是跨站点写入数据库同时同步 回来(例如 AWS 的AURORA) 这两种方式都没有从根本上解决问题, DRC 概念的出现, 让大家对分布式存储 又有了新的期待 Data Replication Center 目前携程的应用也在进行单元化的部署模0 码力 | 45 页 | 1.74 MB | 1 年前3
OpenShift Container Platform 4.8 Service Mesh的更改更快地生 效。 1.2.2.12.8. Kiali 更新 Kiali 1.36 包括以下功能和增强: Service Mesh 故障排除功能 control plane 和网关监控 代理同步状态 Envoy 配置视图 显示 Envoy 代理和应用程序日志处于交集的统一视图 支持联邦服务网格视图的命名空间和集群选择 新的验证、向导和分布式追踪增强 1.2.2.13. Red Hat 更新路径规范化配置 Istio 授权策略可能基于 HTTP 请求中的 URL 路径。路径规范化 (也称为 URI 规范化)、修改和标准化传 入请求的路径,以便能够以标准的方式处理规范化路径。在路径规范化后,同步不同路径可能是等同的。 Istio 在根据授权策略和路由请求前,支持请求路径中的以下规范化方案: 表 1.1. 规范化方案 选项 选项 描述 描述 示例 示例 备 备注 注 第 第 1 章 章 configuredMembers 中删除命名空间。相反,控制器会将命名空间添加到 SMMR.status.pendingMembers 中,以指示它们不是最新的。在协调过程中,因为每个命名空 间与 SMCP 同步,命名空间会自动从 SMMR.status.pendingMembers 中删除。 OSSM-1668 一个新的字段 spec.security.jwksResolverCA 已添加到版本 2.10 码力 | 344 页 | 3.04 MB | 1 年前3
Serverless Kubernetes - KubeCon面向Cloud Scale的架构设计 Etcd K8S API Server Viking 侦听 Pod, Service, Ingress等资源变化 ECI SLB DNS 双向同步 IaaS资源状态 K8S资源 CRUD K8S Client ECI Pod Viking agent Container Container Kernel0 码力 | 16 页 | 4.25 MB | 1 年前3
Python 标准库参考指南 3.7.13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 784 17.7 queue --- 一个同步的队列类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 786 17.8 _thread --- 如果字符串中只有空白字符且至少有一个字符则返回 True ,否则返回 False 。 空白字符是指在 Unicode 字符数据库 (参见unicodedata) 中主要类别为 Zs (”Separator, space”) 或所属 双向类为 WS, B 或 S 的字符。 str.istitle() 如果字符串中至少有一个字符且为标题字符串则返回 True ,例如大写字符之后只能带非大写字符而 小写字符必须有大写字符打头。否则返回 法应当返回一个假值以表明方法已成功完 成并且不希望屏蔽被引发的异常。这允许上下文管理代码方便地检测__exit__() 方法是否确实已失 败。 Python 定义了一些上下文管理器来支持简易的线程同步、文件或其他对象的快速关闭,以及更方便地操作活 动的十进制算术上下文。除了实现上下文管理协议以外,不同类型不会被特殊处理。请参阅contextlib 模 块查看相关的示例。 4.11. 上下文管理器类型0 码力 | 1961 页 | 9.14 MB | 9 月前3
Python 标准库参考指南 3.8.20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 837 17.8 queue --- 一个同步的队列类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 838 17.9 contextvars 如果字符串中只有空白字符且至少有一个字符则返回 True ,否则返回 False 。 空白字符是指在 Unicode 字符数据库 (参见unicodedata) 中主要类别为 Zs (”Separator, space”) 或所属 双向类为 WS, B 或 S 的字符。 str.istitle() 如果字符串中至少有一个字符且为标题字符串则返回 True ,例如大写字符之后只能带非大写字符而 小写字符必须有大写字符打头。否则返回 法应当返回一个假值以表明方法已成功完 成并且不希望屏蔽被引发的异常。这允许上下文管理代码方便地检测__exit__() 方法是否确实已失 败。 Python 定义了一些上下文管理器来支持简易的线程同步、文件或其他对象的快速关闭,以及更方便地操作活 动的十进制算术上下文。除了实现上下文管理协议以外,不同类型不会被特殊处理。请参阅contextlib 模 块查看相关的示例。 Python 的generator0 码力 | 2052 页 | 9.74 MB | 9 月前3
Python 标准库参考指南 3.7.13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 740 17.7 queue --- 一个同步的队列类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 742 17.8 _thread --- 底层多线程 如果字符串中只有空白字符且至少有一个字符则返回 True ,否则返回 False 。 空白字符是指在 Unicode 字符数据库 (参见unicodedata) 中主要类别为 Zs (”Separator, space”) 或 所属双向类为 WS, B 或 S 的字符。 str.istitle() 如果字符串中至少有一个字符且为标题字符串则返回 True ,例如大写字符之后只能带非大写字符 而小写字符必须有大写字符打头。否则返回 法应当返回一个假值以表明方法已成 功完成并且不希望屏蔽被引发的异常。这允许上下文管理代码方便地检测__exit__() 方法是否 确实已失败。 Python 定义了一些上下文管理器来支持简易的线程同步、文件或其他对象的快速关闭,以及更方便 地操作活动的十进制算术上下文。除了实现上下文管理协议以外,不同类型不会被特殊处理。请参 阅contextlib 模块查看相关的示例。 Python 的generator0 码力 | 1846 页 | 9.09 MB | 9 月前3
Python 标准库参考指南 3.8.20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 780 17.8 queue --- 一个同步的队列类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 782 17.9 contextvars --- 如果字符串中只有空白字符且至少有一个字符则返回 True ,否则返回 False 。 空白字符是指在 Unicode 字符数据库 (参见unicodedata) 中主要类别为 Zs (”Separator, space”) 或 所属双向类为 WS, B 或 S 的字符。 str.istitle() 如果字符串中至少有一个字符且为标题字符串则返回 True ,例如大写字符之后只能带非大写字符 而小写字符必须有大写字符打头。否则返回 法应当返回一个假值以表明方法已成 功完成并且不希望屏蔽被引发的异常。这允许上下文管理代码方便地检测__exit__() 方法是否 确实已失败。 Python 定义了一些上下文管理器来支持简易的线程同步、文件或其他对象的快速关闭,以及更方便 地操作活动的十进制算术上下文。除了实现上下文管理协议以外,不同类型不会被特殊处理。请参 阅contextlib 模块查看相关的示例。 Python 的generator0 码力 | 1927 页 | 9.69 MB | 9 月前3
Python 标准库参考指南 3.8.20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 780 17.8 queue --- 一个同步的队列类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 782 17.9 contextvars --- 如果字符串中只有空白字符且至少有一个字符则返回 True ,否则返回 False 。 空白字符是指在 Unicode 字符数据库 (参见unicodedata) 中主要类别为 Zs (”Separator, space”) 或 所属双向类为 WS, B 或 S 的字符。 str.istitle() 如果字符串中至少有一个字符且为标题字符串则返回 True ,例如大写字符之后只能带非大写字符 而小写字符必须有大写字符打头。否则返回 法应当返回一个假值以表明方法已成 功完成并且不希望屏蔽被引发的异常。这允许上下文管理代码方便地检测__exit__() 方法是否 确实已失败。 Python 定义了一些上下文管理器来支持简易的线程同步、文件或其他对象的快速关闭,以及更方便 地操作活动的十进制算术上下文。除了实现上下文管理协议以外,不同类型不会被特殊处理。请参 阅contextlib 模块查看相关的示例。 Python 的generator0 码力 | 1927 页 | 9.69 MB | 9 月前3
Python 标准库参考指南 3.6.15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767 17.7 queue —一个同步的队列类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769 17.8 dummy_threading 法应当返回一个假值以表明方法已成功完 成并且不希望屏蔽被引发的异常。这允许上下文管理代码方便地检测__exit__() 方法是否确实已失 败。 Python 定义了一些上下文管理器来支持简易的线程同步、文件或其他对象的快速关闭,以及更方便地操作活 动的十进制算术上下文。除了实现上下文管理协议以外,不同类型不会被特殊处理。请参阅contextlib 模 块查看相关的示例。 Python 的generator 构建小型应用的 简易版本控制方案。 6.3.3 Differ 对象 请注意Differ 所生成的增量并不保证是 最小差异。相反,最小差异往往是违反直觉的,因为它们会同步任 何可能的地方,有时甚至意外产生相距 100 页的匹配。将同步点限制为连续匹配保留了一些局部性概念,这 偶尔会带来产生更长差异的代价。 Differ 类具有这样的构造器: class difflib.Differ(linejunk=None0 码力 | 1886 页 | 8.95 MB | 9 月前3
Python 标准库参考指南 3.6.15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767 17.7 queue —一个同步的队列类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769 17.8 dummy_threading 法应当返回一个假值以表明方法已成功完 成并且不希望屏蔽被引发的异常。这允许上下文管理代码方便地检测__exit__() 方法是否确实已失 败。 Python 定义了一些上下文管理器来支持简易的线程同步、文件或其他对象的快速关闭,以及更方便地操作活 动的十进制算术上下文。除了实现上下文管理协议以外,不同类型不会被特殊处理。请参阅contextlib 模 块查看相关的示例。 Python 的generator 构建小型应用的 简易版本控制方案。 6.3.3 Differ 对象 请注意Differ 所生成的增量并不保证是 最小差异。相反,最小差异往往是违反直觉的,因为它们会同步任 何可能的地方,有时甚至意外产生相距 100 页的匹配。将同步点限制为连续匹配保留了一些局部性概念,这 偶尔会带来产生更长差异的代价。 Differ 类具有这样的构造器: class difflib.Differ(linejunk=None0 码力 | 1886 页 | 8.95 MB | 9 月前3
共 32 条
- 1
- 2
- 3
- 4













