MQ(消息队列)简介

MQ是什么

在这里插入图片描述

MQ(Message Queue)消息队列,是基础数据结构中“先进先出”的一种数据结构。指把要传输的数据(消息)放在队列中,用队列机制来实现消息传递——生产者产生消息并把消息放入队列,然后由消费者去处理。消费者可以到指定队列拉取消息,或者订阅相应的队列,由MQ服务端给其推送消息。

MQ优点

1.解耦

一个业务需要多个模块共同实现,或者一条消息有多个系统需要对应处理,只需要主业务完成以后,发送一条MQ,其余模块消费MQ消息,即可实现业务,降低模块之间的耦合。

2.异步

主业务执行结束后从属业务通过MQ,异步执行,减低业务的响应时间,提高用户体验。

3.流量削峰

高并发情况下,业务异步处理,提供高峰期业务处理能力,避免系统瘫痪。

MQ缺点

1.可用性降低

依赖服务越多,服务越容易挂掉。需要考虑MQ瘫痪的情况。

2.复杂性提高

需要考虑消息丢失、消息重复消费、消息传递的顺序性等方面

3.一致性问题

主业务和从属业务一致性的处理。

MQ的种类

ActiveMQ,RabbitMQ,RocketMQ,Kafka

各种MQ间的区别对比

比较内容 ActiveMQ RabbitMQ RocketMQ Kafka
性能(单机) 6000 1.2万 10万 100万
支持语言 主流语言 主流语言 Java 主流语言
持久化 支持(性能下降) 支持(性能下降) 支持 支持
优点 时效性ms级 高可用性,管理界面好用 消息0丢失,模型简单 分布式,性能卓越,吞吐量高
缺点 不能大规模应用,官方维护较少 商业版收费 模型简单,性能好支持语言少 对带宽有要求,社区更新慢

同系列文章

原理部分

RabbitMQ简介
RabbitMQ 四大核心概念及工作原理

操作部分

Windows版Docker安装RabbitMq
Maven整合RabbitMQ实现生产消费消息
SpringBoot整合RabbitMQ实现生产消费消息
RabbitMQ延迟队列及实战
RabbitMQ发布确认-交换机确认
RabbitMQ-消息回报(队列确认)
RabbitMQ-备份交换机
RabbitMQ-优先级队列

猜你喜欢

转载自blog.csdn.net/m0_68681879/article/details/129556624