这是我参与「第五届青训营 」伴学笔记创作活动的第 13 天
课程重点内容
介绍
课程从消息队列的前世今生引入消息队列的概念,并介绍了消息队列的发展历程,并结合消息队列的几种常见的实现方式,如Kalfka、BMQ、RocketMQ等消息队列深入阐述了其使用场景、架构及高级特性。
什么是消息队列?
消息队列(MQ),是一种在分布式系统中传递消息的解决方案,指保存消息的一个容器,本质是个队列。它将消息存储在一个队列中,以便多个应用程序可以使用它,需要支持高吞吐、高并发、并且高可用。
消息队列的原理:
- 发送方将消息放入消息队列中,这个过程称为“发布”(publish)。
- 接收方从消息队列中获取消息,这个过程称为“订阅”(subscribe)。
- 发送方和接收方之间通过消息队列传递消息,这个过程称为“传递”(deliver)。
- 接收方处理完消息后,将消息从队列中删除。
常见消息队列
消息队列-Kafka
kafka使用场景,业务日志、用户行为数据、Metrics数据
基本概念,Producer、Cluster、Consumer、Topic、Partition
数据迁移、Offset、Partition选主
一条消息从生产到消费是如何处理的,Producer端逻辑、Broker端逻辑、Consumer端逻辑
消息队列-BMQ
BMQ架构
BMQ各模块是如何工作的,Broker、Proxy、HDFS、MetaStorage
BMQ多机房容灾
消息队列-RocketMQ
RocketMQ使用场景
RocketMQ和Kafka对比
RocketMQ架构介绍,Producer、Broker、Nameserver、Consumer
一条消息从生产到消费是如何处理的,Producer端逻辑、Broker端逻辑、Consumer端逻辑
总结
消息队列的优点包括:
- 解耦和异步:生产者和消费者之间的解耦使得系统更加灵活、可扩展和可维护。同时,异步消息的处理可以提高系统的响应性能和吞吐量。
- 可靠性和持久化:消息队列通常采用消息的持久化机制,保证消息的不丢失和可靠传递。
- 流量削峰和负载均衡:消息队列可以作为一个缓冲区,可以处理系统高峰期的消息流量,以及负载均衡的问题。
缺点:
- 使得业务代码更加复杂,对开发难度有所增加