美文网首页
MQ消息队列

MQ消息队列

作者: Chelsea丶 | 来源:发表于2020-03-13 23:58 被阅读0次

业务体系部队苦熬大,采用微服务的设计思路,分布式的部署方法,拆分了很多服务。随着体量增加,很多中间件不够用,决定引入消息队列中间件
————————————————————————————
你在什么场景用到消息队列?
————————————————————————————
三个经典场景,一说到消息队列就要想到异步,削峰,解耦

异步:

本来下单系统只需下单字符,那么随着体量增大,需要加上许多小功能。比如发短信,优惠券减免,积分抵消等等,每个小功能都会增加时间。
全部加起来下单花个几十秒,用户体验就是失败的,那么怎么解决呢

这就要用到异步了

图片.png
那么为什么不用线程做呢,不是一样吗?
-线程需要调用接口,没加一个都要调用接口重新发布系统。而且全部加载到一起会耦合,排查问题也麻烦.

但是用到消息队列问题就迎刃而解了。
首先,下单,就把支付成功的消息告诉别的系统,他们收到了就去处理,你自己走完流程就行了


图片.png

其他的靠接入的系统,我负责监听就行了。

削峰

把请求放到队列里,能接受多少请求就看服务器能力了。
虽然可能回避平常慢一点,但是不至于服务器崩溃。等高峰过去就没那么大压力了。
像平常流量很低,但是比如双十一流量瞬间涌进来,这时候把速度放慢,给个提示页面。


缺点:

前面讲的都是有点,但是总不可能十全十美吧。

1.系统复杂性

本来很简单的系统,我凭空介入了一个中间件,那么我就要去维护,使用中还要考虑兼容问题,消息丢失等。

2.数据一致性

刚才讲了把支付成功的消息告诉别的系统,那么我怎么知道他有没有完成我交代的事呢?
所有服务(优惠券抵用,积分抵用,短信发送)全部完成我才能确认交易成功,这边就需要用到分布式事务了(暂时不动,下次了解)

3.稳定性

中间件万一突然挂了,那么我的系统不是直接崩盘了吗?


几款MQ


图片.png

这篇文章引用自b站up主三太子敖丙的文章,写下来用于自己记录一些java的知识点。如有侵权,我立刻删除!

这个是原文章地址:
https://www.bilibili.com/read/cv5086583

相关文章

  • rocketMq整合springBoot快速入门

    一、什么是消息队列 MQ? MQ 是什么?队列是什么,MQ 我们可以理解为消息队列,队列我们可以理解为管道。以管道...

  • 消息队列的流派

    消息队列的流派 什么是 MQ Message Queue(MQ),消息队列中间件。很多人都说:MQ 通过将消息的发...

  • RocketMQ整体介绍

    1. MQ介绍 1.1 什么是MQ?为什么要用MQ? MQ:MessageQueue,消息队列。队列,是一种FIF...

  • 架构成长之路:微服务异步架构---MQ之RocketMQ

    一、什么是MQ?MQ的原理是什么? MQ就是消息队列,是Message Queue的缩写。消息队列是一种通信方式。...

  • 微服务异步架构---MQ之RocketMQ

    一、什么是MQ?MQ的原理是什么? MQ就是消息队列,是Message Queue的缩写。消息队列是一种通信方式。...

  • MQ系列(0)——MQ简介

    mq简介 mq 就是消息队列(Message Queue)。想必大家对队列的数据结构已经很熟悉了,消息队列可以简单...

  • 消息队列 ActiveMQ 、RocketMQ 、RabbitM

    消息队列(MQ) 在百度百科中,消息队列(MQ)是这么解释的:“消息队列”是在消息的传输过程中保存消息的容器(可存...

  • Redis异步队列与延时队列

    什么是消息队列 MQ全称为Message Queue 消息队列(MQ)是一种应用程序对应用程序的通信方法。MQ是消...

  • 关于MQ使用的清单

    关于使用消息队列的清单 消息队列,英文:MessageQueue,下面简称MQ. 这里的MQ是指分布式系统下的消息...

  • MQ消息队列

    一、什么是消息队列 MQ(Message Queue)消息队列,是一种跨进程的通信机制,用于上下游传递信息;作为一...

网友评论

      本文标题:MQ消息队列

      本文链接:https://www.haomeiwen.com/subject/bcpushtx.html