2

我目前正在尝试为 appharbor 应用程序找到最佳的消息队列解决方案。大多数人都假设你有一个安装了 MSMQ 和 DTC 的 windows 环境,我不相信 appharbor 环境提供了。

我想要一些与 ravendb 配合得很好的东西,因为那是我们正在使用的数据库。只依赖 raven 的东西是理想的,特别是如果它与我们现有的工作单元集成在一起。即,当在我们的控制器操作中调用保存更改时,消息将保存在同一个事务中。

它还需要一个在控制台应用程序中工作的主机以进行后台处理。

理想情况下,我也想要在开发环境中“正常工作”的东西。以 raven 为例,我们在开发时使用嵌入式模式,我想要一些不需要安装的东西。

我查看了 nServicebus,它似乎无法满足这些条件,因为它需要传输(msmq、sql 等)并且大部分文档已过时。

我还查看了 rhino 服务总线,但明显缺乏文档和社区。我也不确定它是否可以完全依赖 ravendb。

我看过的其他似乎都非常重量级,需要安装和配置才能在开发环境中运行。

编辑:另一个选项是实现我们自己的。

4

1 回答 1

2

首先,恭喜你成为 StackOverflow 上的第 1000 个 NServiceBus 问题!

其次,如果您要使用 SQL 来持久化您的业务数据,那么您可以在同一 SQL 之上运行 NServiceBus,其中所有消息都通过表(而不是队列),然后您就不需要 DTC。

第三,如果您确实想使用 RavenDB 作为 NServiceBus 的传输方式,则必须在其之上实现 ISendMessages 和 IReceiveMessages 接口,但我相信社区中的某个人已经开始着手研究了,所以您可能可以与他们联手。

最后,我不建议这些天编写自己的 ESB - 不是在已经有这么多好的选择的时候。您提到了社区和文档问题——在编写您自己的基础架构时,这些问题往往被处理得最差。

于 2013-04-25T10:47:50.570 回答