java - Spring AMQP 多用户

标签 java spring rabbitmq spring-amqp

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

这就是我的问题所在,你到底应该怎么做?

我正在使用 JAVA 配置版本并放弃了 XML 以使其更容易,但实际上并没有。我尝试关闭并销毁 SimpleMessageListener,使用 RabbitUtil 在用户注销时尝试关闭连接,然后在用户重新登录时尝试使用 createConnection,但所有这些要么不起作用,要么导致异常。我将 autoStartup 设置为 false 这似乎有效,但是一旦有人登录,它就会消失。这只是问题的一半,如果我能做到这一点,我可能可以找出虚拟主机,但这是两个问题中更大的问题,因为它使这变得无关紧要。

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

最佳答案

您需要提供更多信息,包括您正在使用rabbit做什么以及配置。

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

关于java - Spring AMQP 多用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28808384/

相关文章:

rabbitmq - 智能代理与哑代理(Kafka 和 RabbitMQ)

java - 安卓套接字 : receiving data in real-time

java - 设置在特定时间通知android

java - 如何在基于 Spring 注释的 java 配置中设置 Activity 配置文件

java - Spring 中的 ModelAndView

python - Ping MySQL 以在 Django 中保持连接

java - Java 7 中多异常捕获的使用

spring - 参数化 Maven 脚本以在 Spring 配置之间切换的最佳方法是什么?

spring - 在@Transactional Junit 测试中使用域对象的双向关联

rabbitmq - 无法在 Flink 1.3.2 中启动 RabbitMQ 源