搜资料时打出kafaka,搜索框下面全是对不上的结果。这是个常见的手滑拼写,正确写法是Kafka,Apache旗下的分布式消息队列。先把这层意思捋清楚,再谈它具体干什么。

Kafka是干什么的

它主要解决系统之间收发消息的问题。日志采集、订单事件、用户行为埋点,先丢给Kafka存一存,下游的消费程序各自按自己的节奏取走处理。生产者、消费者、主题Topic、分区Partition是几个核心概念,理解这四个词就能看懂大半入门文档。一个主题可以切成多个分区散在多台机器上,这就是它吞吐量高的底气。

它出名的就是吞吐量:普通服务器单机每秒能处理几十万条消息,消息还落盘持久化,消费失败可以重读。大数据体系里Flink、Spark这类流处理框架经常拿它当数据入口。版本号挑偶数结尾的稳定分支比较稳,升级前先看官方兼容说明。

想上手先准备什么

  • Java运行环境,Kafka服务端依赖JVM,装好JDK再说。
  • 安装包去Apache官方站点下载二进制包,解压即用,别点第三方下载站。
  • 本机跑通最小配置,老版本要先启动ZooKeeper,新版本内置了KRaft模式可以免掉这一步。

初学者最容易混淆的是它和RabbitMQ的定位差异:RabbitMQ偏重业务消息的灵活路由,Kafka偏重大流量数据的顺序存储和回放。举个具体例子,秒杀系统里下单请求先进队列削峰,支付回调异步处理,这类场景都是消息队列的用武之地;消息量不大、路由规则复杂时,多数情况选RabbitMQ更省心。

下次再打成kafaka也不用纠结,搜索引擎会帮你纠正;但写代码和文档时记得用Kafka这个拼写,不然同事review时一眼就能看出问题。