RabbitMQ实战运用(二)——RabbitMQ核心概念

RabbitMQ核心概念

介绍

RabbitMQ是一个由erlang语言开发的AMQP规范的开源实现。

核心概念

消息(Message)

消息是不具名的,它由消息头和消息体组成。消息体是不透明的,消息头则由一系列的可选属性组成。

生产者(Publisher)

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

消费者(Consumer)

消息的消费者,从队列中获取消息的客户端应用程序。

在这里插入图片描述

交换器(Exchange)

交换器用于接收生产者发送的消息,并根据消息(message)中的路由键(routing-key)路由到相应的队列中。
RabbitMQ中交换器有四种类型,不同类型交换器转发消息的策略有所不同。

消息队列(Queue)

用于临时保存消息,直到发送给消费者。它是消息的容器,也是消息的终点。一个消息可投入到一个或者多个队列,知道消费者连接这个队列将其取走。

绑定(Binding)

交换器与一个或多个消息队列之间的关联就是绑定
绑定是基于消息的路由键将交换器与消息队列关联起来的映射规则,因此可以将交换器视作由绑定组成的路由表。

连接(Connection)

就是连接,比如TCP。

信道(Channel)

信道(channel)是多路复用连接(connection)中一条独立的半双工数据通道。

信道是一条建立在真实TCP连接内的虚拟连接AMQP命令都是通过信道发送出去的,不管是发布消息、订阅队列等动作都是通过信道完成。

信道的存在是因为对于OS来说建立与销毁TCP连接是非常昂贵的开销,使得多条信道复用一条TCP连接

消息代理(Broker)

表示消息队列服务器实体。

虚拟主机(Virtual Host)

虚拟主机也称为vhost,vhost本质上就是一个mini版的rabbitmq服务器,它们拥有自己的队列、交换器、绑定和权限控制,而一个真实的rabbitmq服务器中可以存在多个vhost。

vhost的存在意义与mysql中的数据库有点类似,它让我们可以让每个项目都有一个独立的vhost。vhost是AMQP的基础,必须在连接时指定,而rabbitmq默认的vhost是/

结构图

在这里插入图片描述


工作流程

生产者通过相应的账户连接到对应的vhost,然后才可以将消息通过交换器发布到队列中;此时生产者的任务就完成了,然后消费者也通过账户连接到vhost,最后去队列中消费消息。

当然,rabbitmq支持多种消息模式,其中点对点模式消息是不需要经过交换器的,而是直接发布到队列。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值