2

我们有一个应用程序,它维护一个HashMap由特定用户 ID 键入的内存,并具有代表某些系统事件的值。基本功能是用户向 Web 服务器发出请求,该服务器检查HashMap由他们的 ID 键入的任何事件,否则会等待很短的时间,HashMap直到它们超时或notify执行HashMap唤醒客户端并立即处理该事件。

这在单个服务器环境中运行良好,但我们正在转向集群环境,并且不确定处理这个特定部分的最佳方式。

认为我们需要利用数据库对这些事件进行排队并失去即时回调效果,wait/notify除非可以使用 Singelton 服务功能以某种方式实现这一点。使用单例服务,我们是否能够等待来自一台服务器的对象并通过集群中另一台服务器上的线程获得通知?

4

1 回答 1

2

我建议您为此使用 JMS。JMS 是集群友好的,也可以配置为将事件持久保存在文件存储或数据库中。您还可以从 2 种模型中进行选择:队列或主题,具体取决于您需要如何处理用户。

于 2013-08-12T19:29:14.187 回答