认识消息队列

2023-08-31 10:57:41 浏览数 (1)

消息队列简介

消息队列,英文名:Message Queue,经常缩写为MQ。从字面上来理解,消息队列是一种用来存储消息的队列。可以简单理解消息队列就是将需要传输的数据存放在队列中

  • 消息队列–用于存放消息的组件
  • 程序员可以将消息放入到队列中,也可以从消息队列中获取消息
  • 很多消息队列不是一个永久性的存储,是作为临时存储存在的(设定一个期限:设置消息在MQ中保存10天)
  • 本质是个队列,但这个队列需要支持高吞吐、高并发、并且高可用

消息队列中间件

消息队列中间件就是用来存储消息的软件(组件)。例如Kafka、RabbitMQ等。 常见的MQ中间件:

  • Kafka:分布式的、分区的、多副本的日志提交服务,在高吞吐场景下发挥较为出色
  • RocketMQ:低延迟、强一致、高性能、高可靠、万亿级容量和灵活的可扩展性,在一些实时场景中应用较广
  • Pulsar:是下一代云原生分布式消息流平台,集消息、存储、轻量化函数式计算为一体、采用存算分离的架构设计
  • BMQ:和Pulsar架构类似,存算分离,初期定位是承接高吞吐的离线业务场景,逐步替换掉对应的Kafka集群

消息队列的应用场景

异步处理

提高响应速度(以用户注册为例,要写数据库,发邮件,发短信,可以把发邮件发短信放到消息队列中,让其他程序处理,从而快速响应)

系统解耦

系统的两个组件之间需要通过API调用,如果一个组件坏了或者API坏了,会导致另一个也不好工作,这时候引入消息队列,一个组件只需要把消息放在MQ中,另一个组件取消息即可。不要让软件和软件依赖太重。

流量消峰

在服务器和数据库之间放一个消息队列,用消息队列的大吞吐量,快速处理用户请求。

0 人点赞