为什么使用消息队列?消息队列有什么优点和缺点?Kafka、Act

2019-11-21  本文已影响0人  潇豪

消息队列的使用场景总结起来常见的有三个:解耦、异步、削峰。

例如 系统1发送数据给系统2,系统3,系统4,通过接口来调用,现在系统5需要数据,系统4不需要数据了。此刻我们就需要去a系统中重新编写和删除相应接口,耦合严重。

耦合的系统

此刻还要关注一些问题,调用接口的系统挂了怎么办,要不要重发,怎么存储消息,这是个问题。
但是我们应用一个MQ,系统将数据发送到MQ中,让其他系统自己去调用消费,此时系统不在考虑给哪个系统发送数据,不需要维护这个代码,不需要考虑是否失败超时等情况。

mq

总结:通过 MQ,Pub/Sub 发布订阅消息这么一个模型,系统彻底解耦了。

A系统给每个系统发送接口数据都需要要损耗时间


同步

系统在短时间内发送多个接口数据给MQ队列,其他系统直接去队列中消费消息,损耗时间极短,可以理解为将串行,变为并行发送的数据。


异步

例如此刻有5k请求,数据库只能承受2k,我们可以将5k请求放到MQ中,然后系统每次拉取2k请求的数据,虽然请求大的时候会积压数据,但是避免的mysql奔溃,保持系统正常使用


上一篇 下一篇

猜你喜欢

热点阅读