消息队列 (MQ)

太过爱你忘了你带给我的痛 2022-04-10 10:56 561阅读 0赞

1、消息队列概述

消息队列(Message Queue): 是一种应用程序对应用程序通信的方式、生产者不断向消息队列中生产消息、消费者不断从队列中获取消息、生产者不是直接和消费者通信。

2、消息队列的实现方式

MQ是消息通信的模型、现在实现MQ有二种主流方式:AMQP、JMS

AMQP:(advanced message queuing protocol)、提供统一消息服务的应用层标准高级消息队列协议、是应用层协议的一个开放标准、不受客户端/中间件不同产品、不同开发语言等条件限制、

常用产品:Erlang中实现有RabbitMQ

JMS:(java messageService): JMS是由sun公司早期提出的消息标准、为java应用提供统一的消息操作、只限java语言使用。

常用产品:RocketMQ 、ActiveMQ

其它:Kafka:分布式消息系统,高吞吐量(由Scala和Java编写)

3、消息队列的作用(为什么要使用消息队列)

3.1、解耦:模块间通信消息发送和接收都通过MQ、

3.2、异步:(当用户执行某一操作时、系统A会立马响应给用户、当用户感觉很快、只是请求还在MQ里等待操作)加快响应速度

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Nzd3F6eA_size_16_color_FFFFFF_t_70

3.3、削峰: 削峰、限流(前端发来5000个请求、但mysql只能消化2000请求、其它3000会存在MQ里、慢慢消化)

#

ActiveMQ:万级、ms级、低概率丢失数据、现使用的人较少

RabbitMQ:万级、微妙级、延时最低,性能好、erlang开发、社区活跃

RocketMQ:10万级、ms级、分布式架构、阿里出品、

Kafka: 10万级、最大的优点就是高吞吐量、适用大数据

4、消息队列的缺点

MQ挂掉:微服务或模块间无法通信。

MQ丢失消息:

MQ消息乱序:

模块响应给MQ的消息的一致性问题:

发表评论

表情:
评论列表 (有 0 条评论,561人围观)

还没有评论,来说两句吧...

相关阅读

    相关 消息队列mq总结

    、消息队列概述 消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。目前使用较多的消息队列有A...

    相关 MQ消息队列学习

    1.概念:(message queue) 一种跨进程的通信机制,用于在上下游之间传递消息。消息发送上游只需要依赖MQ,逻辑上和物理上都不用依赖其他服务 详解参考:ht

    相关 分布式消息队列XXL-MQ

    [一、简介][Link 1] [1.1 概述][1.1] XXL-MQ是一款轻量级分布式消息队列,支持串行、并行和广播等多种消息模型。现已开放源代码,开箱即用。

    相关 MQ消息队列应用研究

    分布式项目中有一个框架基本是必不可少的,那就是消息队列(简称MQ)。消息队列的话,我们项目中最经常用到就是两个功能,一个是MQ是几种消息发送接收模式( 简单模式、工作模式、消息

    相关 消息队列MQ

    消息队列MQ 之前一直也没有学习过这方面的知识,直到项目中用到才决定学习一下 [https://www.jianshu.com/p/36a7775b04ec][htt