|
@@ -0,0 +1,54 @@
|
|
|
+package com.sf.handle;
|
|
|
+
|
|
|
+import com.rabbitmq.client.*;
|
|
|
+import com.sf.util.MqUtils;
|
|
|
+
|
|
|
+import java.io.IOException;
|
|
|
+import java.util.Scanner;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 对于消息的持久化而言
|
|
|
+ * 需要队列时持久化的 同时消息时持久化的
|
|
|
+ */
|
|
|
+public class ProducerBak {
|
|
|
+
|
|
|
+ private final static String QUEUE_NAME = "queue_demo3";
|
|
|
+ private final static String EXCHANGE_NAME = "exchange_demo3";
|
|
|
+
|
|
|
+ private final static String ROUNTING_KEY = "routing_key_demo";
|
|
|
+
|
|
|
+ public static void main(String[] args) throws Exception {
|
|
|
+ Channel channel = MqUtils.getChannel();
|
|
|
+ // 交换机的持久化
|
|
|
+// channel.exchangeDeclare(EXCHANGE_NAME, BuiltinExchangeType.DIRECT,
|
|
|
+// true, false, null);
|
|
|
+ channel.exchangeDeclare(EXCHANGE_NAME, BuiltinExchangeType.DIRECT);
|
|
|
+ // 队列的持久化 是在声明队列时
|
|
|
+ boolean durable = true;
|
|
|
+// channel.queueDeclare(QUEUE_NAME, durable, false, false, null);
|
|
|
+ channel.queueDeclare(QUEUE_NAME, false, false, false, null);
|
|
|
+ channel.queueBind(QUEUE_NAME, EXCHANGE_NAME, ROUNTING_KEY);
|
|
|
+
|
|
|
+ // 接收消息回退的监听
|
|
|
+ channel.addReturnListener(new ReturnListener() {
|
|
|
+ @Override
|
|
|
+ public void handleReturn(int replyCode, String replyText, String exchange, String routingKey, AMQP.BasicProperties properties, byte[] body) throws IOException {
|
|
|
+ System.out.println(replyCode);
|
|
|
+ System.out.println(replyText);
|
|
|
+ System.out.println(exchange);
|
|
|
+ System.out.println(routingKey);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ Scanner scanner = new Scanner(System.in);
|
|
|
+ System.out.println("请输入消息:");
|
|
|
+ while (scanner.hasNext()) {
|
|
|
+ String message = scanner.next();
|
|
|
+ System.out.println(message);
|
|
|
+ // 如果只有队列是持久化 而消息不是持久化的 那消息也会丢失
|
|
|
+// channel.basicPublish(EXCHANGE_NAME, "", true,
|
|
|
+// MessageProperties.PERSISTENT_BASIC, message.getBytes());
|
|
|
+ channel.basicPublish(EXCHANGE_NAME, "", true, null, message.getBytes());
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|