关于spring cloud Ribbon 客户端负载均衡
使用方式 :启动多个服务并注册到注册中心
服务消费者可以直接通过@LoadBalanced注解修饰过的RestTemplate来实现面向服务接口调用
RestTemplate :
GET POST DELETE PUT
GET 有 getForEntity getForObject
POST 有postForEntity postForObject postForLocation
PUT 有put()
DELETE 有 delete
配置详解
继承了springboot优点
自动化配置:
IClientConfig:Ribbon客户端配置 默认采用com.netflix.client.config.DefaultClientConfigImpl实现
IRule:Ribbon的负载均衡策略 默认采用com.netflix.loadbalance.ZoneAvoidanceRule实现,该策略能够在多区域环境下选出最佳区域的实例进行访问
IPing:Ribbon的实例检查策略、默认采用com.netflix.loadbalancer.NoOping实现,该检查策略是一个特殊的实现,实际上它并不会检查实例是否可用,而是始终返回true,默认认为所有服务实例都是可用的
ServerList<Server> : 服务实例清单的维护机制,默认采用com.netflix.loadbalancer.ConfigurationBasedServerList实现
ServerListFilter<Server> : 服务实例清单过滤机制,默认采用org.springframework.cloud.netflix.ribbon.ZonePreferenceServerListFilter实现,该策略能够优先过滤出与请求调用方处于同区域的服务实例
ILoadBalancer:负载均衡器,默认采用com.netflix.loadbalancer.ZoneAwareLoadBalancer实现,它具备了区域感知能力
以上配置仅仅在没有引入eureka时如此 引入eureka有一些替换 配置