SpringBoot和消息-1

概述

1、在大多应用中,可通过消息中间件来提升消息异步通信、扩展解耦能力
场景:流量削峰、解耦应用,,,
2、消息服务中两个概念:消息代理(message broker)和目的地(destination)
当消息发送者发送消息以后,由消息代理接管,消息代理保证消息传递到指定目的地。
3、消息队列有两种形式的目的地

  • 队列(queue):点对点消息通信(point-to-point)
    消息发送者发送消息,消息代理将其放入一个队列中,消息接收者从队列中获取消息的内容,消息读取后被移出队列;且消息只有唯一的发送者和接受者,但并不是说只能有一个接收者
  • 主题(topic):发布(publish)-订阅(subscribe)消息通信
    发送者发送消息到主题,多个接收者监听这个主题,那么就会在消息到达的同时收到消息

4、消息服务的规范

  • JMS(Java Message Service)Java消息服务:基于JVM消息代理的规范,ActiveMQ、HornetMQ是JMS实现
  • AMQP(Advanced Message Queuing Protocol):消息高级队列协议,也是一个消息代理的规范,兼容JMS,RabbitMQ是AMQP的实现

RabbitMQ

  1. RabbitMQ是一个AMQP的开源实现,主要的核心概念如下:
  2. Message:消息,消息是不具名的,由消息头和消息体组成;消息体是不透明的,消息头是由一系列的可选属性组成的,这些属性包括routing-key(路由键)、priority(相对于其他消息的优先级)、delivery-mode(指出该消息可能需要永久性存储)
  3. Publisher:消息的生产者,也是一个向交换器发送消息的客户端应用
  4. Exchange:交换器,用来接收生产者发送的消息并将消息路由给服务器中的队列;Exchange有四种类型:direct(默认的,可以进行点对点的传输),fanout、topic、headers,不同类型的exchange转发消息的策略有所区别
  5. Queue:消息队列,用来保存消息,也是消息的终点。消息会一直在队列里直到消费者链接到这个队列将消息取走;交换器根据消息的路由键将消息路由到对应的消息队列,Exchange和Queue是多对多的关系
  6. Binding:绑定,用于消息队列和Exchange之间的关联;一个绑定就是路由键将交换器和队列连接起来的路由规则,所以交换器可以理解为一个由绑定规则构建的路由表
  7. Connection:网络链接,如一个TCP连接
  8. Channel:信道,一条独立的双向数据流通道,是建立在TCP连接内的虚拟连接,AMQP的消息都是通过信息发送,因为对于操作系统来说建立销毁一条TCP连接都需要消耗资源,所以引入信道,以复用一条TCP连接
  9. Consumer:消息消费者,一个从消息队列中取得消息的客户端应用
  10. Virtual Host:虚拟主机,表示一批交换器、消息队列和相关对象;虚拟主机是共享身份认证和加密环境的服务器域;每个虚拟主机都是一个mini版的RabbitMQ的服务器,拥有自己的 交换器、队列、绑定、权限机制。虚拟主机是AMQP的基础,必须在连接时指定,默认的是 “/”
  11. Broker:消息队列服务器实体

之间的关系

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值