2017-01-11 3 views
0

здесь реализация яRabbitMQ basic.ack, на другом объекте канала

Потребляйте:

GetResponse resp = channel.basicGet(qName, false); 

квитирования:

channel.basicAck(dTag, false); 

или

channel.basicNack(dTag, false,true); 

проблема, перед которой я столкнулся, если я создавать разные объекты канала, подтверждения не происходит. И я могу реализовать это только в том случае, если я выполняю оба действия (потребляю, признаю) из одного jvm (tomcat или любого другого сервера приложений).

поэтому, если мое приложение работает в кластерном режиме (несколько серверов приложений), у меня проблемы.

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

Спасибо!

+0

Acking должно происходить на одном канале. Вы не можете получить сообщение с другого компьютера. – Gabriele

ответ

2

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

вы не можете.

подтверждение должно происходить на одном канале.

+0

Прежде всего спасибо тонну, за вашу помощь. Я любил бить вокруг куста ... Я нашел ваш сайт на Кролике и нашел, что вы довольно эксперт в этом вопросе. Могу я задать вам вопрос о Кролике? Здесь http://stackoverflow.com/questions/41610842/rabbitmq-limitation-clustering – user3123372

+0

Я прокомментировал существующий ответ в другом вопросе. ваша настройка звучит так, как будто она уместна, уже –

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