我正在寻找分布式实时系统的中间件。要求非常简单——发布/订阅具有持久存储的键值对存储:
- 发布者将“数据项”发布到主题,然后分发给这些主题的订阅者。这些数据项不需要排队,因为只有最新版本是相关的(想想股票价格)。如果没有订阅者,则应保留数据项以供以后使用(请参阅 2)-仅最新版本,无需排队。
- 订阅者可以随时上线,他们需要立即从指定主题接收最新版本的数据项,然后在发生更新时接收更新。
有什么东西可以自然地实现这种模式吗?到目前为止我见过的最好的是 Redis,但它需要在每一端进行两个单独的事务,在发布者上写入 + 发布(在订阅者上订阅 + 获取),这意味着它不是一个基本用例,也不能保证它不会错过更新发生在这两个电话之间。我知道的一种商业产品是 Tibco ActiveSpaces,但理想情况下是寻找开源和 .NET 或至少基于 Windows 的东西。