RabbitMQ从入门到放弃(一)

这是我参与11月更文挑战的第16天,活动详情查看:2021最后一次更文挑战

MQ的相关概念

MQ可以实现什么功能

流量削峰

面对大量的请求,使用MQ做缓冲,把一秒内的请求分散成一段时间来处理。

例如天山,该山最多仅能容纳 一万人次,这容量在平常时间已经足够应付过去旅游散心的人。但是在 天山论剑 时期,武林中的每一个人都想过去证明自己,这时天山就容纳不了这么多的人了,只能限制前一万人进入比武,后续路途遥远的人到来之后 无法进入,只能在外面等着,那他们肯定不服气的,都是武林中人,凭什么人家就可以进去彰显武力,证明自己,而自己就只能在外面干等着,声音都听不到。

有人的地方就有江湖,来的人多了,一阻塞,脾气暴躁的人三两句话直接就打了起来,场面越来越混乱。就在这时,有位 MQ大侠 横空出世,只见他单手执剑,往前轻轻一挥,天山旁的一座山峰山腰处发出一道耀眼的光芒,峰顶缓缓向下滑动,倒在一旁。

所有人都先到隔壁的山峰去比试,获胜的人再前往主峰进行比试。MQ大侠 冷冷说到。于是后面赶来的人纷纷转向隔壁的山峰进行比武。

应用解耦

应用系统中有多个子系统,任何一个子系统出现故障,都会导致整体流程的调用异常。当将其需处理的问题缓存至 MQ 中后,系统间的调用问题会减少很多,某个子系统发生故障后,可以等待其修复完成,再从 MQ 中读取消息进行处理,而后通知下游子系统。

某日,龙门镖局接到一件货物,需要在五天内送往边关,二当家赶忙召集局中镖师整备出发。

前两日风平浪静,大家不免有些松懈,就在此时,一波暗箭射来,顿时有几名镖师伤亡,几名蒙面黑衣人从林中冲出,杀向镖车。二当家急忙发射求救信号,同时拔刀迎向黑衣人。镖局中人由于受到暗箭所伤,渐渐不敌黑衣人。眼看黑衣人逐渐靠近,二当家心中焦急,就在此时,MQ大侠 赶至,连忙出手帮忙。怎耐敌方人多势众,MQ大侠 也无法击溃黑衣人。

二当家只能将货物交给 MQ大侠,让他先突围出去与总镖头回合,自己与其他镖师一起牵制着黑衣人。MQ大侠 带着货物突围而出,提起轻功往边关方向飞去。黑衣人分兵追击,直至途中遇到赶来支援的总镖头,总镖头连忙招呼众人迎接 MQ大侠,击杀黑衣人。

MQ大侠 顺利将货物移交回龙门镖局,使其完成押送任务。

异步处理

当服务间当调用方式为异步调用,原先获得结果当方式有两种,主动发起查询与提供callback接口给被调用方调用。这两种方式都不太优雅,采用MQ可以很方便当解决该问题。

MQ大侠 在游戏人间时,创建来一个佣兵工会,给人提供一个发布任务,赚取赏金当平台。

任务的发布者发布在平台上发布任务之后,只需要过来平台这边进行查询即可得知任务的结果,这样哪怕发布多个任务,也只需要到这一处进行查询,不需要单独对每一位佣兵跟进了解情况,可以将时间空出来继续忙其它的事情。

而佣兵们也只需要在任务完成之后告知平台即可,平台会将结果告知雇主,佣兵无需寻找或等待雇主来与自己进行确认。

其它

江湖上还有许多MQ大侠的传说,需要等待少侠步入江湖后再去深入挖掘,给不凡的生活增添一份乐趣。

四大MQ

  1. ActiveMQ
  2. Kafka
  3. RocketMQ
  4. RabbitMQ
ActiveMQ RabbitMQ RocketMQ Kafka
单机吞吐量 万级 万级 十万级 十万级
时效性 ms级 微秒级 ms级 ms级
可用性 非常高 非常高
可靠性
优点 非常成熟,功能强大,在业内大量的公司以及项目中都有应用 性能极其好,延时很低,MQ功能比较完备,社区活跃 接口简单易用,性能非常好,可以做到大规模吞吐 超高的吞吐量,ms级的延迟,极高的可用性以及可靠性
缺点 偶尔会有较低概率丢失消息,而且官方社区对ActiveMQ 5.x维护越来越少 吞吐量低,集群动态扩展麻烦 仅提供较少的核心功能,有可能消息重复消费,对数据准确性会造成极其轻微的影响

安装:

安装这一步就直接跳过了,RabbitMQ官网里面就有多个操作系统的安装案例,按照说明来执行就可以了。

image.png

最后

文章有写的不好的地方,请大佬们不吝赐教,错误是最能让人成长的,愿我与大佬间的距离逐渐缩短!

如果觉得文章对你有帮助,请 点赞、收藏、关注、评论 一键四连支持,你的支持就是我创作最大的动力!!!

猜你喜欢

转载自juejin.im/post/7030994793484255263