【无标题】Kafka 系列博文(一):从零认识 Kafka,到底解决了什么问题?
大家好这是我新开的 Kafka 系列博文第一篇。后面会按顺序写核心概念、安装部署、Java 客户端使用、生产者/消费者原理、分区与副本、高可用、事务、性能调优等日常工作遇到问题与解决思路。适合想系统学 Kafka 的后端同学。一、Kafka 是什么简单一句话Kafka 是一个分布式、高吞吐、可持久化的消息队列/事件流平台。主要能干三件事1. 发消息、收消息消息队列 MQ2. 把数据按顺序存下来事件日志3. 做流式处理实时计算、ETL它不是单纯的 MQ更像一个分布式事件总线大数据、微服务、日志收集都离不开它。二、为什么要用 Kafka核心解决什么问题日常开发里你大概率会遇到这些痛点- 系统耦合严重A 调 BB 挂了 A 也崩- 流量突刺秒杀/日志暴增直接打挂下游- 数据要多端消费日志既要存 ES又要进 Hive还要实时监控- 数据不能丢还要顺序不乱Kafka 就是为这些场景设计的核心优势1. 超高吞吐单机几十万 TPS 很常见2. 可持久化消息落磁盘不怕丢3. 分布式可扩展加机器就能扛更大流量4. 多副本高可用一台挂了不影响服务5. 支持重复消费适合大数据回放、重跑任务三、Kafka 核心概念必须记住刚入门先把这几个词搞懂后面学起来不费劲1. BrokerKafka 服务器节点一个 Kafka 集群由多个 Broker 组成。2. Topic主题消息的分类比如 user-login-log 、 order-create 。生产者往 Topic 发消费者从 Topic 读。3. Partition分区Topic 下面的分片是 Kafka 高吞吐和扩展的关键。- 一个 Topic 可以有多个分区- 分区内消息严格有序- 不同分区之间不保证全局有序4. Producer生产者发消息的一方。5. Consumer消费者读消息的一方。6. Consumer Group消费者组一组消费者共同消费一个 Topic同一个组内一条消息只会被一个消费者消费。用来实现负载均衡 消息不重复处理。7. Offset偏移量分区内每条消息的序号消费者靠它记录读到哪了。四、Kafka 典型使用场景1. 异步解耦下单成功→发消息→积分、通知、统计慢慢处理不阻塞主流程。2. 削峰填谷秒杀/大促流量先进 Kafka下游按能力慢慢消费防止被打垮。3. 日志收集Nginx/应用日志→Kafka→ES/ClickHouse/Hive统一日志链路。4. 数据同步与 CDCMySQL binlog→Kafka→数仓/缓存更新实现准实时数据同步。5. 实时流计算Kafka Flink/Faust 做实时推荐、实时大屏、风控计算。五、本篇小结这一篇我们先搭个框架- Kafka 是分布式高吞吐事件流平台- 解决解耦、削峰、多端消费、高可用、不丢数据- 核心概念Broker、Topic、Partition、Producer、Consumer、Consumer Group、Offset下一篇我们就进入实操- Kafka 单机/集群安装与配置- 命令行生产消费- 快速验证是否可用