基于洗牌算法的负载均衡
设计一个和服务节点数组大小一致的索引数组,每次来新的请求,对索引数组做洗牌,然后取第一个元素作为选中的服务节点,如果请求失败,那么选择下一个节点重试,依此类推。
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;