rabbitmq一---一對一發送及接收訊息
阿新 • • 發佈:2019-01-09
一:概念
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 + "'"); }