Вы отправляете эти сообщения постоянно и без транзакций.Это означает, что каждое отправленное сообщение должно быть завершено индивидуально.
Это означает, что для каждого отправляемого сообщения вам необходимо совершить круговую поездку по сети на сервер и дождаться завершения целостности, прежде чем вы сможете отправить другое сообщение.
Если бы в этой ситуации было несколько производителей, hornetq объединял бы обоих производителей, и вы сэкономили бы много времени.(т. е. сервер будет отправлять много запросов на запись).
Если вы хотите ускорить отправку одного производителя, вам, вероятно, следует использовать транзакции.
, например:
I - изменить сеанс на транзакцию:
session = connection.createSession(true, Session.SESSION_TRANSACTIONED);
II - зафиксировать каждые N сообщений:
for(int i=0;i<10000;i++){
messageSent++;
publisher.send(message);
if (messageSent % 1000 == 0) session.commit();
}
session.commit();
Вы также можете отключить синхронизацию постоянных сообщений.(Отправляя их асинхронно).