我有一个 .NET Core 服务 AAA,它从另一个 Core 服务 BBB 检索一些数据。BBB 有一个内存缓存 (ConcurrentDictionary) 并部署到 10 个盒子。要缓存的数据的总大小约为 100GB。
AAA 将有一个运行 BBB 的服务器列表,我正在考虑做一些类似的事情ServerId = DataItemId % 10
,这样每个盒子都可以服务和缓存总数据集的 10%。我想不出当其中一个 BBB 框出现故障时该怎么办(例如,由于 Windows 更新)。
是否有一些算法可以分割流量,允许服务器上下运行,但仍将大部分请求重定向到已兑现相关数据的服务器?