- Producer:生产者,投递消息的一方。
- Conumer: 消费者,就是接收消息的一方。
- Broker: 消息中间件的服务节点.
- Queue: 队列,是 RabbitMQ 的内部对象,用于存储消息。消息只能存储在队列中,多个消费者消费同一队列,消费会平均分摊。
- Exchange:消息投递到Exchange,有交换器将消息路由到一个或多个队列中,路由不到,丢弃或返回。
- RoutingKey:一般会指定一个 RoutingKey ,用来指定这个消息的路由规则,而这个 RoutingKey 需要与交换器类型和绑定键 (BindingKey)合使用才能最终生效。在交换器类型和绑定键 (BindingKey) 固定的情况下,生产者可以在发送消息给交换器时,通过指定 RoutingKey 来决定消息流向哪里。
- BInding:RabbitMQ中通过绑定将交换器与队列关联起来,在绑定的时候一般会指定一 绑定键 BindingKey ,这样 RabbitMQ 就知 何正确 将消息路由 队列了。
Exchange类型:
- fanout:会把所有发送到该交换器的消息投递到与该交换器绑定的队列中。
- direct:会把消息路由到那些BingdingKey和RoutingKey完全匹配的队列中。
- topic:将消息路由到 BindingKey RoutingKey 相匹配的队列中," ."分隔的字符串,"*"和"#",用于做模糊匹配。
- headers:根据发送的消息内容中的headers 属性进行匹配。在绑定队列和交换器时制定一组键值对,当发送消息到交换器时,
Rabbi tMQ 会获取到该消息的 headers (也是一个键值对的形式) ,对比其中的键值对 是否完全匹配队列和交换器绑定时指定的键值对,如果完全匹配则消息会路由到该队列,否则不会路由 到该队列。
exchange参数
- exchange 交换器的名称。
- type 交换器的类型,常见的如 fanout direct topic 详情参见 2. 1. 节。
- durable: 设置是否持久 durab 设置为 true 表示持久化, 反之是非持久 。持久化