每个用户的Spring RabbitMQ连接

时间:2014-06-05 01:32:33

标签: java spring spring-mvc rabbitmq spring-amqp

我有一个多用户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 ,但是我找不到如何在线使用它们的例子。

我真的很感激任何人都可以提供的任何帮助,谢谢。

1 个答案:

答案 0 :(得分:1)

每个用户使用vHost似乎有点过分;为什么不为每个用户创建一个队列/交换?