gpt4 book ai didi

apache-kafka - Apache Kafka 灾难恢复计划

转载 作者:行者123 更新时间:2023-12-05 05:12:32 25 4
gpt4 key购买 nike

我们有 10 个应用程序服务器和 3 个 kafka 集群来支持应用程序消息传递请求。最近我们遇到了一种情况,由于网络问题,kafka 集群宕机了,整个应用程序宕机了几个小时,因为所有数据都丢失了。当我在寻找 kafka 灾难恢复计划时,发现我们应该有 -

  1. 故障转移到同一数据中心的另一个集群
  2. 故障转移到附近数据中心的另一个集群
  3. 故障转移到另一个区域数据中心的另一个集群

由于我们在拥有另一个数据中心方面存在一些限制,因此我们正在考虑采用一种方法-

  1. 所有应用服务器将数据写入文件
  2. Filebeat读取文件并推送到kafka

如果 kafka 端出现问题,数据将在文件中可用并且可以恢复。所以,我的问题是,这种做法好吗?此架构中有任何重大问题吗?还有其他建议吗?

最佳答案

Were your kafka brokers running on separate rack server?

出于维护目的,机架服务器可能会离线几分钟。 https://kafka.apache.org/documentation/#basic_ops_racks

It is not recommended to distribute kafka-cluster on different data centers. You may start to get network related problems when you do so.

https://kafka.apache.org/documentation/#datacenters

What if entire data center is not available?

如果数据服务提供商未交付 SLA,则起诉他们。编写生产者假设经纪人可能不可用。您还可以查看 unclean leader选举。

替代策略可以是:一旦您的生产者注意到 kafka 代理没有响应。将数据放入 elasticsearch/其他数据库。这样您就可以有所依靠。

如果您正确设计了 kafka 环境,那么同步副本的最小数量和 ack=all 应该可以保证在少数代理宕机的情况下数据存在于机器上。按照设计,如果同步副本数 > 最小同步副本数;经纪人不会接受来自生产者的消息。

此外,如果数据是 mirrored across different clusters在不同的数据中心,这也会让您更有信心。

关于apache-kafka - Apache Kafka 灾难恢复计划,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54465471/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com