【发布时间】: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