【无标题】Kafka 系列博文(一):从零认识 Kafka,到底解决了什么问题?

大家好,这是我新开的 Kafka 系列博文第一篇。后面会按顺序写:核心概念、安装部署、Java 客户端使用、生产者/消费者原理、分区与副本、高可用、事务、性能调优等,日常工作遇到问题与解决思路。适合想系统学 Kafka 的后端同学。

一、Kafka 是什么?

简单一句话:

Kafka 是一个分布式、高吞吐、可持久化的消息队列/事件流平台。

主要能干三件事:

  1. 发消息、收消息(消息队列 MQ)

  2. 把数据按顺序存下来(事件日志)

  3. 做流式处理(实时计算、ETL)

它不是单纯的 MQ,更像一个分布式事件总线,大数据、微服务、日志收集都离不开它。

二、为什么要用 Kafka?核心解决什么问题?

日常开发里,你大概率会遇到这些痛点:

  • 系统耦合严重:A 调 B,B 挂了 A 也崩

  • 流量突刺:秒杀/日志暴增,直接打挂下游

  • 数据要多端消费:日志既要存 ES,又要进 Hive,还要实时监控

  • 数据不能丢,还要顺序不乱

Kafka 就是为这些场景设计的,核心优势:

  1. 超高吞吐:单机几十万 TPS 很常见

  2. 可持久化:消息落磁盘,不怕丢

  3. 分布式可扩展:加机器就能扛更大流量

  4. 多副本高可用:一台挂了不影响服务

  5. 支持重复消费:适合大数据回放、重跑任务

三、Kafka 核心概念(必须记住)

刚入门先把这几个词搞懂,后面学起来不费劲:

  1. Broker

Kafka 服务器节点,一个 Kafka 集群由多个 Broker 组成。

  1. Topic(主题)

消息的分类,比如: user-login-log 、 order-create 。

生产者往 Topic 发,消费者从 Topic 读。

  1. Partition(分区)

Topic 下面的分片,是 Kafka 高吞吐和扩展的关键。

  • 一个 Topic 可以有多个分区

  • 分区内消息严格有序

  • 不同分区之间不保证全局有序

  1. Producer(生产者)

发消息的一方。

  1. Consumer(消费者)

读消息的一方。

  1. Consumer Group(消费者组)

一组消费者共同消费一个 Topic,同一个组内,一条消息只会被一个消费者消费。

用来实现:负载均衡 + 消息不重复处理。

  1. Offset(偏移量)

分区内每条消息的序号,消费者靠它记录读到哪了。

四、Kafka 典型使用场景

  1. 异步解耦

下单成功→发消息→积分、通知、统计慢慢处理,不阻塞主流程。

  1. 削峰填谷

秒杀/大促流量先进 Kafka,下游按能力慢慢消费,防止被打垮。

  1. 日志收集

Nginx/应用日志→Kafka→ES/ClickHouse/Hive,统一日志链路。

  1. 数据同步与 CDC

MySQL binlog→Kafka→数仓/缓存更新,实现准实时数据同步。

  1. 实时流计算

Kafka + Flink/Faust 做实时推荐、实时大屏、风控计算。

五、本篇小结

这一篇我们先搭个框架:

  • Kafka 是分布式高吞吐事件流平台

  • 解决:解耦、削峰、多端消费、高可用、不丢数据

  • 核心概念:Broker、Topic、Partition、Producer、Consumer、Consumer Group、Offset

下一篇我们就进入实操:

  • Kafka 单机/集群安装与配置

  • 命令行生产消费

  • 快速验证是否可用

相关推荐
EXI-小洲4 小时前
Java 操作 Word:字符串替换、图片插入、动态生成表格与API接口下载
java·开发语言·spring boot·word
2601_961901706 小时前
SpringBoot使用Nacos进行application.yml配置管理
java·spring boot·spring
何以解忧,唯有..6 小时前
LangChain 工具调用(Tool Calling)实战指南
java·前端·langchain
QQ_21696290967 小时前
【源码编号:project79475】SpringBoot校内二手交易平台:商品发布、分类检索、留言交流、订单管理全流程实战
java·spring boot·后端
前端 贾公子8 小时前
第09章:上下文与记忆 (2)
java·服务器·前端
2601_962203518 小时前
Java进阶07集合(续)
java·开发语言
郑州光合科技余经理8 小时前
本地生活服务系统:模块边界与结算字段怎么拆
java·开发语言·前端·后端·系统架构·uni-app·php
roman_日积跬步-终至千里9 小时前
【数据治理(6)】DataOps 不是调度工具,而是让数据产品长期可信的运行机制
java·服务器·网络
落魄大学生之流水线上谋生计9 小时前
LangGraph 基本用法指南
java·windows·python·langchain
2601_962128419 小时前
SpringBoot篇(缓存层)
java·spring boot·缓存