Ява — Хранить сообщение в памяти вместо JVM-ActiveMQ

Я работаю над ActiveMQ, где продюсер находится на PHP, а потребитель на JAVA. Я использую STOMP для подключения PHP к AMQ.
Всего отправлено 10000 сообщений.
Рассмотрим случай, когда подписчик JAVA не работает, то есть нет доступных потребителей, которые могли бы использовать сообщение.
При попытке этого случая в моей локальной системе после 3000 сообщений ActiveMQ выдает исключение Java.MemoryOutOfBound.

Поэтому я думаю о нескольких решениях:
1. Есть ли способ, с помощью которого ActiveMQ может хранить сообщения в KahaDB, а не в памяти?
2. Есть ли какие-либо системные настройки, которые я могу попробовать (я уже пытался увеличить размер кучи Java до 3 ГБ, я смог отправить 9000 сообщений, но после той же ошибки), Любые параметры ActiveMQ, которые можно включить или отключить, могут помочь.
3. Есть ли лучшее решение, чем те, о которых я думал?

-1

Решение

Изучив документы ActiveMQ, вы можете переключить своего брокера на сохранение, используя конфигурацию покупки KahaDB

<broker brokerName="broker" ... >
<persistenceAdapter>
<kahaDB directory="activemq-data" journalMaxFileLength="32mb"/>
</persistenceAdapter>
...
</broker>

Есть много вариантов, которые вы можете применить для настройки в соответствии с вашим сценарием, посмотрите на

http://activemq.apache.org/kahadb.html

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector