消息队列可以解决那些问题?

在单体应用中,我们常常使用简单的数据结构——队列,来解决一些实际问题,比如生产者消费者模式使用队列作为中间传输。在复杂的分布式环境中,简单队列是无法解决分布式环境一定存在的问题,比如应用之间的通信、消息持久化、消息传输控制等等问题。消息队列又能解决那些问题呢?

1.异步处理

举个例子:在商城系统中,订单系统下单成功后,需要一些后处理,比如扣减库存、统计销售数量、短信通知、消息推送、优惠卷占用等等。如果所有这些操作都是同步处理,那下单耗时非常严重,影响用户体验。可以利用消息队列将这些同步操作改为向各个系统发送消息,接口直接返回订单信息。

2. 流量控制(削峰填谷)

我们的应用处理请求能力是有限,在一些存在海量请求的场景中,比如秒杀、抢购等等。如果直接处理这海量请求,可能我们的应用早挂掉了。这时候可以把这些请求丢进消息队列中,下游系统以自己的处理能力消费这些消息,起到了削峰填谷的作用。

3. 应用间解耦

下游应用依赖上游应用,如果在代码每个地方都依赖,这样维护应用之间的依赖关系非常头疼。比如电商系统中常见的订单状态,有许多下游系统依赖订单系统,订单状态可能是待付款、待发货、待收货等等。如果订单状态每次变更都在订单系统中调用其他系统,那么维护订单系统的人肯定还在加班(哈哈)。如果所有的订单状态变更状态处理都在订单系统,那么应用之间的耦合度太高。这时候可以使用消息队列这把利器,可以利用消息队列中主题-订阅模式,订单状态发生变化只需要发送消息,而需要处理订单状态变更的系统只需订阅订单状态变更的Topic。这样订单系统与其他系统就不是强耦合。

4. 总结

消息队列的典型应用场景:异步处理、流量控制、应用间解耦。除此之外消息对了还可以:

  • 作为发布 / 订阅系统实现一个微服务级系统间的观察者模式;
  • 连接流计算任务和数据
  • 将消息广播给大量消费者
    消息队列不是银弹,引入消息队列也会存在一些问题:
  • 消息延迟
  • 数据可能不一致
  • 增加系统复杂度
    所以我们一定要根据自身的业务特点选择是否使用消息队列。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,723评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,003评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,512评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,825评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,874评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,841评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,812评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,582评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,033评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,309评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,450评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,158评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,789评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,409评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,609评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,440评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,357评论 2 352