rabbitMq第四种模型--direct
生活随笔
收集整理的這篇文章主要介紹了
rabbitMq第四种模型--direct
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
在Fanout模式中,一條消息,會被所有訂閱的隊列都消費。
但是,在某些場景下,我們希望不同的消息被不同的隊列消費。
這時就要用到Direct類型的Exchange。
在Direct模型下:隊列與交換機(jī)的綁定,不能是任意綁定了,
而是要指定一個RoutingKey(路由key)
消息的發(fā)送方在 向 Exchange發(fā)送消息時,
也必須指定消息的 RoutingKey。
Exchange不再把消息交給每一個綁定的隊列,
而是根據(jù)消息的Routing Key進(jìn)行判斷,
只有隊列的Routingkey與消息的 Routing key完全一致,
才會接收到消息
生產(chǎn)者
消費者1
package com.zuoan.routing;import com.rabbitmq.client.*; import com.zuoan.utils.RabbitMQUtils;import java.io.IOException;/*** @Description: TODO* @Author: 黃石軍* @CreateTime: 2022/4/10 15:32* @Company:*/ public class Consumer {public static void main(String[] args) throws IOException {Connection connection = RabbitMQUtils.getConnection("192.168.188.100");Channel channel = connection.createChannel();//聲明交換機(jī)以及交換類型channel.exchangeDeclare("logs_routing","direct");//創(chuàng)建臨時隊列String queue = channel.queueDeclare().getQueue();//基于路由key綁定隊列和交換機(jī)channel.queueBind(queue,"logs_routing","error");//消費消息channel.basicConsume(queue,true,new DefaultConsumer(channel){@Overridepublic void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {System.out.println("消費者2"+new String(body));}});} }消費者2
package com.zuoan.routing;import com.rabbitmq.client.*; import com.zuoan.utils.RabbitMQUtils;import java.io.IOException;/*** @Description: TODO* @Author: 黃石軍* @CreateTime: 2022/4/10 15:31* @Company:*/ public class Consumer1 {public static void main(String[] args) throws IOException {Connection connection = RabbitMQUtils.getConnection("192.168.188.100");Channel channel = connection.createChannel();channel.exchangeDeclare("logs_routing","direct");//創(chuàng)建臨時隊列String queue = channel.queueDeclare().getQueue();//臨時隊列綁定交換機(jī)channel.queueBind(queue,"logs_routing","info");channel.queueBind(queue,"logs_routing","error");channel.queueBind(queue,"logs_routing","waring");//消費消息channel.basicConsume(queue,true,new DefaultConsumer(channel){@Overridepublic void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {System.out.println("消費者1"+new String(body));}});} }根據(jù)工具類在我博客分類MQ第一章里
https://blog.csdn.net/weixin_45886609/article/details/124064801
總結(jié)
以上是生活随笔為你收集整理的rabbitMq第四种模型--direct的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。