当前位置: 首页 > news >正文

Kafka入门

🐘 什么是 Kafka?

Apache Kafka 是一个分布式流处理平台,用于构建实时数据管道流处理应用。它最初由 LinkedIn 开发,后来贡献给 Apache 基金会,并成为最受欢迎的消息队列之一。


🧱 核心特性

特性说明
高吞吐量每秒处理上百万条消息,轻轻松松
可扩展性水平扩展,不怕用户猛增
持久化消息写入磁盘、可配置保留时间
容错性多副本机制,保证数据不丢
发布-订阅模式类似“订报纸”,生产者发消息,消费者订阅消费

🧩 Kafka 的核心组件

组件名描述
Producer(生产者)发送消息到 Kafka 的客户端
Consumer(消费者)从 Kafka 中读取消息
Broker(代理)Kafka 的服务节点,负责存储和转发消息
Topic(主题)消息的分类通道,相当于“邮箱的文件夹”
Partition(分区)每个主题可以有多个分区,实现并发处理
Zookeeper(协调者)Kafka 使用它来进行分布式协调(新版本可以不依赖)

📦 Kafka 工作流程简图

Producer ---> [Kafka Topic 分区1]---> [Kafka Topic 分区2]---> ...↓Broker 存储消息↓Consumer Group 读取消息

📚 Kafka 常见使用场景

  1. 日志收集系统:比如将应用日志汇总分析

  2. 订单系统:订单创建、库存扣减、发送通知等解耦处理

  3. 实时数据分析:搭配 Spark、Flink 实现实时流处理

  4. 消息队列替代品:比传统 MQ 更强大更高吞吐

  5. 用户行为跟踪:比如网站点击、页面停留等行为实时记录


✅ Kafka 的优缺点

优点:

  • 极高性能和可扩展性

  • 消息持久化,支持消息重放

  • 支持多消费者订阅和消费组机制

缺点:

  • 使用和维护门槛略高(分布式系统,配置多)

  • 对延迟不敏感场景更适合(不是实时极低延迟)

  • 老版本依赖 Zookeeper,部署稍复杂(新版本已支持 KRaft 模式)


🚀 快速感知:Kafka 和其他 MQ 的对比

特性/中间件KafkaRabbitMQRocketMQ
吞吐量极高中等
消息顺序保证分区内顺序保证通道内顺序支持顺序
持久性默认持久化可配置持久化默认持久化
适用场景实时大数据流、日志企业系统异步通信阿里系项目,性能要求高

✨ 总结一句话

Kafka 是企业级高吞吐的消息中间件,擅长处理海量数据的实时流。

http://www.dtcms.com/a/283175.html

相关文章:

  • 语音增强论文汇总
  • Go基本数据类型
  • 81、面向服务开发方法
  • Redisson实现分布式锁
  • Redisson实现限流器详解:从原理到实践
  • HTML 入门教程:从零开始学习网页开发基础
  • 前端知识:浏览器工作原理与开发者工具知识笔记
  • WIN10系统优化篇(一)
  • Leetcode 02 java
  • IDEA报错“资源找不到”?重启就好了!!?
  • 使用Dify构建HR智能助理,深度集成大模型应用,赋能HR招聘管理全流程,dify相关工作流全开源。
  • 城市蓝影.
  • 服务注册nacos和OpenFerign(用于封装跨服务之间的调用方法)
  • kubernetes学习笔记(一)
  • 数据结构 双向链表(2)--双向链表的实现
  • 黄仁勋链博会演讲实录:脱掉皮衣,穿上唐装,中文开场
  • 完善评论发布功能
  • PHP面向对象编程:类与对象的基础概念与实践
  • 从0到1搭建Lazada账号矩阵:自养号测评的精细化养号全攻略
  • Linux 定时器应用示例
  • 功能测试和回归测试
  • C# WPF后台设置控件样式失效的解决方法
  • 【Vue】tailwindcss + ant-design-vue + vue-cropper 图片裁剪功能(解决遇到的坑)
  • 从规模到效率:大模型三大定律与Chinchilla定律详解
  • 实现通讯录人员选择
  • IKE学习笔记
  • Java强化:多线程及线程池
  • 从电子管到CPU
  • 基于MATLAB的决策树DT的数据分类预测方法应用
  • Android CameraX使用