|
@@ -0,0 +1,57 @@
|
|
|
+package com.sf.helloworld;
|
|
|
+
|
|
|
+import com.rabbitmq.client.*;
|
|
|
+
|
|
|
+import java.io.IOException;
|
|
|
+
|
|
|
+public class Consumer {
|
|
|
+
|
|
|
+ public static void main(String[] args) throws Exception {
|
|
|
+ ConnectionFactory factory = new ConnectionFactory();
|
|
|
+ factory.setHost("127.0.0.1");
|
|
|
+ factory.setPort(5672);
|
|
|
+ factory.setUsername("guest");
|
|
|
+ factory.setPassword("guest");
|
|
|
+ Connection connection = factory.newConnection();
|
|
|
+ // 连接要被复用 通过连接要得到通道
|
|
|
+ Channel channel = connection.createChannel();
|
|
|
+ // 如果队列已经存在 再次声明(使用相同的参数) 不会有任何操作
|
|
|
+ // 如果队列已经存在 再次声明(使用不同的参数) 会有报错
|
|
|
+ channel.queueDeclare("hello1", false, false,
|
|
|
+ false, null);
|
|
|
+// DeliverCallback deliverCallback = new DeliverCallback() {
|
|
|
+// @Override
|
|
|
+// public void handle(String consumerTag, Delivery message) throws IOException {
|
|
|
+// // 消费者标记 传递的内容
|
|
|
+// String body = new String(message.getBody());
|
|
|
+// // 消息的标记
|
|
|
+// long deliveryTag = message.getEnvelope().getDeliveryTag();
|
|
|
+// System.out.println(deliveryTag);
|
|
|
+// System.out.println(body);
|
|
|
+// }
|
|
|
+// };
|
|
|
+ DeliverCallback deliverCallback = (String consumerTag, Delivery message) -> {
|
|
|
+ // 消费者标记 传递的内容
|
|
|
+ String body = new String(message.getBody());
|
|
|
+ // 消息的标记
|
|
|
+ long deliveryTag = message.getEnvelope().getDeliveryTag();
|
|
|
+ System.out.println(deliveryTag);
|
|
|
+ System.out.println(body);
|
|
|
+
|
|
|
+ };
|
|
|
+// CancelCallback cancelCallback = new CancelCallback() {
|
|
|
+// @Override
|
|
|
+// public void handle(String consumerTag) throws IOException {
|
|
|
+// System.out.println(consumerTag);
|
|
|
+// }
|
|
|
+// };
|
|
|
+ CancelCallback cancelCallback = consumerTag -> {
|
|
|
+ System.out.println(consumerTag);
|
|
|
+ };
|
|
|
+// CancelCallback cancelCallback1 = System.out::println;
|
|
|
+ // 队列名 是否自动应答 回调接口(如何消费消息) 取消回调
|
|
|
+ channel.basicConsume("hello1", true, deliverCallback, cancelCallback);
|
|
|
+// channel.close();
|
|
|
+// connection.close();
|
|
|
+ }
|
|
|
+}
|