负责均衡-手写简单的负载均衡和ribbon介绍

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<>  

相关推荐