赞
踩
消息队列的常见使用场景有很多但是核心的有三个:解耦、异步、削峰
优点:特殊场景下解耦、异步、削峰。
缺点:
系统可用性降低:系统引入的外部依赖越多,越容易挂掉,本来你就是A系统调用BCD三个系统的接口就好了,人ABCD四个系统好好的没什么问题,你偏加个MQ进来,万一MQ挂了怎么办,整套系统崩溃了,就完蛋了
系统复杂性提高:硬生生加个MQ进来,你怎么保证消息没有重复消费?怎么处理消息丢失的情况?怎么保证消息传递的顺序性?
一致性问题:系统A处理完了直接返回成功了,人家都认为你这个请求成功了;但问题是,要是BCD三个系统哪里BD系统成功了,结果C系统写库失败了,咋整?数据就不一致了;所以消息队列是一种非常复杂的架构,引入它有很多好处,但是也得针对他带来的坏处做各种额外的技术方案和架构来规避掉。做好之后你会发现系统复杂度提升了一个数量积,但是关键时刻,用,还是要用的。
具体参考:https://mp.weixin.qq.com/s/qwtOAlM9VvMvrKfIDWZmTA
https://github.com/doocs/advanced-java/blob/main/docs/high-concurrency/why-mq.md
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。