Kafka简介

目的

Kafka是为了实时大量数据的中间件。它的设计是为了满足以下场景:

  1. 高吞吐量,支持海量事件,比如:日志的聚合
  2. 支持大量数据的积压,以达到离线数据的定时处理
  3. 分布式,容错,分区
  4. 低延迟消息的处理(传统消息)

架构

Kafka的设计与传统消息系统相比更类似数据库的log.

持久化

Kafka主要依赖文件系统来保存数据和缓存消息。在一般人的印象中,文件系统的读写是比较慢的。但是,文件的顺序读写的速度媲美网络速度。其主要原因是:在现代的操作系统,都提供了预读和延迟写功能,在某些情况下顺序读比内存中随机访问的速度都快(见下图)。


访问速度

kafka运行在JVM上, 如果我们有5M的数据,加载到内存中,可能有10M甚至更多;其次,随着堆数据的增加,JAVA的垃圾回收速度也越来越慢。

效率

Producer

Consumer

消息发送

复制

Log Compaction

Quotas

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 原文:InfoQ 作者 郭俊 简介 Kafka是一种分布式的,基于发布/订阅的消息系统。使用Scala编写...
    小小少年Boy阅读 2,252评论 1 30
  • 4. 设计思想 4.1 动机 我们设计的 Kafka 能够作为一个统一的平台来处理大公司可能拥有的所有实时数据馈送...
    疯狂的橙阅读 1,135评论 1 4
  • Apache kafka是一个分布式流平台。这到底是什么意思? 我们认为流平台具有三个关键功能: 它允许发布和订阅...
    狼牙战士阅读 722评论 0 0
  • Design 1. Motivation 我们设计Kafka用来作为统一的平台来处理大公司可能拥有的所有实时数据源...
    BlackManba_24阅读 1,639评论 0 8
  • 听说人真的是有三生三世的轮回,我希望我们现在的缘分是第一世。下辈子,允许你做花心大少,风流倜傥,最后与我相濡以沫、...
    汪汪的爱阅读 219评论 0 0

友情链接更多精彩内容