Почему ActiveMQ TextMessage дополняется пробелами для заполнения 1000 байтов ??Как это оптимизировать? - PullRequest
0 голосов
/ 05 июля 2010

Привет всем экспертам ActiveMQ!

Я посмотрел через WireShark, что происходит, когда производитель ActiveMQ "/ examples" отправляет сообщения и обнаруживает, что каждое TextMessage короче 1000 байтов дополняется пробелами ('' или HEX 20), пока не заполнится ровно 1000 байтов , (используя «собственный» транспорт ActiveMQ - TCP «OpenWire»)

Интересно, что это делает? (Я полагаю, реализация клиента ActivemQ JMS) но ПОЧЕМУ ??

И самое главное, есть ли способ оптимизировать его, чтобы отправка коротких сообщений не требовала почти 1 КБ ненужных пробелов?

Спасибо!

веселит, Годится

1 Ответ

1 голос
/ 05 июля 2010

Вы правы в том, что клиентская реализация добавляет пробелы к сообщениям (см. Метод createMessageText). Это просто, чтобы сообщения были четного размера. Вы можете либо изменить размер при запуске примера (используйте arg: -DmessageSize = ), либо изменить ProducerTool, чтобы он не заполнял каждое сообщение, просто отредактировав код и запустив его снова (Ant сделает скомпилируйте его перед запуском). Я делал это много раз, чтобы полностью удалить пробелы, добавить дополнительный текст в сообщение, добавить заголовки сообщения, отформатировать тело сообщения с использованием XML и т. Д.

Брюс

...