轮询算法
AtomicInteger atomicInteger = new AtomicInteger(-1);
index = atomicInteger.incrementAndGet() % size;
随机算法
Random random = new Random();
index = random.nextInt(size);
权重算法
List<Object> list = new ArrayList<>();
instances.forEach(service -> {
Double width = service.get("width");
for (int i = 0; i < width; i++) {
list.add(service);
}
});
index = atomicInteger.incrementAndGet() % list.size();
故障转移
for (int i = 0; i < size; i++) {
try {
if (i < 3){
int j = 1 / 0;
}
return "连接成功";
}catch (Exception e){
log.error("尝试连接下一个");
}
}
return "连接失败";