【问题标题】:Alternatives to JMS for queuing用于排队的 JMS 替代方案
【发布时间】:2012-02-07 16:00:37
【问题描述】:

我们有一个 REST Web 服务,它接收来自外部系统的请求并相应地更新我们的数据库。我正在为进来的请求实施缓存/排队解决方案,因为我们最近遇到了一些数据库服务器挑战,并且在数据库服务器出现故障时丢失了一些消息。

在我开始组合一个简单的基于文件的持久性队列之前,我想看看是否有任何好的替代 JMS,因为它的使用在我们的环境中受到限制。

当前平台: 老板 4.3 富脸3.3 春天 3.0.5 轻松休息

** 更新 **

根据下面 skaffman 的问题,我对集群、事务等的要求。

  • 集群:我们的 Web 和应用服务器都是集群的,因此队列需要能够处理来自所有集群节点的项目。但是,我们的提交本质上是原子的,因此排序和同步问题非常少。线程和集群安全并不是一个真正的因素。每个集群上的单独/独立队列就足够了。

  • 事务:同样,由于我们数据的原子性质,事务需求在每个单独的请求之外是最小的/不需要。

  • 安全性:中等关注,但我预计这将由我们在 Web 服务上的常规安全性来处理。除了网络应用程序本身之外,我不会预期任何读取或写入队列的内容。只有在大容量或数据库不可用时才需要这样做。

谢谢,

迈克

【问题讨论】:

  • 您对事务、集群和安全性有什么要求?
  • @anubhava - 好问题。我试图找出细节,但一般来说,它在我们的技术堆栈中是被禁止/限制的,并且在网络环境中不允许出现,没有例外。
  • JMS 的所有替代品(ZeroMQ、RabbitMQ 等)都不提供持久性,因此我想不出任何其他 JMS 替代品来满足您的要求,而无需构建您自己的自定义解决方案。即使您找到了一个,您的组织限制允许这样做的可能性有多大?

标签: queue jms


【解决方案1】:

对于一个项目,我们确实使用了队列 (HornetQ),但由于客户不想要 Weblogic 或 JBoss 应用程序服务器,因此集成在战争中并可以部署在 Tomcat 上,但是如果您的限制策略也适用于您的应用程序架构,例如解决方案将被禁止。

对于另一个项目,我们没有使用任何 JMS 实现,而是通过使用消息数据库和 spring-integration frameworkService Activator 来使用事件来实现异步实现。 这样,任何消息发布者只需在 DB 表中插入一行,Service Activator 就会触发事件并调用任何其他服务(Spring、Web 服务等)。

【讨论】:

    猜你喜欢
    • 2011-06-24
    • 1970-01-01
    • 1970-01-01
    • 2018-10-12
    • 2016-07-28
    • 2010-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多