Постоянное хранилище ActiveMQ для сообщений большого размера

Если производитель отправляет сообщение большого размера (скажем, 120 МБ). Как kahadb и levelDB обрабатывают такие сообщения.

kahadb: Насколько я понимаю, размер журнала по умолчанию составляет 32 МБ. и если я отправлю сообщение размером более 32 МБ, как он обработает такое сообщение? Нужно ли мне изменить этот размер на соответствующее значение в соответствии с размером сообщения?

leveldb: по умолчанию 100 МБ - это размер по умолчанию для хранения данных сообщения. После чего происходит прокатка. Если сообщение превышает 100 МБ. Как с этим справиться?

Спасибо,
ANuj


person Anuj Khandelwal    schedule 03.11.2014    source источник


Ответы (1)


Для Kahadb у нас есть скользящий журнал сообщений, сообщения и команды хранятся в файле данных фиксированной длины, если длина превышает размер журнала сообщений, создается новый файл. KahaDB просто добавляет новое сообщение в существующий журнал и заботится о создании нового журнала.

Кроме того, KahaDB хранит индексы сообщений в форме BTree. Эти индексы Btree содержат ссылки на сообщения в журналах данных, индексированные по их идентификатору сообщения. Короче говоря, KahaDB будет точно знать, где хранится ваше сообщение, с помощью этого индекса. никаких новых настроек для хранения этого сообщения не требуется

Что касается всего сообщения в одном файле журнала данных, я не уверен, что может потребоваться небольшое исследование, и прежде чем попытать счастья при изменении journalSizeLength для KahaDB, пожалуйста, прочтите это ссылка (чтение комментариев может быть полезным)

Удачи!

Надеюсь, это поможет.

person Vihar    schedule 03.11.2014
comment
Когда я тестировал, я вижу, что он не запускает журналы для одних и тех же сообщений. Вместо этого он сохраняет размер гибкого, если я отправлю сообщение размером 200 МБ, kahadb создаст журнал размером 200 МБ. Таким образом, похоже, что kahadb должен хранить одно сообщение в одном файле, даже если он превышает ограничение на размер журнала. Я видел такое же поведение для levelDB. Поправьте меня, если я ошибаюсь. - person Anuj Khandelwal; 04.11.2014