基于洗牌算法的负载均衡
设计一个和服务节点数组大小一致的索引数组,每次来新的请求,对索引数组做洗牌,然后取第一个元素作为选中的服务节点,如果请求失败,那么选择下一个节点重试,依此类推。
var arr: array[0..2] of string = ('100.69.62.1:1122', '100.69.62.2:1122', '100.69.62.3:1122');
procedure TForm1.Button1Click(Sender: TObject);
begin
randomize;
var i: Integer;
var s: string;
for i := 0 to 2 do
begin
var j: Integer := Random(3);
s := arr[i];
arr[i] := arr[j];
arr[j] := s;
end;
Caption := arr[0];
end;