kafka消息队列有两种消费模式,分别是点对点模式和订阅/发布模式。具体比较可以参考Kafka基础–消息队列与消费模式。
1. 主题(Topic)与分区(Partition)
- Topic:消息主题,是消息的逻辑分类,具体分类的方式就是用Topic进行区分,不同类别的消息具有不同的Topic。
- 每条消息属于且仅属于一个Topic
- Producer发布数据时,必须指定将该消息发布到哪个Topic
- Consumer消费消息时,也必须指定消费哪个Topic的信息
- partition:主题内分区,是物理分类。每一个主题都对应一个「消息队列」,一个 Topic 对应多个 Partition。
partition的目的是:通过多分区实现负载均衡的效果,提高kafka访问吞吐率。
- 写入数据的规则
- kafka默认轮询规则
- producer指定partition key写入特定的partition
- producer自定义规则
2. 生产者(Producer)与消费者(Consumer)
生产者(也称为发布者)创建消息,而消费者(也称为订阅者)负责消费or读取消息。