高并发之消息队列

消息队列在企业IT系统中扮演重要角色,实现异步解耦、保证最终一致性、广播和流量控制等功能。通过将任务放入消息队列,如Kafka,可以提升系统性能,应对高并发场景,降低系统复杂性,同时支持扩展性和容错性。消息队列的使用场景包括异步处理、解耦组件以及流量削峰等。
摘要由CSDN通过智能技术生成

消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。

消息被处理的过程相当于流程A被处理。我们这里以一个实际的模型来讨论下,比如用户下单成功时给用户发短信,如果没有这个消息队列,我们会选择同步调用发短信的接口,

并等待短息发送成功,这时候假设短信接口实现出现问题了,或者短信调用端超时了,又或者短信发送达到上限了,我们是选择重试几次还是放弃,还是选择把这个放到数据库

过一段时间再看看呢,不管怎样,实现都很复杂。

我们可以将发短信这个请求放在消息队列里,消息队列按照一定的顺序挨个处理队列里的消息,当处理到发送短信的任务时,通知短信服务发送消息,如果出现之前出现的问题,那么把这个消息重新放到消息队列中。

 

消息队列的好处:

1.成功完成了一个异步解耦的过程。短信发送时只要保证放到消息队列中就可以了,接着做后面的事情就行。一个事务只关心本质的流程,需要依赖其他事情但是不那么重要的时候,有通知即可,无需等待结果。每个成员不必受其他成员影响,可以更独立自主,只通过一个简单的容器来联系。

对于我们的订单系统,订单最终支付成功之后可能需要给用户发送短信积分什么的,但其实这已经不是我们系统的核心流程了。如果外部系统速度偏慢(比如短信网关速度不好),那么主流程的时间会加长很多,用户肯定不希望点击支付过好几分钟才看到结果。那么我们只需要通知短信系统“我们支付成功了”,不一定非要等待它处理完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值