从 Webapp 和 Apache Camel / 使用 MQ,您是否使用 jsessionid 添加 JMS 消息?
From a Webapp and with Apache Camel / and using MQ, do you add JMS messages using jsessionid?
我有一个 Web 应用程序,它将在 MQ 消息队列上启动一条消息(比如开始处理)。我有一个使用 Camel Spring DSL 定义的消费者和生产者配置。我想从 Web 应用程序推送一条消息,只有该会话和客户端应该得到响应。我可以使用 jsessionid 和其他一些随机消息 ID 来设置消息,以便只有该客户端才能收到响应吗?
例如Imagine Camel Spring DSL xml 配置:
<route id="webRequestToInRoute">
<to uri="activemq:queue:inbox :::: here I want to getJsessionId() as the message ... name?"/>
</route>
更重要的是,我可以通过哪些方式在浏览器到camel rest服务到JMS路由之间进行通信,主要是拉取状态?
Web 应用程序 session 发布消息
- 将消息上的 JMSReplyTo header 设置为:temp-queue://ORDER.$jSessionId
- 在 temp-queue://ORDER.$jSessionId
上设置消费者
- 发送至 -> queue://PROCESS.ORDER
在 REST 服务上
- 消费自queue://PROCESS.ORDER
- 用消息做事
- 将响应发布到 temp-queue://ORDER.$jSessionId
一旦不再有消息,消费者或生产者broker会自动删除temp-queue,所以没有clean-up需要
我有一个 Web 应用程序,它将在 MQ 消息队列上启动一条消息(比如开始处理)。我有一个使用 Camel Spring DSL 定义的消费者和生产者配置。我想从 Web 应用程序推送一条消息,只有该会话和客户端应该得到响应。我可以使用 jsessionid 和其他一些随机消息 ID 来设置消息,以便只有该客户端才能收到响应吗?
例如Imagine Camel Spring DSL xml 配置:
<route id="webRequestToInRoute">
<to uri="activemq:queue:inbox :::: here I want to getJsessionId() as the message ... name?"/>
</route>
更重要的是,我可以通过哪些方式在浏览器到camel rest服务到JMS路由之间进行通信,主要是拉取状态?
Web 应用程序 session 发布消息
- 将消息上的 JMSReplyTo header 设置为:temp-queue://ORDER.$jSessionId
- 在 temp-queue://ORDER.$jSessionId 上设置消费者
- 发送至 -> queue://PROCESS.ORDER
在 REST 服务上
- 消费自queue://PROCESS.ORDER
- 用消息做事
- 将响应发布到 temp-queue://ORDER.$jSessionId
一旦不再有消息,消费者或生产者broker会自动删除temp-queue,所以没有clean-up需要