【发布时间】:2012-02-07 16:00:37
【问题描述】:
我们有一个 REST Web 服务,它接收来自外部系统的请求并相应地更新我们的数据库。我正在为进来的请求实施缓存/排队解决方案,因为我们最近遇到了一些数据库服务器挑战,并且在数据库服务器出现故障时丢失了一些消息。
在我开始组合一个简单的基于文件的持久性队列之前,我想看看是否有任何好的替代 JMS,因为它的使用在我们的环境中受到限制。
当前平台: 老板 4.3 富脸3.3 春天 3.0.5 轻松休息
** 更新 **
根据下面 skaffman 的问题,我对集群、事务等的要求。
集群:我们的 Web 和应用服务器都是集群的,因此队列需要能够处理来自所有集群节点的项目。但是,我们的提交本质上是原子的,因此排序和同步问题非常少。线程和集群安全并不是一个真正的因素。每个集群上的单独/独立队列就足够了。
事务:同样,由于我们数据的原子性质,事务需求在每个单独的请求之外是最小的/不需要。
安全性:中等关注,但我预计这将由我们在 Web 服务上的常规安全性来处理。除了网络应用程序本身之外,我不会预期任何读取或写入队列的内容。只有在大容量或数据库不可用时才需要这样做。
谢谢,
迈克
【问题讨论】:
-
您对事务、集群和安全性有什么要求?
-
@anubhava - 好问题。我试图找出细节,但一般来说,它在我们的技术堆栈中是被禁止/限制的,并且在网络环境中不允许出现,没有例外。
-
JMS 的所有替代品(ZeroMQ、RabbitMQ 等)都不提供持久性,因此我想不出任何其他 JMS 替代品来满足您的要求,而无需构建您自己的自定义解决方案。即使您找到了一个,您的组织限制允许这样做的可能性有多大?