MQ

MQ全程Message Queue(消息队列),是在消息的传输过程中保存消息的容器。多用于分布式系统之间进行通信。即:存储消息的中间件。

分布式系统通信有两种:直接远程调用和借助第三方完成间接通信。

发送方称为生产者,接收方称为消费者

MQ的优势:

·应用解耦

系统耦合性越高,容错率就越低,可维护性就越低。

使用MQ使得应用间解耦,提升容错性和可维护性。

·异步提速

提升用户体验和系统吞吐量(单位时间内处理请求的数目)

·削峰填谷

提高系统稳定性

MQ的劣势:

·系统可用性降低

系统引入的外部依赖降低,系统稳定性越差。一旦MQ宕机,就会对业务造成影响。如何保证MQ的高可用性?

·系统复杂度提高

MQ的加入大大提高了系统复杂度,以前系统间是同步的远程调用,现在是通过MQ进行异步调用。

如何保证消息没有被重复消费?怎么处理信息丢失情况?怎么保证消息传递的顺序性?

·一致性问题

A系统处理完业务,通过MQ给B、C、D三个系统发消息数据,如果B系统、C系统处理完成,D系统处理失败。

如何保证消息处理数据处理的一致性?

使用MQ需要满足以下条件:

①生产者不需要从消费者处获得反馈。引入消息队列之前的直接调用,其接口的返回值为空,这才让明明下层的动作还没做,上层却当成动作做完了继续往后走,即所谓异步成为了可能。

②容许短暂的不一致性。

③确实是用了有效果。即解耦、提速、削峰这些方面的收益,超过接入MQ,管理MQ这些的成本。

常见的MQ产品:

 

posted on 2022-08-04 00:10  网恋被骗两千八  阅读(36)  评论(0编辑  收藏  举报