【问题标题】:Kafka minimal (production) setupKafka 最小(生产)设置
【发布时间】:2017-09-30 01:36:46
【问题描述】:

我们计划在我们的产品中使用 Apache Kafka,因为它似乎可以很好地处理水平扩展和减震 - 而我们的云环境需要这些功能。

但我们还计划将我们的产品部署到优先考虑 RAM 消耗的环境。然而,这些环境不需要大吞吐量。假设 1MB/s,更大的部署为 5MB/s。消息会相当小,每条 1kB。

这些部署不需要高可用性,也不需要任何完美的性能。我们只需要它是稳定的,24 小时保留(我们将在合理的磁盘上有足够的空间)。

是否可以在这些条件下使用 1GB RAM 运行 Kafka? (甚至更少)。如果没有,最小的设置是什么?

【问题讨论】:

  • This 在为您的用例计算最佳配置时可能会有所帮助。其中一个关键点是:代理为他们复制的每个分区分配一个大小为replica.fetch.max.bytes 的缓冲区。如果replica.fetch.max.bytes 设置为 1 MiB,并且您有 1000 个分区,则需要大约 1 GiB 的 RAM。确保分区数乘以最大消息的大小不超过可用内存。
  • 有了一个 Kafka,我就只有一个经纪人。因此每个主题的分区数将为 1。如果我们有 100 个主题,则需要 100MB 来维护主题。 Aand 我也不知道,如果这甚至适用 - 与 1 个节点一样,复制没有多大意义。但我想即使是这样,通过这种有限的设置,一些所需的最小开销也会发挥作用。
  • 这是有道理的。话虽这么说,看来 1GB 的 RAM 对你有用。

标签: apache-kafka


【解决方案1】:

以防万一有人也对这个问题感兴趣。我们测试了 Xmx=1GB 的单节点 Kafka,摄取 twitter 流 API(每秒约 50 条消息,每条 5-10kB)。

我们还尝试停止 kafka 消费者一段时间,以便在重新启动时有很多消息。我们已经在 Kafka 的这一侧每秒收到 2500 条消息。

使用的机器:2 台来自 AWS 的 t2.medium - 一台用于摄取和代理,一台用于消费者。

【讨论】:

  • 最低要求是多少?你并没有真正认真地回答你自己的问题——我对这个结果真的很感兴趣
  • 如果您将测试结果包含在内,您的答案会更有帮助。
  • 我们没有在较小的机器上进行测试,因为在我们的案例中这是实际最低限度。再往下走将触及“运行”的定义......因为较小的内存意味着mmaps的可用块要小得多......所以它会启动,但无法处理太多消息,或者性能不稳定。但我们没有深入研究,因为这种测试对我们的事业来说太耗时了。但是如果有人有数字,我也很感兴趣:-)
猜你喜欢
  • 2019-05-14
  • 2021-08-17
  • 1970-01-01
  • 1970-01-01
  • 2019-04-22
  • 2023-03-31
  • 2019-05-11
  • 1970-01-01
  • 2019-11-30
相关资源
最近更新 更多