rabbitmq三---將所有消息發給每個消費者

1:概念

exchange類型:direct(路由規則),topic(),headers(),fanout(發佈訂閱---發送端羣發,接收端(全收)綁定)

2:代碼

發送端:

channel.exchangeDeclare(EXCHANGE_NAME, "fanout");//聲明Exchange
for (int i = 0; i <= 2; i++) {  
    String message = "hello word!" + i;  
    channel.basicPublish(EXCHANGE_NAME, "", null, message.getBytes());  //fanout的情況下,隊列爲默認,
    System.out.println(" [x] Sent '" + message + "'");  
}  
channel.close();  
connection.close();

接收端1:

channel.exchangeDeclare(EXCHANGE_NAME, "fanout");  
String queueName = "log-fb1";  //隊列1名稱
channel.queueDeclare(queueName, false, false, false, null);  
channel.queueBind(queueName, EXCHANGE_NAME, "");//把Queue、Exchange綁定
QueueingConsumer consumer = new QueueingConsumer(channel);  
channel.basicConsume(queueName, true, consumer);  
while (true) {  
     QueueingConsumer.Delivery delivery = consumer.nextDelivery();  
     String message = new String(delivery.getBody());  
     System.out.println(" [x] Received '" + message + "'");  
} 
接收端2:
channel.exchangeDeclare(EXCHANGE_NAME, "fanout");  
String queueName = "log-fb2";  //隊列2名稱
channel.queueDeclare(queueName, false, false, false, null);  
channel.queueBind(queueName, EXCHANGE_NAME, "");//把Queue、Exchange綁定
QueueingConsumer consumer = new QueueingConsumer(channel);  
channel.basicConsume(queueName, true, consumer);  
while (true) {  
     QueueingConsumer.Delivery delivery = consumer.nextDelivery();  
     String message = new String(delivery.getBody());  
     System.out.println(" [x] Received '" + message + "'");  
}

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章