消息中间件的核心思想

本文来说下消息中间件的核心思想


传统的Http协议调用接口存在那些问题

采用同步的形式调用接口,如果调用的过程非常耗时间的话,客户需要等待非常久的时间才会响应;这样对客户端体验非常不好。而且会员成功了,后面失败了也会导致整体失败,没有补偿机制。

痛点1

有些复杂的业务系统,一次用户请求可能会同步调用N个系统的接口,需要等待所有的接口都返回了,才能真正的获取执行结果。

在这里插入图片描述

这种同步接口调用的方式总耗时比较长,非常影响用户的体验,特别是在网络不稳定的情况下,极容易出现接口超时问题。

痛点2

很多复杂的业务系统,一般都会拆分成多个子系统。我们在这里以用户下单为例,请求会先通过订单系统,然后分别调用:支付系统、库存系统、积分系统 和 物流系统。

在这里插入图片描述

系统之间耦合性太高,如果调用的任何一个子系统出现异常,整个请求都会异常,对系统的稳定性非常不利。

痛点3

有时候为了吸引用户,我们会搞一些活动,比如秒杀等。

在这里插入图片描述

如果用户少还好,不会影响系统的稳定性。但如果用户突增,一时间所有的请求都到数据库,可能会导致数据库无法承受这么大的压力,响应变慢或者直接挂掉。

在这里插入图片描述

对于这种突然出现的请求峰值,无法保证系统的稳定性。


采用多线程异步的形式实现有优缺点

异步操作可以减少客户端等待的时间,但缺点是容易消耗CPU资源,就是开启线程池,也会造成客户端长时间的等待。

详细说明:

A、对我们cpu的性能不是很好,因为频繁创建线程;就算使用线程池,在高并发情况下,如果超出了线程池核心数还是会等待。
B、开启了默认情况下是没有返回结果
C、没有补偿机制,如果有重试的话,也会存在幂等性问题


消息中间件核心思想有那些

异步通讯、自动补偿与重试、分布式事务、解决流量削峰问题、系统的解耦

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值