【发布时间】:2012-04-21 00:32:41
【问题描述】:
概述
我想向互联网公开一个消息队列,以便客户端应用程序可以与我们的一些后端服务进行通信。
出于安全原因,我不想直接公开 jms 端点。此外,纯 HTTP 传输将消除将 jms 插件分发到异构客户端应用程序(.net、java、javascript)的需要。
研究结果
ActiveMQ
我查看了 ActiveMQ 的“内置”REST 接口:
http://activemq.apache.org/rest.html
但在测试中,我发现演示不可靠(即“我的消息去哪儿了?”)。此外,关于如何将演示提取到“真实”实现中的文档也没有很好的记录。
ESB
因为这听起来像是企业集成模式中的经典“桥”模式,所以我查看了主要的开源 ESB/SOA 集成引擎:
- Spring 集成
- 骡子
- 服务组合
在这三个文件中,最清晰的文档似乎是 ServiceMix's,它提供了一个 In-only 消息模式,我需要 POST-ing 和 GET-ing 消息。
不幸的是,就评估而言,我似乎必须深入研究每个实现和配置。我意识到开箱即用的设置可能要求太多,但我宁愿不学习所有三个,只学习最适合我需要的一个。所以...
问题
- 您是否实施过类似的架构?你用了什么?
- 不管第一个答案,您现在建议哪个?
- 哪个最简单?
【问题讨论】:
-
我已经创建了一个 ESB,它提供了一个使用 rest 的 javascript api,应该可以让一个客户端订阅一个队列,例如 rabbitmq,并使用 javascript api 来读取消息而不会暴露太多信息关于队列本身。例如,这个使用 javascript api 的应用程序:tinyurl.com/3bmr4z8