1. 程式人生 > >rabbitmq一---一對一發送及接收訊息

rabbitmq一---一對一發送及接收訊息

一:概念

        rabbitmq是一個訊息經紀人,它可以接收和傳送訊息

        角色分為訊息的生產者(傳送者)、佇列、訊息的消費者(接收者)

二:公共程式碼

ConnectionFactory factory =  ConnectionFactory();   //建立連線工廠
factory.setHost("localhost");   //設定伺服器IP
Connection connection = factory.newConnection(); //ConnectionFactory建立連線     
Channel channel = connection.createChannel();   //建立通道
channel.queueDeclare(QUEUE_NAME, false, false, false, null);  //定義佇列(佇列名稱、佇列是否持久化、是否是此連線的唯一佇列、是否自動刪除此佇列、佇列其他屬性)
二:練習

1:一對一

傳送端程式碼:

String message = "Hello World!";
channel.basicPublish("", QUEUE_NAME, null, message.getBytes());//傳送(使用預設交換機,routing-key,其他屬性的訊息,訊息體)
channel.close();
connection.close();
接收端程式碼:
QueueingConsumer consumer = new QueueingConsumer(channel);
channel.basicConsume(QUEUE_NAME, true, consumer);  //接收(佇列名稱,自動回覆,回撥)
while (true) { 
    QueueingConsumer.Delivery delivery = consumer.nextDelivery();  //得到交付
    String message = new String(delivery.getBody()); //得到交付的訊息
    System.out.println(" [x] Received '" + message + "'");  
}