Spring Boot 整合消息中间件 RabbitMQ
RabbitMQ 是消息中间件的一种,实现了 AMQP 标准。消息中间件的工作过程可以用生产者-消费者模型来表示。生产者发消息到消息队列中去,消费者监听指定的消息队列,并且当消息队列收到消息之后,接收消息队列传来的消息,并且给予相应的处理。消息队列常用于分布式系统之间互相信息的传递。 对于 RabbitMQ 来说,除了生产者、消息队列、消费者这三个基本模块以外,还添加了 交换机 (Exchange) 模块。它使得生产者和消息队列之间产生了隔离,生产者将消息发送给交换机,而交换机则根据调度策略把相应的消息转发给对应的消息队列。 交换机的主要作用是接收相应的消息并且绑定到指定的队列,有三种类型的交换机: 交换机 说明 direct 默认的交换机 (一对一)。即创建消息队列的时候,指定一个BindingKey,当生产者发送消息的时候,指定对应的Key,当Key和消息队列的BindingKey一致的时候,消息将会被发送到该消息队列中。 fanout 路由广播的形式,将会把消息发给绑定它的全部队列,即便设置了key,也会被忽略。生产者其实仅关注Exchange与Route Key, 消费者仅关注Queue topic Topic转发信息主要是依据通配符,队列和交换机的绑定主要是依据一种模式(通配符+字符串),而当发送消息的时候,只有指定的Key和该模式相匹配的时候