Как настроить OpenMQ, чтобы не хранить все бортовые сообщения в памяти? - PullRequest
2 голосов
/ 26 декабря 2011

Я загружаю тестирование различных реализаций JMS для нашего сервиса уведомлений.Никто из ActiveMQ, HornetQ и OpenMQ не ведет себя так, как ожидалось (проблемы с надежностью и установлением приоритетов сообщений).Но, как и сейчас, у меня лучшие результаты с OpenMQ.Ожидайте две проблемы, которые, вероятно, просто неправильно настроены (я надеюсь).Один с хранилищем JDBC

Тестовый сценарий:

2 производителя с одной очередью отправляют сообщения с различным приоритетом.1 потребитель потребляет из очереди с постоянной скоростью, которая немного ниже, чем производят производители.OpenMQ работает автономно и использует PostgreSQL в качестве постоянного хранилища.Все сообщения отправляются и используются по маршруту Apache Camel, и все они постоянны.

Проблемы:

  1. После примерно 50000 сообщений я вижу предупреждения и ошибки в журнале OpenMQо нехватке памяти (cinfiguration по умолчанию с размером кучи 256Mb).Брокер выпускает продукцию, и через некоторое время брокер вообще прекращает ее отправку.Максимальное использование памяти JVM у брокера.

Как настроить брокера для достижения этой цели:

  • Брокер не зависит от размера очереди (до 1 000 000 msgs) и при ограничении памяти.Производительность не проблема - только надежность.

Это возможно?

1 Ответ

0 голосов
/ 27 декабря 2011

Я не могу помочь с OpenMQ, но, возможно, с Camel и ActiveMQ.С какими проблемами вы сталкиваетесь с ActiveMQ?Можете ли вы опубликовать свой верблюжий маршрут и, в конечном итоге, контекст весны и конфигурацию activemq?

...