这是我参与「第五届青训营 」伴学笔记创作活动的第 12 天
一、本堂课重点内容:
- 本堂课的知识要点有哪些?
-
消息队列的前世今生
-
消息队列-Kafka
-
消息队列-BMQ
-
消息队列-RocketMQ
-
最佳实践
二、详细知识点介绍:
- 本堂课介绍了哪些知识点?
消息队列是什么
“消息队列”是在消息的传输过程中保存消息的容器。
消息队列能做什么
- 解耦
- 削峰
- 异步
- 日志处理
消息队列的前世今生
消息队列-Kafka
Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。
相关基本概念:
- Producer:消息⽣产者,向 Kafka Broker 发消息的客户端。
- Consumer:消息消费者,从 Kafka Broker 取消息的客户端。
- Consumer Group:消费者组(CG),消费者组内每个消费者负责消费不同分区的数据,提⾼消费能⼒。
- Broker:⼀台 Kafka 机器就是⼀个 Broker。⼀个集群(kafka cluster)由多个 Broker 组成。⼀个 Broker 可以容纳多个 Topic。
- Controller:由zookeeper选举其中一个Broker产生。它的主要作用是在 Apache ZooKeeper 的帮助下管理和协调整个 Kafka 集群。
- Topic:可以理解为⼀个队列,Topic 将消息分类,⽣产者和消费者⾯向的是一个Topic。
- Partition:为了实现扩展性,提⾼并发能⼒,⼀个⾮常⼤的 Topic 可以分布到多个 Broker上,⼀个 Topic 可以分为多个 Partition,同⼀个topic在不同的分区的数据是不重复的,每个 Partition 是⼀个有序的队列,其表现形式就是⼀个⼀个的⽂件夹。
消息队列-BMQ
兼容Kafka协议,存放分离,云原生消息队列
消息队列-RocketMQ
RocketMQ作为一款纯java、分布式、队列模型的开源消息中间件,支持事务消息、顺序消息、批量消息、定时消息、消息回溯等。主要功能是异步解耦和流量削峰。
RocketMQ主要由 Producer、Broker、Consumer 三部分组成。
- Producer 负责生产消
- Consumer 负责消费消
- Broker 负责存储消息,在实际部署过程中对应一台服务器,每个 Broker 可以存储多个Topic的消息,每个Topic的消息也可以分片存储于不同的 Broker。
- Message Queue 用于存储消息的物理地址,每个Topic中的消息地址存储于多个 Message Queue 中
- ConsumerGroup 由多个Consumer 实例构成。
三、实践练习例子:
- 有什么实践举例帮助理解知识点?
四、课后个人总结:
- 本章有什么知识点不容易掌握?
- 什么地方容易与其他内容混淆?
五、引用参考:
- 我参考了哪些外部博客/笔记/文章?
- 文章中有什么地方是我参考引用了外部博客/笔记/文章的?