消息中间件简介

1、概述:

1、大多数应用中,可通过消息服务中间件来提升系统异步通信、扩展解耦能力

2、消息服务中两个重要概念

  消息代理-message broker 和目的地-destination

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

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

  1、队列:点对点通信 point-to-point

  2、主题:发布publish、订阅/subscribe消息通信

4、点对点式:

  消息发送者发送消息,消息代理将其放入到一个队列中,消息接收者从队列中获取消息内容,消息读取后被移除队列。

  消息读取后被移除队列

  消息只有唯一的发送者和接受者,但不是说只能有一个接收者。

5、发布订阅式

  发送者(发布者)发送消息到主题,多个接收者(订阅者)监听(订阅这个主题),那么就会在消息到达时同时受到消息

6、JMS(java message service)java消息服务

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

7、AMQP(advanced message queuing protocol)

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

    rabbitMQ是AMQP的实现;

 

8、spring支持

  --spring-jms提供了对jms的支持

  --spring-rabbit提供了对AMQP的支持

  --需要ConnectionFactory的实现来连接消息代理

  --提供JmsTemplate、RabbitTemplate来发送消息

  --@JmsListener(JMS)、@RabbitListener(AMQP)注解在方法上监听消息代理发布的消息

  --@EnableJms、@EnableRabbit开启支持

9、Springboot 自动配置

  --jmsAutoConfiguration

  --RabbitAutoConfiguration

RabbitMQ简介

rabbitMQ简介:

  RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue Protocol)的开源实现。

  核心概念:

Message消息

消息是不具名的,它是由消息头和消息体组成。消息体是不透明的,而消息头则是由一系列的可选属性组成,这些属性包括routing-key路由键、priority(相对于其它消息的优先权)、delivery-mode指出该消息可能需要持久性存储等。

Publisher

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

Exchange

交换器,用来接收生产者发送的消息并将这些消息路由给服务器中的队列。

exchange有四种类型,direct默认,fanout,topic和headers,不同类型的exchange转发消息的策略有所区别;

RabbitMQ稳定性可靠性高;流行的消息中间件;

消息:消息头(路由键,优先权,持久存储),消息体(不透明);

交换器:将消息路由到队列;

Direct:能实现jms中点对点消息模型;

后边三个可以实现发布订阅模型;

消息是通过交换器来决定法发往那个队列;

消息队列: 保存消息的容器;位于消息服务器。一直等到来人把他取走才不复存在

交换器与消息队列的关联规则被称为绑定;

交换器:消息队列=多对多

一个tcp连接来开多个信道;(chanel)

RabitMQ服务器内部划分为很多虚拟主机;

里边的每一个就是一个小的rabitmq

独立运行;他们之间每个都是隔离的;每个虚拟主机有自己的消息队列,交换器,路由规则;

还有自己的权限控制戒指,身份认证加密信息等;

链接rabitmq的时候,默认链接里边的/;用路径来划分;

RabbitMQ运行机制:

1、有生产者发送消息,到达消息服务器之后,经过转换器的绑定对应策略路由到消息队列,消息服务器再与消费者做tcp连接,一个连接中有多个信道,消费者取出消息后,消息从消息队列中消失。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值