springboot消息队列概念

ぐ巨炮叔叔 提交于 2020-02-17 18:42:11

Spring boot之消息队列
一、消息队列

点对点式:唯一的发送者和接受者,接受者不是唯一的,但是一旦消息被消费了,其他接收者就收不到消息

发布订阅式:发布者发布消息,其他人可以订阅这个消息

JMS,java Message Service 消息服务,java api,不跨语言不跨平台
两种消息模型,消息的类型支持的很多

AMQP,网络线协议,可以跨平台,跨语言,提供五种消息模型,消息模型一种
,因为需要跨平台跨语言,消息需要序列化。

spring支持
spring-jms、spring-rabbit对AMQP的支持;
需要ConnectionFactory的实现来连接消息代理;
提供JmsTemplate、RabbitTemplate来发送消息;
@JmsListener(JMS),@RabbitListener(AMQP)注解在方法上监听消息代理发布消息;
@EnableJms、@EnableRabbit开启支持

springBoot自动配置
JmsAutoConfiguration

二、RabbitMQ简介
核心:
Message:
由消息头和消息体组成,消息体是不透明的,消息头是由一系列的可选属性组成
这些属性包括routing-key(路由键),priority(相对于其他消息的优先权),
delivery—mode(支出该消息可能需要持久性存储)等。

Publisher:
消息的生产者,也是一个向交换器发布消息的客户端应用程序。

Exchange:
交换器,用来接受生产者发送的消息并将这些消息路由给服务器的队列。
有四种类型。

Queue:
消息队列,保存消息的地方。

Binding:
绑定,用于消息队列的交换器之间的关联。

Connection:
网络连接

Channel:
信道

Consumer:消费者

Virtual Host:虚拟主机,每一个vhost是是一个小的RabbitMq服务器,拥有自己的队列、交换器、绑定和权限机制。vhost是AMQP概念的基础,必须在连接时指定,RabitMq默认的vhost是/.

Broker:
表示消息队列服务器实体
在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!