Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 消息甚至没有出现在RabbitMQ服务器上_Java_Rabbitmq_Producer Consumer - Fatal编程技术网

Java 消息甚至没有出现在RabbitMQ服务器上

Java 消息甚至没有出现在RabbitMQ服务器上,java,rabbitmq,producer-consumer,Java,Rabbitmq,Producer Consumer,在我的RabbitMQ应用程序中,生产者发送消息,但消费者只接收部分消息(不是最大的消息)。当我在终端中执行rabbitmqctl列表队列时,它显示: ~$ sudo rabbitmqctl list_queues Listing queues ... MdnaMessagesQueue 0 ...done. 这意味着消息在进入队列时丢失或很快从队列中取出。所以我不明白为什么会这样。我没有其他可以从该队列获取消息的应用程序。这是我的代码: public class Sender {

在我的RabbitMQ应用程序中,生产者发送消息,但消费者只接收部分消息(不是最大的消息)。当我在终端中执行rabbitmqctl列表队列时,它显示:

~$ sudo rabbitmqctl list_queues
Listing queues ...    
MdnaMessagesQueue   0
...done.
这意味着消息在进入队列时丢失或很快从队列中取出。所以我不明白为什么会这样。我没有其他可以从该队列获取消息的应用程序。这是我的代码:

public class Sender {
    private static final String QUEUE_NAME = "MdnaMessagesQueue";

    public void send(byte[] message) throws IOException {

        AMQP.BasicProperties.Builder bob = new AMQP.BasicProperties.Builder();
        AMQP.BasicProperties minBasic = bob.build();
        AMQP.BasicProperties minPersistentBasic = bob.deliveryMode(2).build();

        ExecutorService service = Executors.newFixedThreadPool(10);
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost("localhost");
        Connection connection = factory.newConnection(service);
        Channel channel = connection.createChannel();
        channel.queueDeclare(QUEUE_NAME, true, false, false, null);
        channel.basicPublish("", QUEUE_NAME, MessageProperties.PERSISTENT_TEXT_PLAIN, message);
        channel.close();
        connection.close();
    }
}

您是否尝试过使用管理插件。电脑重启后,这个问题就消失了,我再也没有遇到过。也许有一个进程一直在“吃掉”消息。也许你没有足够的磁盘空间?