消息队列原理与实战|青训营笔记

78 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 13 天

课程重点内容

介绍

课程从消息队列的前世今生引入消息队列的概念,并介绍了消息队列的发展历程,并结合消息队列的几种常见的实现方式,如Kalfka、BMQ、RocketMQ等消息队列深入阐述了其使用场景、架构及高级特性。

什么是消息队列?

消息队列(MQ),是一种在分布式系统中传递消息的解决方案,指保存消息的一个容器,本质是个队列。它将消息存储在一个队列中,以便多个应用程序可以使用它,需要支持高吞吐、高并发、并且高可用。

消息队列的原理

  1. 发送方将消息放入消息队列中,这个过程称为“发布”(publish)。
  2. 接收方从消息队列中获取消息,这个过程称为“订阅”(subscribe)。
  3. 发送方和接收方之间通过消息队列传递消息,这个过程称为“传递”(deliver)。
  4. 接收方处理完消息后,将消息从队列中删除。

常见消息队列

消息队列-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端逻辑

总结

消息队列的优点包括:

  1. 解耦和异步:生产者和消费者之间的解耦使得系统更加灵活、可扩展和可维护。同时,异步消息的处理可以提高系统的响应性能和吞吐量。
  2. 可靠性和持久化:消息队列通常采用消息的持久化机制,保证消息的不丢失和可靠传递。
  3. 流量削峰和负载均衡:消息队列可以作为一个缓冲区,可以处理系统高峰期的消息流量,以及负载均衡的问题。

缺点:

  1. 使得业务代码更加复杂,对开发难度有所增加