Message sent to Kafka is written to disk and replicated for fault-tolerance.
我不确定消息何时写入光盘,为什么需要复制(分区)以及它有何帮助?
另外Kafka据说吞吐量很高,不写入磁盘会影响性能吗?是否可以配置为仅将消息存储在内存中而不存储在磁盘中?
最佳答案
Jay Kreps(在 LinkedIn 时是 Kafka 的原始架构师之一)撰写的这篇博文解释了 Kafka 如何被独特地设计为一个提交日志,它可以“在三台廉价机器上每秒执行 200 万次写入”,并且与并非以这种方式设计的传统消息代理相比,其消息传递率要高得多。
Kafka 具有可配置的参数,用于控制页面缓存刷新到磁盘的频率。如果没有最终写入磁盘,就不可能运行 Kafka。 Kafka 还将消息缓存在内存中以提高性能,因此它可以通过从内存读取提供高吞吐量,同时仍然保证从持久性到磁盘和集群数据复制以实现容错不会丢失消息。
关于java - 磁盘持久性和复制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44680289/