0

我有一个 .NET Core 服务 AAA,它从另一个 Core 服务 BBB 检索一些数据。BBB 有一个内存缓存 (ConcurrentDictionary) 并部署到 10 个盒子。要缓存的数据的总大小约为 100GB。

AAA 将有一个运行 BBB 的服务器列表,我正在考虑做一些类似的事情ServerId = DataItemId % 10,这样每个盒子都可以服务和缓存总数据集的 10%。我想不出当其中一个 BBB 框出现故障时该怎么办(例如,由于 Windows 更新)。

是否有一些算法可以分割流量,允许服务器上下运行,但仍将大部分请求重定向到已兑现相关数据的服务器?

4

1 回答 1

1

Azure 负载均衡器不与应用程序负载交互。它基于包含 TCP/UDP 传输 IP 数据包的 5 元组的散列函数做出决策。Basic LB 和 Standard LB 之间的区别在于 Standard LB 使用改进的散列函数。请求的份额没有严格的保证,但是随着时间的推移到达的流的数量应该是相对均匀的。健康探测可用于检测后端实例是健康还是生病。这控制新流是否到达后端实例。 https://aka.ms/lbprobes有详细信息。

于 2018-09-18T16:49:39.960 回答