tinydu 2020-02-18
服务器负载均衡就是
nignx
客户端负载均衡
客户端负责,负载均衡规则,从服务列表里面选择具体的服务实例。
从nacos服务发现组件上,利用简单的随机负载均衡算法来获取服务地址。
List<ServiceInstance> instances = discoveryClient.getInstances("pay");List<String> targerUrls = instances.stream().map(instance->instance.getUri().toString()+"/test") .collect(Collectors.toList());int i= ThreadLocalRandom.current().nextInt(targerUrls.size());log.info("请求目标地址:"+targerUrls.get(i));return restTemplate.getForObject(targerUrls.get(i),String.class);使用ribbon实现负载均衡ribbon是一个netflix开源的实现负载均衡的组件,集成方式
@Bean@LoadBalancedpublic RestTemplate restTemplate(){ return new RestTemplate();}
return restTemplate.getForObject("http://pay/test",String.class);pay是服务名称
接口 | 作用 | 默认值 |
IClientConfig | 读取配置 | DefaultClientConfigImpl |
IRule | ||
IPing | ||
ServerList<Server> | ||
ServerList<> |