Spring AMQP多用户

时间:2015-03-02 11:13:00

标签: java spring rabbitmq spring-amqp

我有一个多用户应用程序,我已经将Spring AMQP与我的RabbitMQ服务器进行消息传递,在测试了不同的用户之后,我注意到不同帐户上的同时登录会导致其他用户拦截消息,不仅如此,当没有人时在应用程序中登录仍然抓取消息。我意识到我可能需要为每个用户设置一个vHost,并确保AMQP没有自动连接......

这是我的问题所在,你究竟应该怎么做?

我正在使用JAVA配置版本并抛弃XML以使其更容易,但实际上并非如此。我尝试关闭并销毁SimpleMessageListener,使用RabbitUtil在用户注销时尝试关闭连接,然后在他们重新登录时尝试使用createConnection,但所有这些都无法正常工作或导致一个例外。我将autoStartup设置为false似乎可以正常工作,但只要有人登录就会离开窗口。这只是问题的一半,如果我可以做所有我可能想出的vHosts,但这是两个中更大的问题,因为它使这无关紧要。

此时我想知道是否它甚至被多用户应用程序同时使用。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

您需要提供更多信息,包括您正在使用的兔子和配置。

但是,您可能不需要每个用户使用一个vhost,您只需要为每个用户使用单独的队列 - 按需声明它们,使用动态路由键路由它们;从侦听器容器等添加/删除它们等。