2013-08-07 5 views
2

В настоящее время я работаю над заданием, которое требует от меня времени отклика между apache activemq и aws-sqs.ActiveMQ Работает на примере AWS - EC2, Улучшение производительности продюсера

В моем нахождении я обнаружил, что, ActiveMQ производитель занимает 35 сек/1000 сообщений [120 байт каждый] потребитель занимает 250 мс/1000 сообщений [120 байт каждый]

Я использую Maven + Git + Java основанной на проекте. Я создаю сеанс из connectionfactory следующим образом:

cFactory.createSession(false, Session.AUTO_ACKNOWLEDGE); 

Соединение является синхронным, надежность сообщения важна. Может ли кто-нибудь сказать мне логику или причину такого поведения?

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

Пожалуйста, дайте мне знать, почему производитель работает медленно и как я могу улучшить его.

ответ

2

Ваши подозрения верны: «он должен не только отправлять, но и ждать подтверждения от службы amq, работающей на ec2, о том, что он опубликовал сообщение.»

Попробуйте отправить несколько сообщений в транзакцию. Сообщения в tx отправляются без необходимости ждать подтверждения. Только когда вы выполняете commit(), клиентский блок ожидает подтверждения, что все операции в tx были успешно сохранены.

+0

@chirino мы встречаемся снова, мы обменивались сообщениями по каналу activemq, я приму этот ответ, чтобы отметить этот вопрос закрытым. Еще раз спасибо. –

Смежные вопросы