先看总图。
软件城市事件广播总线
Producer A Producer B Producer C
订单服务 支付服务 用户服务
\ | /
\ | /
+-------------------+---------------------+
|
v
+-----------------------+
| Kafka Cluster |
| (城市广播中枢集群) |
+-----------------------+
| | |
v v v
Broker1 Broker2 Broker3
(机房1) (机房2) (机房3)
Topic: order-events
+-------------------------------------------+
| Partition 0 | Partition 1 | Partition 2 |
| 0 1 2 3 | 0 1 2 | 0 1 2 3 4 |
+-------------------------------------------+
^ offset序号 ^ offset序号 ^ offset序号
Consumer Group A Consumer Group B
库存部门 数据分析部门
C1 C2 C3现在把核心名词一口气落地:
producer:事件发送者。城市里的业务部门,把“某件事发生了”广播出去。broker:Kafka 服务器节点。城市里的广播机房/中继站。topic:事件频道。比如order-events、payment-events。partition:频道下的并行分轨/车道。用来扩容吞吐。offset:某条分区里的顺序编号。像这条轨道上的里程桩。consumer:事件消费者。收听广播并处理事件的系统。consumer group:同一类消费者组成的工作组,用来分摊同一个 topic 的分区。
一句话总结:
topic 是频道,partition 是并行车道,offset 是车道内编号,consumer group 是一整个处理班组。