RabbitMQ 的 路由模式【即交换机 exchange 的类型】

 

一:默认策略连接队列(default-direct)

RabbitMQ 的 路由模式【即交换机 exchange 的类型】_第1张图片 默认的策略:不用创建交换机 Exchange, 会使用默认的交换机轮流给消费者发送消息。当两个消费者都正常运行时,接收的消息数量是一样的。这是属于公平派遣模式,若需要设置竞争模式【即处理能力强的消费者处理的消息数量会多一些】,我们可以通过设置消费者代码 为 channel.basicQos(1)  。                                        模拟:向队列发送了四条消息,此时C1 和C2 会轮流收到 这四条

二:广播(Fanout Exchange)

RabbitMQ 的 路由模式【即交换机 exchange 的类型】_第2张图片 设置一个类型为广播(fanout)的交换机,图中的X。 当发送一条消息时,交换机会将这条消息广播给所有队列。 这时C1 和C2 都会收到这条消息。RabbitMQ 的 路由模式【即交换机 exchange 的类型】_第3张图片

三:直连交换机(Direct Exchange)

RabbitMQ 的 路由模式【即交换机 exchange 的类型】_第4张图片创建一个类型为direct的交换机,三个binding (图中的orange,black,green),消息只会被投入routing key 一致的队列中

四:主题交换机(Topic Exchange)

RabbitMQ 的 路由模式【即交换机 exchange 的类型】_第5张图片topic主题交换机通信,包括一个topic交换机,三个binding,两个队列,两个消费者监听器,消息只会被投入到routingkey能够匹配的队列中,#表示0个或若干个关键字,*表示一个关键字

 

你可能感兴趣的:(Java,消息队列专题,MQ,Rabbitmq,消息队列,队列)