我正在为我们的产品开发消息/通知系统。基本要求是:
- 开火并忘记
- 持久的消息集,可能会更新,直到发件人说删除它们
这些库将用 C# 编写。Spring.NET 刚刚发布了一个里程碑式的构建,其中包含许多不错的消息抽象,这很棒——我计划广泛使用它。我的基本问题归结为消息代理的问题。我的架构看起来像应用程序 -> 消息代理队列 -> 服务器应用程序,它监听、将所有消息分派到它们需要去的地方,并处理那些长期存在的消息的生命周期 -> 消息代理队列或主题 -> 监听应用。
最后,问题是:我应该使用哪个消息代理?我偏向于ActiveMQ - 我们在上一个项目中使用它并且喜欢它。除了它是 Java 并且需要将 Java 安装在某处的服务器上之外,我真的想不出任何针对它的攻击,这对于某些将使用该服务的人来说可能很难卖。我一直在寻找的另一个选项是 MSMQ。由于某种未知的原因,我对它有偏见,而且它似乎也没有很好的多播支持。
有没有人用过 MSMQ 做这样的事情?任何优点或缺点,可能会以某种方式影响投票的东西?
最后一件事,我们使用的是 .NET 2.0。