2

我正在评估在我们的产品中使用 NServiceBus 作为 SOA 机制。我正在研究使用发布/订阅模式,我的理解是订阅服务将存储所有订阅。

这是否意味着如果我的 RavenDB 服务器出现故障,那么我的发布者将无法发送给订阅者?或者有没有办法让发布者缓存它拥有的订阅者,如果 RavenDB 出现故障,它会交付给它的已知订阅者?

4

3 回答 3

3

一般模式是端点有一个主节点作为工作节点和分发节点,然后主节点使用同一台服务器上的 Raven 安装来存储其订阅和 saga 存储。

因此,对于一个端点来说,这是一个故障点,但分布式系统中的其他端点将在自己的服务器上使用 Raven 安装。因此,系统保持分布式,整个系统没有单点故障。RavenDB 支持这一点,因为它很容易安装在任何服务器上。

与 SQL Server 相比,SQL Server 经常集中化、扩展至最大,甚至集群化以提供高可用性。(阅读:昂贵!)

于 2012-11-07T18:59:18.797 回答
3

您可以将 RavenDB 服务器作为复制节点运行,以避免出现单点故障。

于 2012-11-07T17:25:44.860 回答
1

您还可以在 Windows 故障转移集群中运行 RavenDB,其中节点使用共享 SAN 存储 RavenDB 数据文件。如果活动节点死亡,另一个接管。由于数据存储在 SAN 上,除了在新节点上启动 RavenDB windows 服务所需的时间外,您甚至不应该注意到它。查看 http://ravendb.net/docs/server/administration/fmc_configuration

这也是与 Distributors 一起运行时为 High Availability 推荐的设置。http://docs.particular.net/nservicebus/scalability-and-ha/distributor/

于 2012-11-14T14:12:31.237 回答