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

1、MQ的优势:

1.应用解耦:系统耦合度越高,容错性就越低,可用性就越低。使用MQ将系统进行隔离,可以提高系统的容错性。

2.异步提速:在用户进行操作后,将信息发送到MQ后就返回。后续的业务流程通过MQ异步进行处理。可以提高用户体验和系统吞吐量。

3.削峰填谷:当大量消息集中进入系统时,可以用MQ将信息暂存起来,系统从MQ中取出积压消息有序处理,避免系统崩溃。

 

2、MQ的劣势:

1.系统可用性降低:系统引入的外部依赖越多,系统稳定性越差。一旦MQ宕机,就会对业务造成影响,需要提高MQ的可用性。

2.系统复杂度提高:需要额外考虑消息是否被重复消费(幂等性问题),消息丢失,消息的顺序等问题。

3.一致性问题:如果A系统通过MQ向多个系统其他系统发送消息,有的系统正常接受,有的系统没有接受,造成数据不一致。

 

3、使用MQ需要满足的条件:

1.生产者不需要从消费者处获得反馈。

2.允许短暂的不一致性。

3.收益大于成本。

 

4、常见的MQ产品:

 

 5、RabbitMQ简介

RabbitMQ使用Erlang语言开发,采用AMQP(高级消息队列)协议,AMQP是一个应用层协议。

 

 

 

 

 

 

RabbitMQ的6种工作模式:

1.简单模式(Hello World)

2.工作队列模式(Work Queue)

3.发布订阅模式(Publish/Subscribe)

4.路由模式(Routing)

5.主题模式(Topics)

6.RPC远程过程调用

7.发布确认模式(Publisher Confirms)

 

 

6、JMS介绍

JMS即Java消息服务(JavaMessage Service)应用程序接口,是一个Java平台中关于面向消息中间件的API。

JMS是JavaEE的一种规范。RabbitMQ本身没有实现JMS,但在开源社区有实现。

posted on 2021-11-02 09:49  Sempron2800+  阅读(32)  评论(0编辑  收藏  举报