rabbitMq基础

1.生产者可以推送消息到exchange或队列,而消费者只能从队列中消费消息。

 

2.exchange type共有四种类型:direct(routingkey直接匹配)、topic(routingkey模糊匹配),fanout(直接广播,不匹配),header(头部信息匹配)

direct:生产者推送消息时需指定消息的routingkey,推送到exchange后,exchange会根据消息的routingkey跟队列的routingkey匹配,完全匹配上了才会把消息分发到该队列。

topic:exchange根据routingkey进行匹配,不同的时队列定义routingkey时可以引入通配符 *(任意单个字符)和 #(任意多个字符)  。exchange收到消息后会进行模糊匹配,匹配上了才会把消息分发到该队列。

fanout:exchange不会根据routingkey匹配队列,而是直接分发消息到绑定该exchange的所有队列。

header:exchange不跟据routingkey匹配队列,而是根据队列定义时的头部信息去匹配分发。

 

3.rabbitmq使用模式

简单模式:一个生产者对应一个消费者(生产者直接推送到队列)

work模式:一个生产者多个消费者竞争消息(生产者直接推送到队列,一个队列多个消费者监听)。

订阅模式:一个exchange(fanout模式),多个队列绑定到该exchange(生产者推送消息到exchange)。

路由模式:一个exchange(direct模式),多个队列绑定到该exchange,生产者推送消息到exchange,exchange根据routingkey完全匹配分发消息。

通配符模式:一个exchange(topic模式),多个队列绑定到该exchange,生产者推送消息到exchange,exchange根据routingkey模糊匹配分发消息。

 

4.消息消费的两种模式 

自动模式:消费者从消息队列获取消息后,服务端就认为该消息已经成功消费。

手动模式:消费者从消息队列获取消息后,服务端并没有标记为成功消费,消费者成功消费后需要将状态返回到服务端。

posted on 2019-06-25 10:08  javaGreenHand。。。  阅读(78)  评论(0)    收藏  举报