我有一个运行单个 Membase 服务器 (1.7.1.1) 的应用程序,我用它来缓存数据,否则我会从我们的中央 SQL Server 数据库中获取数据。我有一个与 Membase 服务器关联的默认存储桶,并遵循传统的数据获取模式:
- 当请求特定数据时,在 Membase 中查找相关键
- 如果返回数据,请使用它。
- 如果没有返回数据,则从数据库中获取数据
- 将新返回的数据存储在 Membase 中
我希望在我的默认集群中添加一个额外的服务器,并重新平衡密钥。(我还为另一台服务器启用了复制)。
在这种情况下,我很好奇如何使用当前模式(或修改它)来确保当我的两台服务器之一在自动故障转移或手动故障转移中出现故障时我不会让数据不同步设想。
据我了解,如果一台服务器宕机(称为Server A),在它宕机但仍连接到集群期间,会出现缓存键未命中(如果活动密钥关联到Server A,而不是Server乙)。在这种情况下,在上面的数据获取模式中,我不会返回任何数据并直接从 SQL Server 获取。但是,当我尝试将数据存储回我的 Membase 集群时,它是否会将数据存储在服务器 B 中并在下一次获取时将该密钥重新映射到服务器 B?
我知道一旦我将服务器 A 标记为“故障转移”,服务器 B 的副本密钥将成为活动密钥,但我不清楚如何处理服务器 A 无法访问但尚未标记为故障转移的间歇性情况。
任何帮助是极大的赞赏!