消息中间件的使用场景

不管现实多么惨不忍睹,都要持之以恒地相信,这只是黎明前短暂的黑暗而已。不要惶恐眼前的难关迈不过去,不要担心此刻的付出没有回报,别再花时间等待天降好运。真诚做人,努力做事!你想要的,岁月都会给你。消息中间件的使用场景,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

一般认为,采用消息传送机制/消息队列 的中间件技术,进行数据交流,用在分布式系统的集成。

为什么使用消息中间件

解决分布式系统之间消息的传递。

电商场景:用户下单减库存,调用物流系统,系统扩充后服务化和业务拆分。系统交互,y一般用RPC(远程过程调用)。如果系统扩充到有几十个接口,消息中间件来解决问题。

消息中间件有些什么使用场景

一、异步处理

用户注册(50ms),还需发送邮件(50ms)和短信(50ms)

串行:(150ms)用户注册—》发送邮件—-》发送短信

并行(100ms):用户注册—》发送邮件

a)        |—-》发送短信

消息中间件(56ms):

用户注册(50ms)—》(6ms)消息中间件《—–发送邮件

                                                                   《—–发送短信

说明:一个用户注册流程,包含下述业务:

1.        注册处理以及写数据库、

2.        发送注册成功的手机短信

3.        发送注册成功的邮件信息

 

我们使用老方法的话,则会注册完执行发送短信再执行邮件发送。太low

一般使用的是:在注册成功后,使用两个线程去做发送邮件,发送短信操作。

 

如果用消息中间件:则将两个线程创建这些事情省了,直接发送消息给消息中间件,然后让邮件服务和短信服务自己去消息中间件里面去取消息,然后取到消息后再自己做对应的业务操作。就是这么方便

 

二、应用的解耦

a)        订单系统—》库存系统(强耦合)

b)       消息中间件:订单系统—》消息中间件《—-库存系统(解耦)

 

说明:用户购买一笔订单,订单成交—》调用库存系统—1—》返回给订单系统,此时算一个正常业务。还有不正常的业务,就是用户订单完成后,订单系统并不去滴啊用库存系统-1操作,而是调用消息中间件,写入一个订单信息。又库存系统自己去消息中间件上去获取,然后更新库存,这样能够减少互联网型应用追求的快这一个属性。而库存系统读取订单间库存其实这个操作也是非常快的,所以有消息中间件对解耦来说也是一个不错的方向。

 

三、流量的削峰

a)        用户请求—–》秒杀应用

b)        应用的前端加入消息队列

c)        用户请求—–》消息队列《—-秒杀应用

 

说明:比如,系统举行秒杀活动,热门商品。流量蜂拥而至 100件商品,10万人挤进来怎么办,10万秒杀的操作,放入消息队列。秒杀应用处理消息队列中的10万个请求中的100个,其他的打回,通知失败。流量峰值控制在消息队列处,秒杀应用不会瞬间被怼死.

 

四、日志处理

a)        错误日志—》消息队列《—-日志处理

b)        用户行为日志–》消息队列(kafka)《—–日志的存储或流式处理

 

说明:日志处理 可能随时kafka的强项,大数据的日志处理非它莫属,我没用过,只知道它很强大。非常强大。

 

五、纯粹的消息通信

 

 

后期将主要记录:rabbitmq 应用场景以及相关知识

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/160959.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!