美文网首页
RabbitMQ学习笔记(3)---名词说明

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

作者: MR_Hanjc | 来源:发表于2016-10-03 12:22 被阅读73次

    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的内容匹配上的时候,消息就会被写入队列。

    相关文章

      网友评论

          本文标题:RabbitMQ学习笔记(3)---名词说明

          本文链接:https://www.haomeiwen.com/subject/chfjyttx.html