rabbitMq详解
RabbitMq是基于Amqp(Advanced Message Queuing Protocol,高级消息队列协议)实现的 Amqp协议有以下几个需要了解的概念: Virtual Host。一个Virtual Host可对应多个交换机多个队列,意思就是多一层分割,可以将应用通过虚拟主机分开。 Publisher:消息的提供者,通过交换机根据路由键将消息发送到队列中。 Exchange:交换器,用来做一层路由的功能,通过路由键的绑定信息,发送消息到相应的队列。(发送的方式也是有很多种,direct( 只根据对应的路由键发送给对应的队列 。),topic( 也是根据路由键发送,但是可以匹配正则表达式,即可以发送给多个经过筛选的队列 ),fanout( 广播模式,将消息发送到所有的对应的队列之下 )) Routing key:路由键,用来绑定交换器和队列,代表着一个路径。 Bindings: 绑定信息,通过路由键实现 Message Queue: 队列,最终存储消息的位置。 Consumer:订阅队列,获取消息,可订阅多个队列。 回调机制: 如果消息到达了交换机,可以通过RabbitTemplate.ConfirmCallback的方法,如果消息达到了,就会回调一个true的ACK,如果没到达,返回false的ACK,如果消息到达了交换机 final RabbitTemplate