RabbitMQ是一款开源的,Erlang编写的,基于AMQP协议的,消息中间件;
一、RabbitMQ组件和工作原理
解耦、异步、削峰;
RabbitMQ是一个由erlang开发的AMQP(Advanved Message Queue Protocol)的开源实现。
二、消息服务中两个核心概念
消息代理:Message Broker;
目的地: Destination
Broker 是指一个或多个 erlang node 的逻辑分组,且 node 上运行着 RabbitMQ 应用程序。
cluster 是在 broker 的基础之上,增加了 node 之间共享元数据的约束。
三、消息队列主要有两种形式的目的地
1、队列(Queue):点对点消息通信(point-to-point)
2、主题(Topic):发布(PUBLISH) / 订阅(SUBSCRIBE)消息通信
四、点对点式与发布订阅式
五、JMS(Java Message Service) JAVA消息服务
基于JVM消息代理的规范,例如ActiveMQ
六、AMQP 高级消息队列协议
兼容JMS,例如RabbitMQ
七、JMS & AMQP 功能对比
八、Spring支持
spring-jms 提供了对JMS的支持
spring-rabbitmq提供了对AMQP的支持
需要ConnectionFactory的实现连接消息代理
提供JmsTemplate、RabbitTemplate发送消息
@JmsListener(JMS) @RabbitListener(AMQP) 注解在方法上监听消息代理发布的消息
@EnableJms @EnableRabbit开启支持
九、Spring Boot自动配置
JmsAutoConfiguration
RabbitAutoConfiguration