Producer:消息的生产者;相当于分布式架构中的消费端;
Consumer:消息的消费者;相当于分布式架构中的服务端;
2)Queue:
消息队列,提供了 FIFO 先进先出的处理机制,具有缓存消息的能力。RabbitMQ 中,队列消息可以设置为持久化,临时或者自动删除;
设置为持久化的队列,Queue 中的消息会在 Server 本地硬盘存储一份,防止系统 Crash,数据丢失;
设置为临时队列,Queue 中的数据在系统重启之后就会丢失;
设置为自动删除的队列,当不存在用户连接到 Server,队列中的数据会被自动删除;
3)ExChange:
4)ExChange 的 4 种类型:
direct(默认):直接交换器,工作方式类似于单播,ExChange 会将消息发送完全匹配 ROUTING_KEY 的 Queue(key 就等于 queue)
fanout:广播是式交换器,不管消息的 ROUTING_KEY 设置为什么,ExChange 都会将消息转发给所有绑定的 Queue(无视 key,给所有的 queue 都来一份)
topic:主题交换器,工作方式类似于组播,ExChange 会将消息转发和 ROUTING_KEY 匹配模式相同的所有队列(key 可以用“宽字符”模糊匹配 queue),比如,ROUTING_KEY 为 user.stock
的 Message 会转发给绑定匹配模式为 * .stock,user.stock
, * . *
和 #.user.stock.#
的队列。( * 表是匹配一个任意词组,# 表示匹配 0 个或多个词组)
headers:消息体的 header 匹配,无视 key,通过查看消息的头部元数据来决定发给那个 queue(AMQP 头部元数据非常丰富而且可以自定义)
5)Binding:
所谓绑定就是将一个特定的 ExChange 和一个特定的 Queue 绑定起来。ExChange 和 Queue 的绑定可以是多对多的关系
6)Virtual Host
原文:https://www.cnblogs.com/Tractors/p/11341623.html