安装:
这个网上很多,可以自己去看。
MQ概述
MQ全称 Message Queue(消息队列),是在消息的传输过程中保存消息的容器。多用于分布式系统 之间进行通信。(主要来说就是在服务处理的时候先不处理,因为服务器一下子处理不了那么多,先放在队列里面,后面再处理)
MQ的优势:
1,MQ相当于一个中介,生产方通过MQ与消费方交互,它将应用程序进行解耦合。(系统的耦合性越高,容错性就越低,可维护性就越低。)
2,任务异步处理(将不需要同步处理的并且耗时长的操作由消息队列通知消息接收方进行异步处理。提高了应用程序的响 应时间。)
3,削峰填谷
列如:
MQ的劣势
1,系统引入的外部依赖越多,系统稳定性越差。一旦 MQ 宕机,就会对业务造成影响
2,MQ 的加入大大增加了系统的复杂度,以前系统间是同步的远程调用,现在是通过 MQ 进行异步调用。
3,A 系统处理完业务,通过 MQ 给B、C、D三个系统发消息,如果 B 系统、C 系统处理成功,D 系统处理 失败。
RabbitMQ 基础架构如下图:
简单模式
就是一个生产消息,一个消费消息,加上之间一个队列存储消息,最简单的一个了
Work queues工作队列模式
和简单模式差不多,多了一个消费的,怕一个处理不过来就用这一个。(是一个调135,一个246,en.....应该看得懂)
订阅模式概述
和之前的比,又多了一个exchange(交换机),主要是用来干(接收生产者发送的消息。另一方面,知道如何处理消 息,例如递交给某个特别队列、递交给所有队列、或是将消息丢弃)
exchange交换机主要有这几个(
Fanout:广播,将消息交给所有绑定到交换机的队列
Direct:定向,把消息交给符合指定routing key 的队列
Topic:通配符,把消息交给符合routing pattern(路由模式) 的队列)
注意:因此如果没有任何队列与Exchange绑 定,或者没有符合路由规则的队列,那么消息会丢失!
1、每个消费者监听自己的队列。 2、生产者将消息发给broker,由交换机将消息转发 到绑定此交换机的每个队列,每个绑定交换机的队列都将接收 到消息
Routing路由模式
解释:
P:生产者,向Exchange发送消息,发送消息时,会指定一个routing key。
X:Exchange(交换机),接收生产者的消息,然后把消息递交给 与routing key完全匹配的队列
C1:消费者,其所在队列指定了需要routing key 为 error 的消息
C2:消费者,其所在队列指定了需要routing key 为 info、error、warning 的消息
(就是多了个key,不能乱路由了,各有各的妈)
Topics通配符模式
# :匹配一个或多个词
* :匹配不多不少恰好1个词
就是路由的时候可以用这两个通配符,方便简单些。



