本节介绍 Ribbon: 一个基于 HTTP 请求的客户端负载均衡器
使用例子
开启均衡负载功能
1 | //开启服务发现的能力 |
使用均衡负载功能
1 |
|
原理概述
获取
@LoadBalanced
注解标记的RestTemplate
。为上述
RestTemplate
添加一个拦截器(filter): 当使用RestTemplate
发起http调用时进行拦截。拦截到请求时,通过服务名获取该次请求的服务集群的全部列表信息。
根据规则从集群中选取一个服务作为此次请求访问的目标。
访问该目标,并获取返回结果。
选取服务实例过程
其他
立即加载
默认情况下Ribbon是懒加载的——首次请求Ribbon相关类才会初始化,这会导致首次请求过慢的问题,你可以配置饥饿加载,让Ribbon在应用启动时就初始化。
1 | ribbon: |
默认配置
Bean Type | Bean Name | Class Name |
---|---|---|
IClientConfig | ribbonClientConfig | DefaultClientConfigImpl |
IRule | ribbonRule | ZoneAvoidanceRule |
IPing | ribbonPing | DummyPing |
ServerList |
ribbonServerList | ConfigurationBasedServerList |
ServerListFilter |
ribbonServerListFilter | ZonePreferenceServerListFilter |
ILoadBalancer | ribbonLoadBalancer | ZoneAwareLoadBalancer |
ServerListUpdater | ribbonServerListUpdater | PollingServerListUpdater |
自定义配置
1 | public class CloudProviderConfiguration { |
相关文章
https://blog.csdn.net/luanlouis/article/details/83060310
https://github.com/Netflix/ribbon/wiki/Working-with-load-balancers
http://www.itmuch.com/spring-cloud/finchley-8/
https://my.oschina.net/javamaster/blog/2985895