8.2. 集群配置
您可以在主动/被动或主动/主动集群配置中使用 MirrorMaker 2.0。
- 在主动/主动配置中,两个集群都处于活跃状态,并同时提供相同的数据,如果您需要在不同地理位置的本地都提供相同的数据,这个配置非常有用。
- 在主动/被动配置中,主动集群中的数据会在被动集群被复制,后者处于待机状态(例如在系统失败时进行数据恢复)。
预计生产者和消费者仅连接到活跃集群。
每个目标目的地都需要一个 MirrorMaker 2.0 集群。
8.2.1. 双向复制(主动/主动) 复制链接链接已复制到粘贴板!
MirrorMaker 2.0 架构支持 主动/主动集群配置中 双向复制。
每个集群使用 source 和 remote 主题的概念复制其他集群的数据。与每个集群中存储相同的主题,远程主题由 MirrorMaker 2.0 自动重命名来代表源集群。原始集群的名称前面是主题名称的前面。
图 8.2. 主题重命名
通过标记原始集群,主题不会重新复制到该集群。
在配置需要数据聚合的构架时,通过远程 主题复制的概念非常有用。消费者可以订阅同一集群中的源和远程主题,而无需单独聚合集群。
8.2.2. 单向复制(主动/被动) 复制链接链接已复制到粘贴板!
MirrorMaker 2.0 架构支持 主动/被动 集群配置中的单向复制。
您可以使用 主动/被动 集群配置进行备份或将数据迁移到另一个集群。在这种情况下,您可能不希望自动重命名远程主题。
您可以通过将 IdentityReplicationPolicy 添加到源连接器配置来覆盖自动重命名。应用此配置后,主题会保留其原始名称。
8.2.3. 主题配置同步 复制链接链接已复制到粘贴板!
主题配置在源和目标集群之间自动同步。通过同步配置属性,减少了重新平衡的需求。
8.2.4. 数据完整性 复制链接链接已复制到粘贴板!
MirrorMaker 2.0 监控源主题,并将任何配置更改传播到远程主题,检查和创建缺失的分区。只有 MirrorMaker 2.0 才能写入到远程主题。
8.2.5. 偏移跟踪 复制链接链接已复制到粘贴板!
MirrorMaker 2.0 使用内部主题来跟踪消费者组的偏移量。
-
offset-syncs主题从记录元数据映射复制主题分区的源和目标偏移。 -
checkpoints主题映射源和目标集群中每个消费者组中复制的主题分区的最后提交偏移量
MirrorCheckpointConnector emits 检查点 用于偏移跟踪。检查点 主题的偏移是通过配置预先确定的间隔跟踪。这两个主题都可让复制从故障转移上的正确偏移位置完全恢复。
默认情况下,offset-syncs 主题的位置是 源集群。您可以使用 offset-syncs.topic.location 连接器配置将其更改为 目标集群。您需要对包含主题的集群进行读/写访问。使用目标集群作为 偏移同步 主题的位置,允许您使用 MirrorMaker 2.0,即使您只对源集群具有读取访问权限。
8.2.6. 同步消费者组偏移 复制链接链接已复制到粘贴板!
__consumer_offsets 主题存储各个消费者组的提交偏移信息。偏移同步会定期将源集群的消费者组的使用者偏移转移到目标集群的使用者偏移量中。
偏移同步在 主动/被动配置 中特别有用。如果活跃集群停机,使用者应用程序可以切换到被动(被动)集群,并从最后传输的偏移位置获取。
要使用主题偏移同步,通过在检查点连接器配置中添加 sync.group.offsets.enabled 来启用同步,并将 属性设为 true。默认禁用同步。
在源连接器中使用 IdentityReplicationPolicy 时,还必须在检查点连接器配置中配置。这样可确保为正确的主题应用镜像使用者偏移量。
使用者偏移仅为目标集群中不活动的消费者组同步。如果消费者组在目标集群中,则无法执行同步,并返回 UNKNOWN_MEMBER_ID 错误。
如果启用,将定期从源集群同步偏移。您可以通过在检查点连接器配置中添加 sync.group.offsets.interval.seconds 和 emit.checkpoints.interval.seconds 来更改频率。属性指定同步消费者组偏移的频率,以及为偏移跟踪发送检查点的频率。两个属性的默认值都是 60 秒。您还可以使用 refresh.groups.interval.seconds 属性更改新消费者组的检查频率,该属性默认为每 10 分钟执行一次。
因为同步是基于时间的,所以消费者到被动集群的任何交换机都可能会导致消息重复。
8.2.7. 连接检查 复制链接链接已复制到粘贴板!
MirrorHeartbeatConnector 发出 heartbeats 来检查集群间的连接。
从源集群复制内部 心跳 主题。目标集群使用 heartbeat 主题来检查以下内容:
- 管理集群间连接的连接器正在运行
- 源集群可用