当前位置: 首页 > 知识库问答 >
问题:

Kafka 和 ZookePeer 高可用性配置

武向文
2023-03-14

我想在我的生态系统中建立一个高可用性的kafka-zookeper。我有2个数据中心,每个数据中心有3台物理服务器。

服务器1-第一个Kafka经纪人

服务器2-第二个Kafka代理

服务器3-第三个Kafka Broker

所以一个具有 3 个代理的 Kafka 集群

Zookepeer集成-3个物理服务器中的3个zookeeper实例

配置与DC1相似

现在我的问题是-

  1. 通过执行上述设置,我们确保容错和完全 HA
  2. 首选是主动-主动
  3. 设置还是主动-被动设置,为什么?
  4. 如何在数据中心之间异步镜像数据?

共有1个答案

钮晟
2023-03-14

通过进行上述设置,我们是否确保了容错和完整的HA?

当然,但仅限于每个数据中心。

在AWS(以及我猜的其他云)中,您还将拥有可用区(AZ),这些可用区在地理位置上靠近数据中心,但彼此之间仍然足够隔离,因此与一个区域的断开连接不会影响分布在多个区域中的应用程序。为了获得真正的高可用性,最佳实践是跨可用区划线集群

此外,5个动物园管理员将是首选,因为你可以失去2台机器,然后就没事了。

是更喜欢主动-主动设置还是主动-被动设置,为什么?

如果您主动将 Kafka 数据镜像到辅助集群,那么它并不是真正的“被动”,IMO

我知道,如果不实际编辑客户端配置以使用这组“备份”引导服务器,就无法将Kafka客户端“无缝”迁移到“故障转移集群”。此外,如果数据被发送到一个集群,但另一个集群在一段时间内不可用,然后又返回,那么您需要您的消费者应用程序来协调主题数据中的这些差异。

如何跨数据中心异步镜像数据?

内置在Kafka中的是Mirror Maker。存在其他工具,例如ConFluent Replicator,它添加了更多的HA功能 <罢工> Mirror Maker(和类似的Kafka镜像工具)目前没有 。Mirror Maker2弥补了这些差异

Confluent最近更新了他们的白皮书

配置多个Apache Kafka集群的实用指南,以便在灾难发生时,您有一个故障转移、故障回复和最终成功恢复的计划

您可以在此处下载

 类似资料:
  • 我在Java8和Tomcat8上实现了高可用性的CAS5,用haproxy作为负载均衡器,redis作为票证注册中心。对于票证注册表,请遵循此处给出的详细信息。关于部署,CAS部署在两个tomcats上,即T1和T2。 如果我没有关闭登录的实例,那么就没有问题,可以注销,票证被成功销毁。 我试过两种方法。 使用tomcat会话复制。已将添加到CAS中,并在中添加未注释的. 没有会话复制。

  • 我有一个kafka connect插件,部署在kafka集群中(在独立模式下,仅用于测试,目的是分布式完成)。这个Kafka连接插件使用curator连接到集群的zookeper,并从中提取一些信息,以决定如何处理这些消息。 代码如下: 在treeCache启动时超时,配置根路径存在于本地zookeeper中(已确认在zookeeper外壳中执行ls,对于我尝试使用的zkConnection字符串

  • 本文向大家介绍kafka高可用原理?相关面试题,主要包含被问及kafka高可用原理?时的应答技巧和注意事项,需要的朋友参考一下 broker启动会尝试向zookeeper创建临时节点:/controller,第一个broker选举成功成为集群的controller,其余节点都会在/controller注册watcher监控controller状态;当controller挂掉,所有broker感知到

  • 我正在构建作用于多个流的Apache Spark应用程序。 我确实阅读了文档中的性能调优部分:http://spark.apache.org/docs/latest/streaming-programming-guide.html#performan-tuning 我没有得到的是: 1)流媒体接收器是位于多个工作节点上,还是位于驱动程序机器上? 2)如果接收数据的节点之一失败(断电/重新启动)会发

  • 问题 在编写Appium脚本过程中,某个元素的resource_id或class可能在多个文件被使用, 当界面发生变化的时候,脚本将变得难以维护 解决办法 使用configparser提高Appium脚本的复用性、可配置性 将element全部写到一个配置文件中,比如config.ini或config.cfg 比如config.ini配置文件如下: ;登录 [login] user = com.

  • 目前,我正在开发一个分布式测试执行和报告系统。我计划将Redis PUB/SUB用作消息队列和消息分发系统。 我是Redis的新手,所以我试着阅读尽可能多的文档,并尝试着使用它。最重要的主题之一是高可用性。正如我所说,我不是专家,但我知道可能的选择——使用Sentinel、复制、集群等。 我不清楚的是Pub/Sub功能和HA选项是如何相互关联的。使用Redis构建可靠消息传递系统的最佳实践是什么?