Состояние ожидания, когда 4-5 очередей связаны на одном канале rabbitmq в Scala - PullRequest
1 голос
/ 12 апреля 2011

Я использую RabbitMQ Server 2.3.1.

В одном канале 5-6 очередей.

Очередь состоит из бобов Java.

И есть такое же количество акторов скала, которые занимают определенную очередь. Все эти субъекты пытаются получить сообщение очереди через общий менеджер очередей, который обрабатывает соединение и канал rabbitmq.

В этом администраторе очередей есть только одно соединение и канал.

Вчера я сделал некоторые изменения только в одном бобе.

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

Полезно ли привязывать очередь 4-5 к одному каналу. Или это ошибка, когда возникает исключение в канале с 4-5 привязками очереди, когда один объект очереди получает исключение.

Кто-нибудь может мне помочь, пожалуйста!

1 Ответ

1 голос
/ 04 августа 2011

Канал - это просто многопоточное соединение с брокером RabbitMQ.Все потребители очереди и издатели сообщений обычно используют один канал.Непонятное сообщение не должно вызывать проблем на канале.

Какой тип обмена вы используете?Какой ключ маршрутизации находится в сообщениях, которые вы публикуете на бирже?Какие ключи привязки вы используете, когда привязываете свои очереди к обмену?

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

...