分布式消息中间件介绍

举报
阿柠 发表于 2022/09/27 20:37:08 2022/09/27
【摘要】 分布式消息中间件介绍 什么是消息中间件:game_die:一个场景:如果你是一个客户,在支付完一个订单之后,界面上会有一个等待圆圈,那这几秒让不让你烦躁呢?:hammer_and_wrench:解决它:解决这个问题的一大利器就是消息中间件,英文全称“Message Queue”,简称MQ再没有引入消息中间件之前,系统A和系统B是同步通信的,但是在引入消息中间件之后,系统A和系统B就会变成异...

分布式消息中间件介绍

什么是消息中间件

:game_die:一个场景:

如果你是一个客户,在支付完一个订单之后,界面上会有一个等待圆圈,那这几秒让不让你烦躁呢?

:hammer_and_wrench:解决它:

解决这个问题的一大利器就是消息中间件,英文全称“Message Queue”,简称MQ

xn_2022-08-29_16-36-01

再没有引入消息中间件之前,系统A和系统B是同步通信的,但是在引入消息中间件之后,系统A和系统B就会变成异步通信。

  • 系统A发送信息给mq后,就认为完成了自己的任务;然后系统B根据自己的情况,可能会在系统A投递小心到MQ之后的1秒,可能更久的时间去处理。

  • 在异步调用的过程中,系统A仅仅是发个消息到MQ,至于系统B什么时候获取消息,有没有获取消息,系统A是不管的。

:ocean:你可以理解为一个中介,生产者只需要往MQ生产数据,消费者只管拿数据。

消息中间件的作用

解耦

传统模式的缺点:

image-20220830084632280

系统间的耦合性太强,如上图所示,系统A在代码中直接调用系统B和系统C的代码,如果将来D系统接入,系统A还需要修改代码,就很麻烦。

加入中间件模式的优点:

image-20220830084710459

将消息写入消息队列,需要消息的系统自己从消息队列中订阅,从而系统A不需要做任何改变。

异步

传统模式的缺点:

一些非必要的业务逻辑以同步的方式运行,太耗费时间。

中间件模式的优点:

将消息写入消息队列,非必要的业务逻辑以异步的方式运行,加快响应速度。

削峰

传统模式的缺点:

并发量大的时候,所有的请求直接怼到数据库,库不堪其忧,客也不得乐。

加入中间件模式的优点:

系统A慢慢的按照数据库能处理的并发量,从消息队列中取出消息。在生产中,这个短暂的高峰期积压也是被允许的。

消息中间件的应用场景和案例

  1. 异步解耦:

​ 系统间请求异步解耦,通过消息堆积与高性能特性,实现平台削峰。

  1. 事件通知

​ 通过消息广播,高效的吧分布式应用联系起来。

  1. 数据复制

    通过消息将数据分发到多个系统进行处理

  2. 日志处理

    高效的异步同步日志,进而实时或离线进行分析。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。