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) 收藏 举报
浙公网安备 33010602011771号