Spring AMQP для нескольких пользователей

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

вот где мой вопрос возникает, как именно вы должны это сделать?

Я использую версию конфигурации JAVA и отказался от XML, чтобы упростить его, но на самом деле это не так. Я пытался закрыть и уничтожить SimpleMessageListener, используя RabbitUtil, чтобы попытаться закрыть соединение, когда пользователь выходит из системы, а затем попытаться использовать createConnection, когда они снова войдут в систему, но все это либо не работает, либо вызывает исключение. Я установил для autoStartup значение false, что, похоже, работает, но как только кто-то входит в систему, окно исчезает. И это только половина проблемы, если бы я мог сделать все это, я, вероятно, смог бы выяснить vHosts, но это более серьезная проблема из двух, поскольку это делает это неуместным.

На данный момент мне интересно, создано ли оно для одновременного использования многопользовательским приложением. Любая помощь будет принята с благодарностью.


person Dustin    schedule 02.03.2015    source источник


Ответы (1)


Вам нужно предоставить гораздо больше информации, в том числе о том, что вы делаете с кроликом, и о конфигурации.

Однако вам, скорее всего, не нужен виртуальный хост для каждого пользователя, вам просто нужно использовать отдельные очереди для каждого пользователя — объявлять их по запросу, маршрутизировать к ним с помощью ключей динамической маршрутизации; добавить/удалить их из контейнера слушателя и т. д. и т. д.

person Gary Russell    schedule 02.03.2015