ActiveMQ блокируется, когда память используется на 100% - PullRequest
0 голосов
/ 24 апреля 2020

У меня настроено 2 очереди в брокере ActiveMQ. Требуется проверить, работает ли управление потоком производителей и что производители для обеих очередей останавливаются, когда нет памяти. Как только происходит событие, сообщения начинают ставиться в очередь в обеих очередях, но все останавливается после того, как память достигает 100% (иногда это также более 100%, не знаю, как это возможно для постоянных сообщений). Память никогда не уменьшается со 100%, поэтому производители могут снова начать помещать сообщения в обе очереди.

<policyEntry queue=">" memoryLimit="1000MB" producerFlowControl="true"/>
    <systemUsage>
                <systemUsage>
                    <memoryUsage>
                        <memoryUsage percentOfJvmHeap="70" />
                    </memoryUsage>
                    <storeUsage>
                        <storeUsage limit="50MB"/>
                    </storeUsage>
                    <tempUsage>
                        <tempUsage limit="50MB"/>
                    </tempUsage>
                </systemUsage>
            </systemUsage>

Here is the screenshot of memory

Что-то не так с конфигурацией? Я хочу замедлить продюсера, когда память заполнена (в основном, перестать ставить в очередь) и снова запустить, когда память свободна. Почему память не становится свободной? Есть ли способ замедлить очереди производителей даже до того, как память заполнится, если в очереди уже достаточно элементов для удаления из очереди?

...