eureka属于客户端发现,软负载均衡,也就是客户端会向服务器,比如eureka Server获取已注册的可用服务信息,然后根据负载均衡策略命中具体服务节点,发起http请求。这整个过程都是在客户端完成的,不需要服务器的处理。spring cloud的客户端负载均衡组件就是Ribbon。
ribbon通过spring cloud的封装,可以轻松的面向服务的rest模板请求,自动转化成客户端负载均衡服务调用:RestTemplate、feign以及网关服务Zuul
Ribbon实现软负载均衡主要有这三点
服务发现:就是发现依赖服务的列表,通俗来说就是依据服务的名字把它的所有服务实例找出来
服务选择规则:依据指定的服务规则,从多个有效服务中选择一个服务发起请求
服务监听:定时检测服务存活情况,及时高效剔除不可用的服务。
Ribbon主要组件
ServerList、IRule、ServerListFilter
首先通过ServerList获取所有可用服务列表,再通过ServerListFilter过滤掉一部分服务,最后 IRule 从过滤后的服务中选择一个实例进行http请求