【发布时间】:2017-06-22 10:32:38
【问题描述】:
发送到 Kafka 的消息被写入磁盘并被复制 容错性。
我不确定消息何时写入磁盘,为什么需要复制(分区)以及它有什么帮助?
据说Kafka的吞吐量很高,不写入磁盘会影响性能吗?是否可以将消息仅在内存中而不在磁盘中进行配置?
【问题讨论】:
标签: java apache-kafka
发送到 Kafka 的消息被写入磁盘并被复制 容错性。
我不确定消息何时写入磁盘,为什么需要复制(分区)以及它有什么帮助?
据说Kafka的吞吐量很高,不写入磁盘会影响性能吗?是否可以将消息仅在内存中而不在磁盘中进行配置?
【问题讨论】:
标签: java apache-kafka
Jay Kreps 的这篇博文(他在 LinkedIn 时是 Kafka 的原始架构师之一)解释了 Kafka 如何被设计为独特的提交日志,它可以“在三台廉价机器上每秒执行 200 万次写入”,并且与未以这种方式设计的传统消息代理相比,产生更高的消息传递速率。
Kafka 具有可配置的参数,用于控制页面缓存刷新到磁盘的频率。如果不最终写入磁盘,就无法运行 Kafka。 Kafka 还将消息缓存在内存中以提高性能,因此它可以在从内存读取时提供高吞吐量,同时仍然保证不会丢失从持久性到磁盘的消息以及用于容错的数据集群复制。
【讨论】: