Размер журнала ActiveMQ - PullRequest
7 голосов
/ 30 мая 2011

Я использую ActiveMQ 5.3.0 (скоро я собираюсь обновить до 5.4.2 или даже 5.5.0) с адаптером персистентности KahaDB.Он имеет 7 очередей, которые в большинстве случаев пусты, то есть, когда сообщение помещается в очередь, оно расходуется в течение следующих 5-10 секунд.Однако объем передаваемых сообщений значительный (несколько тысяч сообщений в день).

Проблема в том, что каталог данных KahaDB заполнен многочисленными файлами db-X.log (где X - целое число).Каждый файл имеет размер 32 МБ и (так как я использую конфигурацию по умолчанию), кажется, что это журналы повторов журналов (потому что длина файла журнала по умолчанию составляет 32 МБ).Они занимают ценное пространство (KahaDB размещается на томе SSD) и кажутся избыточными, поскольку мне кажется, что журналы журнала содержат старые (то есть снятые с производства) сообщения.

Итак, вопрос в том, как избавитьсяжурнальных файлов журнала?Я просто хочу, чтобы KahaDB хранил только ожидающие сообщения.

Как я уже говорил, конфигурация в значительной степени задана по умолчанию.Для элемента Broker установлены только атрибуты brokerName и dataDirectory, а для kahaDB - только атрибуты каталога.

Ответы [ 2 ]

3 голосов
/ 16 июня 2011

Если вы используете настройки по умолчанию, то это должно работать уже.Единственная причина, по которой эти файлы останутся, это если у вас медленный потребитель, и сообщения копируются, и т.д ...

Атрибут «cleanupInterval» контролирует, как часто эти файлы очищаются.По умолчанию это 30 с ... вот пример, который устанавливает его на 5 секунд (и уменьшает размер журнала до 100 КБ для упрощения тестирования)

<kahaDB directory="${activemq.base}/data/kahadb" 
        journalMaxFileLength="100kb" 
        cleanupInterval="5000"/>
1 голос
/ 01 июня 2011

Обновите до 5.5.0, чтобы получить исправление для AMQ-2736 .

...