每种类型都有不同数量的项。假设我有项目"a"、"b"one_answers"c"。例如,有一个这些项的数组我想重新定位数组中的项目,使它们尽可能频繁地被访问,与数量成比例。
你知道我该怎么做吗。我想要它,这样我就可以为我的服务器取一个负载处理因子,只需构建一个主机id数组,这样我就能尽可能均匀地分配负载,而不是将5个客户端连续发送到一台服务器,然后将3个客户端连续发送到另一台服务器。如果你明白我的意思。
如果你想做一个负载均衡器,你可以使用linq来获取查找和当前负载的计数,然后将新客户端分配给最低的计数。
public static int minLoad(列表平均值({var count=avg.ToLookup(x=>x(。选择(x=>new{item=x.Key,Counter=x.count((}(;var minclient=计数。OrderByDescending(x=>x.Counter(.First((.item;return minclient;}公共静态字符串minLoadstr(列表平均值({var count=avg.ToLookup(x=>x(。选择(x=>new{item=x.Key,Counter=x.count((}(;var minclient=计数。OrderByDescending(x=>x.Counter(.First((.item;return minclient;}public static void Main(string[]args({List clientsload=新列表{1,1,2,2,3,3};int minclient=minLoad(clientsload(;List clientsloadstr=new List{"A"、"A","C"、"B"、"C"one_answers"C"};string minclientstr=minLoadstr(clientsloadstr(;}