我一直在学习如何使用spring框架,到目前为止一直很好。我已经从Spring Initializr创建了一个应用程序 - http://start.spring.io/,我已经能够设置多个控制器甚至设置安全性,一切正常。
我在Apache Tomcat上运行我的应用程序。我现在想使用Spring AMQP,我想用它的方式是这样的。我将在浏览器中执行一个控制器方法,并在队列中添加一条消息,该消息应由消费者(可能是线程池驱动的消费者)使用,并将结果返回给用户。
例如,我想向队列添加一条消息并将json返回给用户。 由于我从控制器执行添加消息,我希望向用户显示响应。
在浏览了兔子mq文档之后,我认为RPC会帮助我将消息发布到队列中,并且它将被消费并且结果返回给用户。我使用php设置了兔子mq示例,我看到它有效。
然而,通过浏览春季amqp文档,我遇到了这三个
-Message Listener https://docs.spring.io/spring-amqp/docs/1.3.5.RELEASE/reference/html/amqp.html#containerAttributes
-Listener Concurrency https://docs.spring.io/spring-amqp/docs/1.3.5.RELEASE/reference/html/amqp.html#listener-concurrency
- 请求/回复消息https://docs.spring.io/spring-amqp/docs/1.3.5.RELEASE/reference/html/amqp.html#request-reply
-RPC https://www.rabbitmq.com/tutorials/tutorial-six-spring-amqp.html
我的问题是,如果我想让用户得到结果,我会选择RPC或请求/回复消息,还是他们是同一个东西?
其次,在我做的最后一个RPC示例中,我像java_listener.java
一样单独启动了侦听器,以便能够使用消息。
由于我使用spring intilizr启动了我的应用程序而且我正在运行tomcat,我是否需要从tomcat进程中单独启动使用者?
感谢。