【问题标题】:Kafka broker auto scalingKafka 代理自动扩展
【发布时间】:2019-04-15 22:58:26
【问题描述】:

我正在寻找一些关于 Kafka 代理根据负载自动扩展和缩减的建议。

假设我们有一个电子商务网站,我们正在捕获某些活动或事件,这些事件将发送到 Kafka。由于在高峰时段/日期间站点流量会更多,因此拥有具有固定数量代理的理想 kafka 集群始终不是一个好主意,因此我们希望在站点流量更多时增加代理数量并缩小它流量较少时的代理数量。

人们如何解决这类问题?我在这个主题中找不到任何资源。任何帮助将不胜感激。

【问题讨论】:

    标签: apache-kafka


    【解决方案1】:

    Kafka 并不是这样工作的。从集群中添加/删除代理是一个非常手动的过程,它会在集群上创建大量额外的负载/开销,因此您不希望集群自行自动扩展或缩减。它产生如此多额外开销的主要原因是添加或删除代理需要在集群中复制大量数据,在正常流量之上。基本上,来自已死代理的所有数据都需要复制到其他地方,以保持主题/分区的相同复制因子,或者如果它是新代理,则需要将数据从其他代理混入其中,以便整个集群的负载减少了。所有这些被复制的数据都会在集群上产生大量的 IO/CPU 负载,这可能足以导致严重的问题。

    处理这种情况的最佳方法是在高峰时段使用 2 倍甚至 3 倍的流量进行性能测试和优化,并相应地构建集群。这样,如果突然出现峰值,您将有足够的空间,并且您不必横向扩展/缩减。

    Kafka 的性能非常出色,即使对于每秒数百万条消息的流量也是如此,因此您可能会发现您的应用程序/系统所需的集群大小并不像您最初想象的那么大/昂贵。

    【讨论】:

    • 添加/删除代理不会导致现有数据被移动,除非您手动运行重新平衡器
    猜你喜欢
    • 2019-10-04
    • 2022-01-23
    • 1970-01-01
    • 2011-04-22
    • 2011-05-19
    • 2013-07-28
    • 2018-08-20
    • 2021-04-22
    • 2020-09-04
    相关资源
    最近更新 更多