SRM常见用例和架构

2020-02-11 16:10:55 浏览数 (1)

Streams Replication Manager(SRM)是一种企业级复制解决方案,可实现容错、可扩展且健壮的跨集群Kafka主题复制。SRM提供了动态更改配置的功能,并使Topic属性在高性能的集群之间保持同步。SRM还提供了自定义扩展,可促进安装、管理和监视,从而使SRM成为针对任务关键型工作负载而构建的完整复制解决方案。本文主要讨论SRM的主要用例和用例的实现架构。

主要用例

了解SRM的主要用例。

Apache Kafka已成为企业数据管道的重要组成部分,并用于跟踪点击流事件数据、收集日志、收集指标并成为基于微服务的体系结构中的企业数据总线。Kafka支持内部复制以支持集群中的数据可用性。但是,随着基于Kafka的应用程序变得至关重要,企业要求数据可用性和持久性保证跨越整个集群和站点故障。

对于以下用例,跨集群和站点的数据复制是关键:

灾难恢复

跨集群复制的常见企业用例是在存在集群或数据中心范围的中断的情况下保证业务连续性。

汇总分析

聚合可能来自多个数据中心的多个流传输管道中的数据,以运行批处理分析作业,从而提供整个企业的整体视图。

分析后的数据部署

这与聚合用例相反,在聚合用例中,一个集群(例如聚合集群)中由分析应用程序生成的数据可能会广播到多个集群中,可能跨数据中心传播,以供最终用户使用。

隔离

由于性能或安全性原因,需要在不同环境之间复制数据以隔离访问。在许多部署中,摄取集群与消耗集群是隔离的。

地理位置接近

在要求低延迟的地理分布的访问模式中,复制用于将数据移近访问位置。

云迁移

随着越来越多的企业拥有内部部署和云服务,可以使用Kafka复制将数据迁移到公共云或私有云,再迁移回来。

法律与合规

与隔离用例非常相似,策略驱动的复制用于限制集群中可访问的数据以满足法律和法规遵从性要求。

高可用的Kafka架构架构

Kafka的高可用性部署必须能够在单个集群完全中断的情况下幸免于难,同时继续处理事件而不会丢失数据。使用SRM,您可以实施高可用性的Apache Kafka部署,该部署遵循活动/备用或活动/活动模型。

主备架构

在活动/备用方案中,您将设置两个Kafka集群并配置SRM以在两个集群之间双向复制主题。VIP或负载平衡器指导您的生产者将消息提取到正在从中读取消费者组的活动集群中。

图1.主用 /备用架构标准操作

如果发生灾难,VIP或负载平衡器会将生产者引导到备用集群。您可以轻松地迁移您的消费者组,以开始从备用集群中读取数据,或者如果最终的消费者延迟对于您的用例而言是可接受的,则只需等到还原主集群即可。

当主集群关闭时,您的生产者仍然可以提取。恢复主集群后,SRM会自动处理两个集群的同步,从而使故障回复变得无缝。

图2.主用 /备用架构集群故障

当现有的具有已建立策略的灾难恢复站点已经可用时,实施主动/备用架构是合理的选择,并且您的目标包括在灾难期间不丢失接收功能,并在灾难恢复站点中进行备份。

主动/主动架构

在主动/主动方案中,可以将生产者负载平衡到主集群或辅助集群。SRM配置为在两个集群之间双向复制主题。之所以使该架构成为主动/主动架构,是因为您现在拥有让消费者同时从两个集群中读取的事实,基本上就像跨集群的消费者群体一样。万一发生灾难,VIP或负载均衡器会将生产者定向到辅助集群,并且辅助集群消费者组仍然可以处理消息。当主集群关闭时,您的生产者仍然可以接收并且您的消费者仍然可以处理消息。这将导致停机时间为零,并在发生灾难时一旦主集群恢复联机,自动进行故障转移。

图1.主动/主动架构

跨数据中心复制

SRM的跨数据中心复制体系结构示例。

某些应用程序不仅需要在一个数据中心或一个可用性区域内具有本地高可用性,而且还必须在整个数据中心内都具有高可用性。您可以使用SRM在不同数据中心的Kafka集群之间设置复制,从而使消息可用于每个数据中心的消费者。

如果主数据中心发生故障,负载均衡器会将您的生产者引导到本地数据中心或最近的数据中心。SRM配置为在所有数据中心之间复制主题。如果您使用两个以上的数据中心,则将SRM配置为创建“复制圈”,以确保单个数据中心故障(例如,下例中的us-north)不会停止其余集群之间的复制。

图1.跨数据中心复制架构

集群迁移架构

本地到云迁移和Kafka版本升级

用于SRM的本地到云和Kafka版本升级示例架构。

如果您有要迁移到云的本地Apache Kafka集群,则不仅必须迁移消费者和生产者,还必须将主题及其消息迁移到新的基于云的集群。

通过SRM设置复制后,只需要将消费者指向新的代理,即可开始处理来自云集群的消息。这种方法可确保将本地Kafka集群中保留的历史数据迁移到云集群,从而使您可以直接从云中重放消息,而不必返回到本地集群。

图1.本地集群迁移。SRM复制消息时,生产者和消费者正在使用本地集群。

将集群,生产者和消费者迁移到云后,就可以使用SRM改变复制方向,并将本地集群用作DR集群。

生产者和消费者已迁移到云集群,并且本地集群用于灾难恢复。

图2.集群迁移到云

如果必须将Kafka集群升级到较新版本,并且无法就地升级,则可以使用相同的迁移方法来配置新集群,在迁移生产者和消费者之前,可以使用SRM复制所有现有的主题和消息。与新集群进行交互。

汇总分析

SRM的聚合分析架构示例。

SRM可用于聚合可能来自多个数据中心的多个流传输管道中的数据,以运行批处理分析作业,从而提供整个企业的整体视图。

图1.分析汇总

来源:https://docs.cloudera.com/csp/2.0.1/srm-overview/topics/srm-main-use-cases.html

0 人点赞