Java RabbitMQ,为什么不';我的套接字描述符没有释放吗?

Java RabbitMQ,为什么不';我的套接字描述符没有释放吗?,java,spring-boot,rabbitmq,Java,Spring Boot,Rabbitmq,我的RabbitMQ服务器中有大约30个不同的队列和大约90个使用者(因为有些队列需要更多的使用者才能通过消息)。 我注意到我的套接字描述符计数继续增加。有大量的消息通过服务器传输,几乎总是每秒发送120条消息。我想知道谁没有松开插座。工人们从不“停止”,所以我认为这是信息的生产者 我使用JavaSpringBoot创建消息并处理消息 谁不放开插座?或者为什么它们只是不断增加?这是正常的行为吗 我在网上几乎找不到关于我“应该”看到什么的文档。 对于每个同时发布和传递,是否应该有一个套接字描述符

我的RabbitMQ服务器中有大约30个不同的队列和大约90个使用者(因为有些队列需要更多的使用者才能通过消息)。 我注意到我的套接字描述符计数继续增加。有大量的消息通过服务器传输,几乎总是每秒发送120条消息。我想知道谁没有松开插座。工人们从不“停止”,所以我认为这是信息的生产者

我使用JavaSpringBoot创建消息并处理消息

谁不放开插座?或者为什么它们只是不断增加?这是正常的行为吗

我在网上几乎找不到关于我“应该”看到什么的文档。 对于每个同时发布和传递,是否应该有一个套接字描述符

我使用的RabbitMQ版本是3.5.7

编辑

在启动服务器大约一小时内,套接字描述符计数显示大约500。它说有60k可用,所以我不需要很快重新启动它。我觉得它不应该(接近)需要重新启动

我通过查看RabbitMQ管理员来测量套接字计数,它表示套接字描述符的总数

这是我的一位制片人,每10分钟就会接到一次电话

public void checkDuplicates() {
    List<Order> orders = orderService.findOpenOrders();

    for (Order order : orders) {
        duplicateCheckRabbitTemplate.convertAndSend(order.getId());
    }
}
这是消费者

@Override
public byte[] handleMessage(byte[] message) {

    Long orderId = Long.parseLong(new String(message));
    service.getOrderService().updateOrder(orderId);

    return null;
}

听起来不正常。但是:增加多少/多快?如何测量套接字计数?您的发布代码在做什么,例如
rabbitmplate#someSendMethod
或其他什么?添加编辑以回答您的问题。谢谢
@Override
public byte[] handleMessage(byte[] message) {

    Long orderId = Long.parseLong(new String(message));
    service.getOrderService().updateOrder(orderId);

    return null;
}