RabbitMQ概念

用场景

1、异步处理


2、应用解耦


3、流量监控(流量削峰)



概述

1、应用可以引入消息中间件提升系统异步通讯、扩展解耦能力

2、两个重要概念

    (1)、消息代理:代替发送/接收消息的存在。(安装了消息中间件的服务器)

    (2)、目的地

      当消息生产者发送消息之后,将由消息代理接管,消息代理保证消息传递到指定目的地。

3、消息队列主要有两种形式的目的地

   (1)、队列:点对点消息通讯(point-to-point,点对点式)

   (2)、主题:发布(publish)/订阅(subscribe)消息队列(发布订阅式)

4、点对点式:(最终消息只会交给一个接受者,谁先抢到给谁)

------消息生产者发送笑嘻嘻,消息代理将其放入一个队列中,消息接收者从队列中获取消息内容,读取消息后移出队列。

------消息只有唯一的发送者和接受者(只能有一个服务接受消息),但并不是说只能有一个接收者(可以有很多服务去抢这个消息)。

5、发布订阅式:

--------发布发送消息到主题,多个接收者(订阅者)订阅这个主题,会在消息到达时同收到消息。


6、队列协议

1、JMS(Java Message Service)Java消息服务:

----- 基于JVM消息代理的规范。ActiveMQ、HornetMQ是JMS实现。

2、AMOP(Advanced Message Queuing Protocol)

------ 高级消息队列协议,也是一个消息代理的规范,兼容JMS

------ RabbitMQ是AMQP的实现