我有一个简单的服务,它产生一些字符串值:
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时都必须提供用户名。
任何想法都会受到赞赏。