文章目录
- 前言
- kafka 常用知识点
- 1. kafka 概念
- 2. 消息共享和广播
- 3. 分区和副本数量奇偶数
前言
如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。
而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!!
kafka 常用知识点
1. kafka 概念
Kafka 是一个 分布式、高吞吐、可持久化的消息队列系统.。
- 生产者(Producer):写信的人,负责“投递消息”。
- 消费者(Consumer):收信的人,负责“接收消息”。
- 主题(Topic):信箱,按主题投放和接收信。
- Broker(代理):Kafka 服务器,就是邮局,负责存储和投递。
- 分区(Partition):每个信箱的子格子,信按顺序放入格子中。
- 消费组(Consumer Group):一群消费者在“轮流收信”。
2. 消息共享和广播
Kafka 的消息共享(负载)和广播(全量)消费行为,是通过自定义的消费组 group.id来决定的。
示例:
不同的 group.id(广播模式):
@KafkaListener(topics = "log-topic", groupId = "group-A") // A
@KafkaListener(topics = "log-topic", groupId = "group-B") // B
相同的 group.id(集群分摊模式)
@KafkaListener(topics = "log-topic", groupId = "group-A") // A1
@KafkaListener(topics = "log-topic", groupId = "group-A") // A2
3. 分区和副本数量奇偶数
属性 | 是否建议奇数 | 说明 |
---|---|---|
分区数 | ❌ 无要求 | 根据并发需求、消费者数量设定即可 |
副本数 | ✅ 建议奇数 | 多数副本机制保证高可用(如 3 副本) |
4、Kafka 主题管理相关命令示例(基于 kafka-topics.sh)
创建主题,3个分区,副本数2
kafka-topics.sh --create --topic my_topic --partitions 3 --replication-factor 2 --bootstrap-server localhost:9092
查看所有主题
kafka-topics.sh --list --bootstrap-server localhost:9092
查看某个主题详细信息
kafka-topics.sh --describe --topic my_topic --bootstrap-server localhost:9092
删除主题(需要broker配置允许删除)
kafka-topics.sh --delete --topic my_topic --bootstrap-server localhost:9092