RabbitMQ学习笔记(3)---名词说明

1.vhost(虚拟主机)

虚拟主机相当于一个隔离的空间,多个虚拟主机可以对不同的用户,不同的作用分割开来

2.Producer(生产者)

生产者就是消息的生产者

3.Consumer(消费者)

消费者指的是消费消息

4.Queue(队列)

队列为存储消息的容器,用于消息存储的缓冲

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

5.channel (通道)

几乎所有的操作都在channel中进行,channel是进行消息读写的通道。客户端可建立多个channel,每个channel代表一个会话任务

6.Massage (消息)

由producer生产出来,每个消息都有一个路由键(routing key)的属性。就是一个简单的字符串

7.Broker (队列服务器)

消息队列服务器实体

8.Connection (连接)

应用程序与broker的网络连接

9.Binding (绑定)

一个绑定就是基于路由键将交换机和队列连接起来的路由规则,所以交换机不过就是一个由绑定构成的路由表。Exchange和Queue的绑定可以是多对多的关系.
举例:一个具有路由键“key1”的消息要发送到两个队列,queueA和queueB。要做到这点就要建立两个绑定,每个绑定连接一个交换机和一个队列。两者都是由路由键“key1”触发,这种情况,交换机会复制一份消息并把它们分别发送到两个队列中。

10.Exchange (交换机)

Exchange类似于数据通信网络中的交换机,提供消息路由策略。Rabbitmq中,Producer不是通过信道(channel)直接将消息发送给queue,而是先发给Exchange。一个Exchange可以和多个queue进行绑定,Producer在传递消息的时候,会传递一个Routing_KEY,Exchange会根据这个ROUTING_KEY按照特定的路由算法,将消息路由给指定的queue。和Queue一样,Exchange也可以设置为持久化,临时或者自动化
Exchange有4种类型:direct(默认),fanout,topic和headers,不同类型的Exchange转发消息的策略有所区别:

  • Direct
    直接交换器,工作方式类似于单播,Exchage会将消息发送完全匹配的ROUTING_KEY的Queue
  • fanout
    广播式交换器,不管消息的ROUTING_KEY设置为 什么,Exchange都会将消息转发给所有绑定的Queue
  • topic
    主题交换器,工作方式类似于组播,Exchange会将消息转发给ROUTING_KEY匹配模式相同的所有队列,比如,ROUTING_KEY为user.stock的Message会转发给绑定匹配模式为 .stock.user.stock, * . 和#.user.stock#的队列 (*表示匹配一个任意的词组,#表示匹配0个或多个词组)
  • headers
    首部交换机是忽略routing_key的一种路由方式。路由器和交换机路由的规则是通过Headers信息来交换的,这个有点像HTTP的Headers。将一个交换机声明成首部交换机,绑定一个队列的时候,定义一个Hash的数据结构,消息发送的时候,会携带一组hash数据结构的信息,当Hash的内容匹配上的时候,消息就会被写入队列。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,225评论 19 139
  • 来源 RabbitMQ是用Erlang实现的一个高并发高可靠AMQP消息队列服务器。支持消息的持久化、事务、拥塞控...
    jiangmo阅读 10,427评论 2 34
  • 什么叫消息队列 消息(Message)是指在应用间传送的数据。消息可以非常简单,比如只包含文本字符串,也可以更复杂...
    lijun_m阅读 1,376评论 0 1
  • 1. 历史 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的...
    高广超阅读 6,142评论 3 51
  • 1 RabbitMQ安装部署 这里是ErLang环境的下载地址http://www.erlang.org/down...
    Bobby0322阅读 2,293评论 0 11