以下のコードを使用して、hello world RabbitMQ の例を実行しています。
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.Channel;
public class Send {
private final static String QUEUE_NAME = "hello";
public static void main(String[] argv) throws java.io.IOException {
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
channel.queueDeclare(QUEUE_NAME, false, false, false, null);
String message = "Hello World!";
channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
System.out.println(" [x] Sent '" + message + "'");
channel.close();
connection.close();
}
}
と:
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.QueueingConsumer;
public class Recv {
private final static String QUEUE_NAME = "hello";
public static void main(String[] argv)
throws java.io.IOException,
java.lang.InterruptedException {
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
channel.queueDeclare(QUEUE_NAME, false, false, false, null);
System.out.println(" [*] Waiting for messages. To exit press CTRL+C");
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 + "'");
}
}
}
受信者を実行すると、キューをリッスンし、送信者はメッセージを送信していると言いますが、閉じていないようです。次に実行します:
rabbitmqctl list_queues
キューは間違いなく作成されています。
しかし、私が実行すると:
rabbitmqctl list_connections
次の出力が得られます
benuni@DeShawn:~$ sudo rabbitmqctl list_connections
ls: cannot access /etc/rabbitmq/rabbitmq.conf.d: No such file or directory
Listing connections ...
guest 127.0.0.1 64700 blocked
guest 127.0.0.1 64709 blocked
guest 127.0.0.1 64614 blocked
guest 127.0.0.1 64716 blocked
guest 127.0.0.1 64717 blocked
guest 127.0.0.1 64701 blocked
guest 127.0.0.1 64699 blocking
guest 127.0.0.1 64613 blocking
guest 127.0.0.1 64708 blocking
guest 127.0.0.1 64718 blocked
guest 127.0.0.1 64706 blocked
...done.
SO 何らかの理由で rabbitmq サーバーが接続をブロックしていますか? 誰かが私が何をする必要があるか知っていますか? ありがとう、ベン