Требуется некоторая помощь по настройке systemUsage и destinationPolicy, поскольку у меня возникают трудности с полным пониманием взаимосвязи между systemUsage, destinationPolicy и управлением потоком.
Все наши сообщения постоянны!продуцентFlowControl включен.
Таким образом, мы даем ActiveMQ, скажем, максимум 512 МБ кучи.
Наш systemUsage настроен следующим образом:
<systemUsage>
<systemUsage>
<memoryUsage>
<memoryUsage limit="200 mb"/>
</memoryUsage>
<storeUsage>
<storeUsage limit="10 gb"/>
</storeUsage>
<tempUsage>
<tempUsage limit="1000 mb"/>
</tempUsage>
</systemUsage>
</systemUsage>
Наша политика назначения указана ниже:
<destinationPolicy>
<policyMap>
<policyEntries>
<policyEntry topic=">" producerFlowControl="true" memoryLimit="1mb">
<pendingSubscriberPolicy>
</pendingSubscriberPolicy>
</policyEntry>
<policyEntry queue=">" producerFlowControl="true" memoryLimit="1mb">
</policyEntry>
</policyEntries>
</policyMap>
</destinationPolicy>
Может ли кто-нибудь проверить, верно ли следующее:
Это означает, что для каждой отдельной очереди / темы ограничение памяти составляет 1 МБ.Что именно происходит при попадании в этот 1 МБ, блокируется ли очередь для продюсеров или она записывается на диск?
Общий допустимый объем памяти для всех очередей и тем составляет 200 МБ.Это означает, что у нас может быть 200 каналов, работающих на полную емкость 1 МБ.В настоящее время у нас в общей сложности 16 очередей и тем, так что, очевидно, это никогда не будет достигнуто.
Нам лучше удалить отдельную запись политики в пределе памяти и распределить память между различными каналами?
Если мы сделаем это, в какой момент они заблокируют?
Любая помощь очень ценится!Может заплатить вам немного пива!