Kafka(Apache Kafka)是一个高吞吐量、分布式、可扩展、持久化的消息队列系统,主要用于实时数据流处理。它的设计目标是处理高并发、大规模的数据流,并能保证数据的顺序和容错。
🔧 Kafka 一般用于干什么?
✅ 1. 异步解耦
场景:系统 A 产生数据,系统 B 消费处理数据,不希望两者强耦合。
示例:订单系统生成订单后,将订单消息写入 Kafka,由库存系统、物流系统异步消费。
✅ 2. 日志收集与聚合
场景:从多个服务中收集日志或指标数据,统一汇总到 Kafka,再送到后端处理系统。
示例:将 Nginx、应用日志推送到 Kafka,再由 ELK(Elasticsearch, Logstash, Kibana)链路消费展示。
✅ 3. 流式数据处理 / 实时分析
场景:实时处理用户行为、传感器数据、金融交易等。
示例:用户在网站上的点击行为通过 Kafka 实时发送给大数据处理系统(如 Spark、Flink)进行分析和建模。
✅ 4. 事件驱动架构(EDA)
场景:微服务之间通过事件触发行为,而非同步调用。
示例:用户注册后发送注册事件,多个服务(发欢迎邮件、发放优惠券、记录用户画像)分别订阅并独立处理。
✅ 5. 数据管道 / 数据集成
场景:作为数据采集层,把数据从数据库、消息队列、应用系统中抽取后推送到大数据平台。
工具:Kafka + Kafka Connect 可以集成 MySQL、PostgreSQL、Elasticsearch、HDFS 等。
✅ 6. 缓存预热 / 分发通知
场景:通过 Kafka 通知多个下游系统执行操作,如更新缓存、刷新页面。
示例:管理员在后台更改配置,通过 Kafka 通知所有应用节点更新缓存。
🔄 Kafka 工作原理(简单说)
Producer:生产者,发送消息到 Kafka。
Broker:Kafka 服务器,接收并保存消息。
Consumer:消费者,从 Kafka 拉取消息进行处理。
Topic:主题,逻辑上的消息分类单位。
Partition:每个 Topic 可以分成多个分区,提升并发吞吐量。
💡 Kafka 的优势
🧠 小结一句话:
Kafka 是一个“高性能的消息中间件”,适合构建高并发、可扩展的“实时数据管道”或“事件驱动系统”。