1

NServiceBus 或等效的 ESB 是否适合具有大量不同类型的后台维护类型任务的应用程序?例如:

  • 扫描数据库以查找用户生成的内容中出现的某些单词
  • 更新存储相对昂贵查询结果的数据库表
  • 为内容创建/维护外部索引
  • 发送预定事件的事件通知电子邮件。

我的想法是使用某种任务调度程序(Windows 内置的、Quartz.NET 或我自己的基于数据库的解决方案)定期将不同类型的消息发布到总线上。时间可以短至一分钟,也可以长至几天。我想使用总线的原因是,当系统变得更大、更繁忙以及任务变得更加频繁或资源密集时,我可以扩展订阅者的数量。只要我始终至少有两个订阅者在运行,它也会提供冗余。

明显的替代方法是编写我自己的由调度程序触发并执行工作的 Windows 服务,但我觉得使这种规模超出单台机器并提供容错可能比使用 ESB 作为管道更困难.

这听起来像一个合理的方法吗?替代建议?

TIA

4

1 回答 1

2

作为 NServiceBus 的作者,我很可能有偏见,但是在学习新技术和编写自己的技术(可能是更简单的版本)之间需要权衡取舍。与内部编写的解决方案相比,我建议考虑您自己的解决方案的长期维护(和文档)成本。

就您描述的功能集而言, NServiceBus 确实为所有这些提供了便利。

于 2010-11-17T06:42:09.077 回答