我有一个多用户Spring Web应用程序,我需要每个登录用户能够在自己的rabbitmq vHost上接收消息,这样其他用户就无法查看其他用户消息。我目前没有vHost工作,但每个用户都可以收到任何消息。根据我的理解,使用vHost是最简单的方法(如果我错了,请纠正我)。
目前它是这样设置的。
<!-- Connection Factory -->
<bean id="rabbitConnFactory"
class="org.springframework.amqp.rabbit.connection.CachingConnectionFactory">
<constructor-arg><value>localhost</value></constructor-arg>
<property name="username" value="guest" />
<property name="password" value="guest" />
<property name="virtualHost" value="/" />
<property name="port" value="5672" />
</bean>
实际上有两个问题,因为在任何人登录之前在浏览器中启动应用程序时它会连接。我正试图用vHost解决方案实现动态连接,并且只有在登录后才能连接该用户。 到目前为止,我在谷歌上找到的唯一的东西是使用 AbstractRoutingConnectionFactory 的 SimpleRoutingConnectionFactory ,但是我找不到如何在线使用它们的例子。
我真的很感激任何人都可以提供的任何帮助,谢谢。
答案 0 :(得分:1)
每个用户使用vHost似乎有点过分;为什么不为每个用户创建一个队列/交换?