public static void Main()
{
int[] data = new int[100];
int handlerCount = 4;
for (int i = 0; i < 100; i++)
{
data[i] = i + 1;
}
for (int i = 0; i < data.Length; i++)
{
if (data[i] % handlerCount == 1)
{
Console.WriteLine("server1--" + data[i]);
}
if (data[i] % handlerCount == 2)
{
Console.WriteLine("server2--" + data[i]);
}
if (data[i] % handlerCount == 3)
{
Console.WriteLine("server3--" + data[i]);
}
if (data[i] % handlerCount == 0)
{
Console.WriteLine("server4--" + data[i]);
}
}
Console.WriteLine("ok");
//分布式分拣程序,一个专业的分拣程序。
//第一种算法:取模,x%y,知道总数,知道总处理数。
//第二种hash再取模:hash(key),然后将数分布的sever。这里的hash只需起到取整tonum(key)的目的,且客户端无需通讯。这里只需知道y
//第三种原始算法:如果有总数1000,有5个处理者,则第一个处理,1000/5=200=200*(1-1)-200*1=0+1-200;则第二个处理,1000/5=200*1=200*(2-1)-200*2=200+1-400
//分拣频率较搞,如1分钟,分拣到各自的队列中,各分布式的机器再各自处理自已的队列
//分拣的方式有,第一独立建立一个队列,第二做标记
//各分布式的机器一般按单线程处理即可,但也可在关键资源上进行多线程优化。
//客户端无需通讯,无需中间服务器再调度,服务器负载相对均衡,服务器的处理能力没有做检测,负载均衡也是这种做法
//调度程序:客户端与服务器的中间服务器,可与处理者再通讯,如果处理者忙不过来,再通知中间调度服务器。
Console.ReadLine();
}
分布式分拣调度程序
最新推荐文章于 2024-07-01 15:42:12 发布