RabbitMQ仲裁队列段文件填满磁盘空间

RabbitMQ仲裁队列段文件填满磁盘空间,rabbitmq,segment,quorum,Rabbitmq,Segment,Quorum,我们的问题是RabbitMQ正在用与仲裁队列相关的段文件填充磁盘空间。实际上我们没有集群(quorum\u cluster\u size=1) 导致问题的队列来自通过Spring/RabbitMQ JMS连接到RabbitMQ服务器的客户端。 由于sessionTransacted为true,客户端使用的消息在收到后立即由autoAck确认,并且在完成消息处理后,事务被提交。 RabbitMQ保持以或多或少相等的间隔写入段文件,即使队列上没有流量 客户端在Spring中配置: <bean

我们的问题是RabbitMQ正在用与仲裁队列相关的段文件填充磁盘空间。实际上我们没有集群(quorum\u cluster\u size=1)

导致问题的队列来自通过Spring/RabbitMQ JMS连接到RabbitMQ服务器的客户端。 由于sessionTransacted为true,客户端使用的消息在收到后立即由autoAck确认,并且在完成消息处理后,事务被提交。 RabbitMQ保持以或多或少相等的间隔写入段文件,即使队列上没有流量

客户端在Spring中配置:

<bean id="y_listenerContainerMedium" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
    <property name="autoStartup" value="false"/>
    <property name="concurrentConsumers" value="1"/>
    <property name="connectionFactory" ref="jmsRmqConnectionFactory"/>
    <property name="destination" ref="y_queue_inbound_m"/>
    <property name="messageListener" ref="y_messageListener"/>
    <property name="sessionTransacted" value="true"/>       
</bean>

<bean id="y_queue_inbound_m" class="com.rabbitmq.jms.admin.RMQDestination" >
    <property name="destinationName" value="${y.jms.q.name.inbound.medium}" />
    <property name="amqp"            value="true" />
    <property name="amqpQueueName"   value="${y.jms.q.name.inbound.medium}" />
</bean>
  
<bean id="jmsRmqConnectionFactory" class="com.our.db.v2.jms.OurRMQConnectionFactory" >
    <property name="username" value="${username}" />
    <property name="password" value="${pw}" />
    <property name="virtualHost" value="${vhost}" />
    <property name="host" value="${host}" />
    <property name="port" value="5671" /> 
    <property name="tls" value="true" /> 
    <!--  DeadLetter Handling on the Queue -->
    <property name="requeueOnMessageListenerException" value="true" /> 
    <!-- Allow Message Processing upto 12h -->
    <property name="onMessageTimeoutMs" value="43200000" /> 
  </bean>

  public class OurRMQConnectionFactory extends RMQConnectionFactory {
    public void setTls(boolean tls) throws Exception{
        if(tls) {
            super.useSslProtocol(SSLContext.getDefault());
        }
    }
  }
  

公共类OurRMQConnectionFactory扩展了RMQConnectionFactory{
public void settles(布尔tls)引发异常{
如果(tls){
super.useSslProtocol(SSLContext.getDefault());
}
}
}
客户:
Microsoft Windows Server 2012 R2
jdk1.8.0_202
spring-jms-4.3.20.发行版
rabbitmq-jms-2.1.1
amqp-client-5.9.0

服务器:
Red Hat Enterprise Linux 7.8
RabbitMQ 3.8.8

erlang-23.0.3-1.el7

你知道为什么会发生这种情况吗?