Ribbon学习:
负载均衡原理、负载均衡策略、、懒加载
学习内容:
-
@loadBalanced 注解
-
负载均衡流程
-
LoadBalancerInterceptor 类
拦截器
@Override
public ClientHttpResponse intercept(final HttpRequest request, final byte[] body,
final ClientHttpRequestExecution execution) throws IOException {
final URI originalUri = request.getURI();
String serviceName = originalUri.getHost();
Assert.state(serviceName != null, "Request URI does not contain a valid hostname: " + originalUri);
return this.loadBalancer.execute(serviceName, this.requestFactory.createRequest(request, body, execution));
}
4.策略: IRule 规则接口
实现有重试规则、轮询规则、随机规则、
默认实现轮询
5、轮询:
一个服务有两个及以上的实例、用户进行依次访问不同的实例
6、自定义规则:
7、饥饿加载
问题:第一次请求会初始化LoadBalancerClient,请求会很慢,后面会放在缓存里就不慢了。
解决方法:yml配置饥饿加载,服务启动就初始化