0

每种类型都有不同数量的项目。假设我有项目“a”、“b”和“c”。有这些项目的数组 ['a','b','b','c','c','c','a','c'] 例如,我想重新定位这些项目数组,因此它们都被尽可能频繁地访问,与有多少成比例。

任何想法我如何做到这一点。我想要它,这样我就可以为我的服务器获取负载处理因素,并简单地构建一组主机 ID,这样我就可以尽可能均匀地分散负载,而不是将 5 个客户端连续发送到一个服务器,然后将 3 个客户端连续发送到另一个服务器。如果你明白我的意思。

4

1 回答 1

0

如果你想做一个负载均衡器,你可以使用 linq 来获取查找并获取当前负载的计数,然后将新客户端分配给最低计数。

public static int minLoad(List avg) { var count = avg.ToLookup(x => x).Select(x => new { item = x.Key, Counter = x.Count() }); var minclient = count.OrderByDescending(x => x.Counter).First().item; 返回最小客户端;} 公共静态字符串 minLoadstr(List avg) { var count = avg.ToLookup(x => x).Select(x => new { item = x.Key, Counter = x.Count() }); var minclient = count.OrderByDescending(x => x.Counter).First().item; 返回最小客户端;} public static void Main(string[] args) { List clientsload = new List { 1, 1, 2, 2, 3, 3 }; int minclient = minLoad(clientsload); 列出客户loadstr = new List { "A","A","C","B","C","C" }; 字符串 minclientstr = minLoadstr(clientsloadstr); }

于 2019-11-06T19:58:10.453 回答