独立使用Spring Cloud Ribbon,在没有引入Spring Cloud Eureka服务治理框架时, 默认接口实现类:
1.IClientConfig:Ribbon的客户端配置,默认采用com.netflix.cilent.config.DefaultClientConfigImpl实现
2.IRule:Ribbon的负载均衡策略,默认采用com.netflix.loadbalancer.ZoneAvoidanceRule实现,该策略能够在多区 域环境下选择出最佳区域的实例访问
3.IPing:Ribbon的实例检查策略,默认采用com.netflix.loadbalancer.NoOpPing实现,该检查策略是一种特殊实现方式,实际上它并不会检查实例是否可用,而是始终返回True,默认认为所有实例都可用
4.ServerList<Server>:服务实例清单的维护机制,默认采用com.netflix.loadbalancer.ConfigurationBasedServerList实现
5.ServerListFilter<Server>:服务实例清单过滤机制,默认采用org.springframework.cloud.netflix.ribbon.ZonePreferenceServerListFilter实现,该策略能够优先过滤出与请求调用方处于同区域的服务实例
6.ILoadBalancer:负载均衡器,默认采用com.netflix.loadbalancer.ZoneAwareLoadBalancer实现,它具备区域感知能力
Spring Cloud Eureka和Spring Cloud Ribbon结合使用,Ribbon默认接口实现类:
1.IPing:Ribbon的实例检查策略,默认采用com.netflix.niws.loadbalancer.NIWSDiscoveryPing实现,该检查策略是一种特殊实现方式,实际上它并不会检查实例是否可用,而是始终返回True,默认认为所有实例都可用
2.ServerList<Server>:服务实例清单的维护机制,默认采用com.netflix.niws.loadbalancer.DiscoveryEnabledNIWSServerList实现,将所有服务清单交给Eureka的服务治理机制进行维护