跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
代码酷
搜索
搜索
中文(中国大陆)
外观
创建账号
登录
个人工具
创建账号
登录
未登录编辑者的页面
了解详情
贡献
讨论
编辑“︁
Apache Kafka
”︁
页面
讨论
大陆简体
阅读
编辑
编辑源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
编辑
编辑源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
您的更改会在有权核准的用户核准后向读者展示。
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
{{Infobox software | name = Apache Kafka | logo = | screenshot = | caption = | developer = [[Apache软件基金会]] | released = {{Start date and age|2011|01}} | latest_release_version = 3.7.0 | latest_release_date = {{Start date and age|2024|02|12}} | programming_language = [[Scala]]、[[Java]] | operating_system = 跨平台 | genre = [[消息队列]]、[[流处理]] | license = [[Apache许可证]] 2.0 | website = {{URL|https://kafka.apache.org}} }} '''Apache Kafka'''是一个开源的分布式[[事件流处理]]平台,最初由[[LinkedIn]]开发,后捐赠给[[Apache软件基金会]]。它被设计用于高吞吐量、低延迟的实时数据管道和流应用程序。 == 核心概念 == === 基本架构 === Kafka采用发布-订阅模型,主要包含以下组件: * '''生产者(Producer)''':发布消息到Kafka集群 * '''消费者(Consumer)''':订阅并处理消息 * '''代理(Broker)''':Kafka服务器节点 * '''主题(Topic)''':消息的分类类别 * '''分区(Partition)''':主题的物理分片 * '''Zookeeper''':集群协调服务(新版本已逐步移除) <mermaid> graph LR Producer -->|发布消息| Broker Broker -->|存储消息| Topic Topic --> Partition1 Topic --> Partition2 Consumer -->|订阅消息| Broker </mermaid> === 消息持久化 === Kafka将所有消息持久化到磁盘,并保留可配置的时间(默认7天)。这种设计提供了: * 消息重放能力 * 消费者灵活消费 * 高吞吐量(通过顺序I/O实现) == 主要特性 == * '''高吞吐量''':单机可支持每秒百万级消息 * '''持久性''':消息持久化存储 * '''分布式''':支持水平扩展 * '''容错性''':数据多副本存储 * '''实时性''':毫秒级延迟 == 与其他系统的比较 == {| class="wikitable" |+ 大数据消息系统比较 |- ! 特性 !! Kafka !! [[RabbitMQ]] !! [[ActiveMQ]] |- | 设计目标 || 高吞吐日志流 || 通用消息队列 || 通用消息队列 |- | 持久化 || 磁盘持久化 || 内存/磁盘 || 内存/磁盘 |- | 协议支持 || 自定义协议 || AMQP, STOMP等 || JMS, AMQP等 |- | 吞吐量 || 非常高 || 中等 || 中等 |} == 使用示例 == === 生产者示例 === <syntaxhighlight lang="java"> // 创建生产者配置 Properties props = new Properties(); props.put("bootstrap.servers", "localhost:9092"); props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer"); props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer"); // 创建生产者实例 Producer<String, String> producer = new KafkaProducer<>(props); // 发送消息 for(int i = 0; i < 100; i++) { producer.send(new ProducerRecord<>("my-topic", Integer.toString(i), Integer.toString(i))); } // 关闭生产者 producer.close(); </syntaxhighlight> === 消费者示例 === <syntaxhighlight lang="java"> // 创建消费者配置 Properties props = new Properties(); props.put("bootstrap.servers", "localhost:9092"); props.put("group.id", "test-group"); props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer"); props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer"); // 创建消费者实例 KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props); // 订阅主题 consumer.subscribe(Arrays.asList("my-topic")); // 消费消息 while (true) { ConsumerRecords<String, String> records = consumer.poll(Duration.ofMillis(100)); for (ConsumerRecord<String, String> record : records) { System.out.printf("offset = %d, key = %s, value = %s%n", record.offset(), record.key(), record.value()); } } </syntaxhighlight> == 生态系统集成 == Kafka可与多种大数据技术集成: * [[Apache Spark]]流处理 * [[Apache Flink]]流处理引擎 * [[Elasticsearch]]搜索引擎 * [[Apache Hadoop]]生态系统 * [[Apache Drill]](如引用上下文所示) == 应用场景 == * '''实时分析''':用户行为分析、点击流分析 * '''日志聚合''':集中收集服务日志 * '''事件溯源''':记录系统状态变化 * '''消息队列''':系统间解耦通信 * '''流处理''':实时数据处理管道 == 社区与支持 == Apache Kafka拥有活跃的开源社区,提供: * 详细官方文档 * 用户邮件列表 * JIRA问题追踪 * 定期版本发布 * 商业支持选项(通过Confluent等公司) == 参见 == * [[消息队列]] * [[流处理]] * [[Apache Spark]] * [[Apache Flink]] * [[Apache Pulsar]] == 参考资料 == {{Reflist}} [[Category:分布式计算]] [[Category:消息队列]] [[Category:流处理]] [[Category:Apache软件基金会项目]] [[Category:大数据技术]]
摘要:
请注意,所有对代码酷的贡献均被视为依照知识共享署名-非商业性使用-相同方式共享发表(详情请见
代码酷:著作权
)。如果您不希望您的文字作品被随意编辑和分发传播,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)
该页面使用的模板:
模板:Infobox
(
编辑
)
模板:Infobox software
(
编辑
)
模板:Infobox software/simple
(
编辑
)
模板:MONTHNAME
(
编辑
)
模板:MONTHNUMBER
(
编辑
)
模板:Main other
(
编辑
)
模板:Plainlist
(
编辑
)
模板:Plainlist/styles.css
(
编辑
)
模板:Reflist
(
编辑
)
模板:Reflist/styles.css
(
编辑
)
模板:Start date and age
(
编辑
)
模板:Template link expanded
(
编辑
)
模板:Template other
(
编辑
)
模板:Time ago
(
编辑
)
模板:Tlx
(
编辑
)
模板:Trim
(
编辑
)
模板:URL
(
编辑
)
模板:Wikidata
(
编辑
)
模板:Years or months ago
(
编辑
)
模板:Yesno
(
编辑
)
模块:Arguments
(
编辑
)
模块:Check for unknown parameters
(
编辑
)
模块:Date
(
编辑
)
模块:Infobox
(
编辑
)
模块:Infobox/styles.css
(
编辑
)
模块:InfoboxImage
(
编辑
)
模块:Template link general
(
编辑
)
模块:Time ago
(
编辑
)
模块:URL
(
编辑
)
模块:Wd
(
编辑
)