Buscando ayuda sobre la configuración del sistema y la configuración de destinationPolicy ya que tengo algunas dificultades para entender completamente la relación entre systemUsage, destinationPolicy y control de flujo.ActiveMQ destinationPolicy y SystemUsage Configuration
Todos nuestros mensajes son persistentes! producerFlowControl está activado.
Le damos a ActiveMQ un espacio máximo de almacenamiento de 512MB.
Nuestra systemUsage se establece de la siguiente manera:
<systemUsage>
<systemUsage>
<memoryUsage>
<memoryUsage limit="200 mb"/>
</memoryUsage>
<storeUsage>
<storeUsage limit="10 gb"/>
</storeUsage>
<tempUsage>
<tempUsage limit="1000 mb"/>
</tempUsage>
</systemUsage>
</systemUsage>
Nuestra política de destino de la siguiente manera:
<destinationPolicy>
<policyMap>
<policyEntries>
<policyEntry topic=">" producerFlowControl="true" memoryLimit="1mb">
<pendingSubscriberPolicy>
</pendingSubscriberPolicy>
</policyEntry>
<policyEntry queue=">" producerFlowControl="true" memoryLimit="1mb">
</policyEntry>
</policyEntries>
</policyMap>
</destinationPolicy>
¿Alguien puede verificar el si el siguiente es correcta:
Esto significa que para cada cola individual/tema el límite de memoria es 1MB. ¿Qué sucede exactamente cuando se golpea este 1MB, bloquea la cola para los productores o hace una página al disco?
La memoria total permitida para todas las colas y temas es de 200 MB. Lo que significa que podríamos tener 200 canales operando a su capacidad máxima de 1MB. Actualmente tenemos 16 colas y temas en total, por lo que obviamente nunca se alcanza.
¿Es mejor eliminar la entrada de política individual en el límite de memoria y compartir la memoria entre los distintos canales?
Si hacemos esto ¿en qué punto bloquearían?
Cualquier ayuda muy apreciada! ¿Puede pagarle un poco de dinero de cerveza?
Como nota, si alcanza un límite de memoria, la cola también aparece "vacía" para los consumidores que han realizado la transacción, hasta que otra persona libere espacio. Además, los cursores solo son útiles básicamente para "almacenar mensajes no persistentes si te quedas sin memoryLimit", ¿verdad? – rogerdpack