rabbitmq的概念及作用

a 夏天 提交于 2020-03-01 05:00:12

基本概念

Broker

容器: 它提供一种传输服务,它的角色就是维护一条从生产者到消费者的路线,保证数据能按照指定的方式进行传输,

关系

“exchange”接收发布应用程序发送的消息,并根据一定的规则将这些消息路由到“消息队列”。
“message queue”存储消息,直到这些消息被消费者安全处理完为止。
“binding”定义了exchange和message queue之间的关联,提供路由规则。

Exchange 和 Routing_Key

交换器,根据类型自带规则,一般和Queue配合。

Exchange的类型表格:

类型 名称xxxxxxxxx 描述
Direct Exchange 直接匹配 通过Exchange名称+RountingKey来发送与接收消息.
Fanout Exchange 广播订阅 向所有的消费者发布消息,但是只有消费者将队列绑定到该路由器才能收到消息,忽略Routing Key.
Topic Exchange 主题订阅 根据Routing_Key的规则匹配消息,可以使用通配符:
* 匹配任意单词
# 匹配单个或多个单词
Headers Exchange 消息头订阅 用的不多,略

Queue

队列,也就是消息载体

Queue 和 AnonymousQueue 的区别

都是Queue的2种实现。
Queue默认值:

durable: true  # 会持久化
exclusive: false # 不排他
autoDelete: false # 不自动删除

AnonymousQueue默认值:

durable: false # 不持久化
exclusive: true # 排他
autoDelete: true # 会自动删除

Binding

绑定交换器和队列,中间是否用routing_key和交换器类型有关。
一个交换器可以对应多个队列,一个队列也可以对应多个交换器。

vhost

虚拟主机,一个broker里可以有多个vhost,用作不同用户的权限分离。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!