队列
Queue:队列,是Rabbitmq的内部对象,用于存储消息。
多个消费者可以订阅同一个队列,这时队列中的消息会被平均分摊(Round-Robin,即轮询)
Queue中的消息会被Consumer1和Consumer2轮番消费。
交换机
交换机:即生产者把消息发送到队列的桥梁。
交换机常用的交换机类型有fanout、direct、topic、headers四种。
-
fanout:会把所有发送到交换机信息都路由到与该交换机绑定的队列中。
-
direct:会根据消息的RoutingKey,完全匹配对应交换机与队列的BindingKey,让然后发送到对应的队列。
-
topic:也是,RoutingKey和BindingKey的匹配,不过是模糊匹配。他们都是为点号“.”分割的字符串,但是BindingKey可以有两个特殊字符,*(匹配一个单词)和#(0个、1个或者多个)。
- headers(基本不用):headers类型的交换机不依赖路由键的匹配规则来路由信息,而是根据发送的消息内容中的headers属性进行匹配。
知是行之始,行是知之成