java - kafka vs 编年史队列 vs 破坏者

标签 java apache-kafka queue messaging

任何人都可以在日志记录方面比较 kafka、编年史队列和破坏者之间的底层设计和性能?似乎 kafka 拥有大多数用户,但不要避免 GC。

最佳答案

我认为您可能对 Kafka 在日志管道中的使用方式感到困惑——通常它用于将日志从单个进程(本地磁盘)“传送”到 Elasticsearch 或 Splunk 等日志数据库,并且性能将达到 100K 的数量级单个机器的消息/秒,例如见 https://www.confluent.io/blog/kafka-fastest-messaging-system/ .您可能使用 Kafka 的原因是为了“保护”您的数据库免受突发事件的影响,例如https://logz.io/blog/deploying-kafka-with-elk/ .
Chronicle Queue 和 Disrupter 将用于简单地将日志写入本地磁盘,并且可以达到 10M 行/秒的数量级,例如见 https://grobmeier.solutions/log4j-2-performance-close-to-insane-20072013.html#.Ue02Z2RATzc .
您可能会进一步想知道,如果您只能发送 100K/s,那么将 10M 行/s 写入磁盘有什么意义。
原因是你可能只在发生不好的事情时(或者你正在调试)写入 10M 行/s 并且只写了很短的时间,所以如果你从磁盘读取到 Kafka 那么你的“阅读器”会落后但一旦爆发结束,最终可以 catch 。

关于java - kafka vs 编年史队列 vs 破坏者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48394568/

相关文章:

c++ - std::deque 和多线程访问

java - File Writer 覆盖之前写入的 Java

java - 我应该采取什么方法来创建全局应用程序以进行不同系统的审计跟踪?

apache-kafka - 如何修改kafka连接器?

java - 使用 spring 管理 Kafka 主题

c++ - 如果存在仅推送线程和仅弹出线程,C++ std::queue 是否安全?

c - 如何停止在 pthread_join 上停滞的线程?

java.lang.UnsupportedOperationException : clientBuilder. 在 JDK 9+ 上不支持 sslSocketFactory(SSLSocketFactory) 在我的 Eclipse 中使用 Java 8 时

java - 我如何更改此设置以用 html 页面替换 404 页面错误?

java - Spring @KafkaListener 和并发