这篇文章将为大家详细讲解有关消息中间件有哪些使用场景,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
消息中间件的使用场景有:1、异步处理;2、应用的解耦;3、流量的削峰;4、日志处理;5、纯粹的消息通信。
消息中间件的使用场景有:
为什么使用消息中间件
解决分布式系统之间消息的传递。
电商场景:用户下单减库存,调用物流系统,系统扩充后服务化和业务拆分。系统交互,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的强项,大数据的日志处理非它莫属,我没用过,只知道它很强大。非常强大。
五、纯粹的消息通信
关于消息中间件有哪些使用场景就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。