代码结构图:
Main类(程序入口)
package lb;
import lb.strategy.BalanceStrategy;
import lb.strategy.impl.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main
{
public static void main(String[] args) {
//初始化候选服务器列表
List<Server> servers=new ArrayList<>();
servers.add(new Server("15.253.14.21",3306));
servers.add(new Server("142.23.51.80",80));
servers.add(new Server("88.92.123.72",8088));
servers.add(new Server("211.163.5.77",2121));
servers.add(new Server("91.63.24.16",3306));
//初始化节点权重
List<Integer> weights=new ArrayList<>();
weights.add(4);
weights.add(2);
weights.add(3);
weights.add(7);
weights.add(15);
//初始化选择策略
final BalanceStrategy ipHashRobin = new IPHashRobin(servers);
final BalanceStrategy randomRobin= new RandomRobin(servers);
final RandomWeightRobin randomWeightRobin = new RandomWeightRobin(servers, weights);
final RoundRobin roundRobin = new RoundRobin(servers);
final RoundWeightRobin roundWeightRobin = new RoundWeightRobin(servers, weights);
LoadBalance lb=new LoadBalance();
Scanner scanner = new Scanner(System.in);