进击的巨人-1
1-RocketMQ使用场景与缺陷
感谢黑马公开课(学习地址
https://www.bilibili.com/video/av71654125?p=1
使用MQ的好处
-
应用解耦
分布式系统中,多应用之间的事建呼应出现故障时,数据消息被缓存到中间件,待应用故障恢复后,补充处理即可
-
流量削峰
QPS爆炸怎么解决?
使用消息中间件可以将大量的请求缓存器来,
分散到一个可合理利用得时间段内,去消化此次大量的QPS。
并且还可以减少硬件的费用花费:
业务系统预知某日12点流量高峰为1万QPS,为了应对流量高峰,
而购买高性能服务器显然是不合算的,这时可以也使用消息中间件去应对。
-
数据分发
如果由数据仓主动发送每日不定时消息(支付限额调整
每个服务负责接收,某日新增10个服务需要接收,那么咱们程序大佬就要重新增加业务逻辑,对10个新增服务进行数据发送。
如果使用消息中间件,让接收服务方去订阅接收消息,我们只需要关心消息中间件的存储,并且对系统降低了耦合度
缺点:
系统可用性低:
MQ宕机,会对业务造成一定的影响。
如何保证MQ高可用?
系统复杂性提高
MQ的参与,会造成消息重复消费问题。
如何保证幂等性?
如何保证消息顺序性消费?
如何保证消息丢失问题?
一致性问题
如何保证分布式中的一致性问题?