В ActiveMQ Artemis размер по умолчанию для больших сообщений как в основном протоколе, так и в протоколе AMQP установлен на 100 КБ. Может ли кто-нибудь объяснить причину выбора этого значения по умолчанию?
Некоторые вероятные причины включают производительность и интеграцию устаревших версий.
производительность: ограничение в 100 000 обеспечивает хороший баланс между производительностью, использованием памяти и размерами сообщений. Сообщения размером более 100 КБ могут начать вызывать проблемы с потреблением памяти. Таким образом, под этим беспокойством находится довольно большое сообщение.
наследие: 100 КБ также достаточно мало, чтобы быть совместимым с большинством устаревших клиентов, у которых есть собственный жесткий лимит сообщений.
Поддержка больших сообщений была реализована частично для того, чтобы учесть тот факт, что размер log-buffer-size (по умолчанию 490 КиБ) не бесконечен, а размеры буфера, как и большинство вещей, необходимо настраивать, чтобы сбалансировать производительность и надежность. Любое сообщение, превышающее journal-buffer-size
, не помещалось, поэтому для таких сообщений была реализована поддержка «больших сообщений». Таким образом, основным ограничением размера большого сообщения по умолчанию является то, что он должен быть меньше размера буфера журнала по умолчанию. Помимо этого, я не думаю, что существовало каких-либо значимых ограничений. Стоит отметить, что памяти, конечно, было меньше, когда она была реализована более десяти лет назад.