为Http Session

时间:2015-07-17 19:54:43

标签: jms apache-camel httpsession

我有一个简单的服务,它产生一些字符串值:

class MyService {

   String foo() {
      return UUID.randomUUID();
   }

}

然后通过某些Camel路由将此值放入activeMQ队列“integration.uuids”。我希望将此值附加到当前登录用户的 http会话

实现这一目标的可能方法有哪些?
在我的Web应用程序中,还有另一个Camel路由 - “integration.uuids”的订阅者。 但是,由于服务本身和订阅者都是完全无状态的(不知道哪个用户实际调用了MyServices) 我对这种情况有点困惑。

到目前为止,我想到了对架构的以下更改:

1)为每个用户引入一个队列(对于具有数千个用户的应用程序而言是有问题的)。我认为这种方法破坏了MyService的无状态特性,因为它必须确切地知道将值放在哪个目标队列中。

2)将消息本身从具有UUID的普通字符串更改为{“caller”:“bob”,“uuid”:“uuid-uuid-uuid-uuid”} 但是,调用者每次想要调用MyService时都必须提供用户名。

任何想法都会受到赞赏。

0 个答案:

没有答案