002 MQ框架_RabbitMQ核心概念

1. AMQP协议模型

2.RabbitMQ架构核心概念

ConnectionFactory、Connection、Channel、Server

        ConnectionFactory、Connection、Channel都是RabbitMQ对外提供的API中最基本的对象。Connection是RabbitMQ的socket链接,它封装了socket协议相关部分逻辑。ConnectionFactory为Connection的制造工厂。
        Channel是我们与RabbitMQ打交道的最重要的一个接口,大部分的业务操作是在Channel这个接口中完成的,包括定义Queue、定义Exchange、绑定Queue与Exchange、发布消息等,客户端可以jian建立多个Channel,每个Channel代表一个会话任务;server又称Broker,接受客户端的链接,实现AMQP实体服务;

Message

        消息,服务器和应用程序之间传送的数据,由Properties和Body组成,Properties可以对消息进行修饰,比如消息的优先级、延迟等高级特性;Body则为消息体内容;

Virtual host

        虚拟地址,用于进行逻辑隔离,最上层的消息路由;一个Virtual host里面可以有若干个Exchange和Queue,同一个Virtual host里面不能有相同名称的Exchange和Queue;

Exchange

        交换机,接收消息,根据路由键转发消息到绑定的队列;Exchange类似于数据通信网络中的交换机,提供消息路由策略;rabbitmq中,producer不是通过信道直接将消息发送给queue,而是先发送给Exchange;一个Exchange可以和多个Queue进行绑定,producer在传递消息的时候,会传递一个ROUTING_KEY,Exchange会根据这个ROUTING_KEY按照特定的路由算法,将消息路由给指定的queue;Exchange也可设置为持久化,临时或者自动删除;

Binding、routing key

        Exchange和Queue之间的虚拟连接,binding中可以包含routing key;routing key一个路由规则,虚拟机可以用它来确定如何路由一个特定的消息;

Queue

Message Queue消息队列,提供了FIFO的处理机制,具有缓存消息的能力。rabbitmq中,队列消息可以设置为持久化,临时或者自动删除。

  • 设置为持久化的队列,queue中的消息会在server本地硬盘存储一份,防止系统crash,数据丢失
  • 设置为临时队列,queue中的数据在系统重启之后就会丢失
  • 设置为自动删除的队列,当不存在用户连接到server,队列中的数据会被自动删除

Producer、Exchange、Binding、Queue、Consumer 之间的关系:

Routing Key、Binding Key、Exchange Type 的关系:

概念
Exchange    消息交换机,它指定消息按什么规则,路由到哪个队列
Queue    消息队列,每个消息都会被投入到一个或多个队列
Binding    绑定,它的作用就是把exchange和queue按照路由规则绑定起来
Routing Key    路由关键字,exchange根据这个关键字进行消息投递
Vhost    虚拟主机,可以开设多个vhost,用作不同用户的权限分离
Producer    消息生产者,就是投递消息的程序
Consumer    消息消费者,就是接受消息的程序
Channel    消息通道,在客户端的每个连接里,可建立多个channel,每个channel代表一个会话任务

3.RabbitMQ消息流转流程

消息流转:Publisher(消息生产者)绑定一个Exchange:E1(可以有多个),绑定的路由规则(routing key)为:123,Exchange:E1绑定了三个Message Queue:Q1,Q2,Q3,绑定的路由规则(routing key)分别为:123,456,789;Publisher发送消息首先进入Virtual host,然后进入绑定的E1匹配到路由规则(routing key)为123的Q1,并将消息加入到Q1队列中,Consumer(消息消费者)通过Q1获取消息;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值