类似交费网站开发,app用什么工具开发,淮南网云小镇房价,seo的优点有哪些Ribbon与Eureka的关系
Eureka的服务拉取与负载均衡都是由Ribbon来实现的。
当服务发送http://userservice/user/xxxhtt://userservice/user/xxx请求时#xff0c;是无法到达userservice服务的#xff0c;会通过Ribbon会把这个请求拦截下来#xff0c;通过Eureka-server转换…Ribbon与Eureka的关系
Eureka的服务拉取与负载均衡都是由Ribbon来实现的。
当服务发送http://userservice/user/xxxhtt://userservice/user/xxx请求时是无法到达userservice服务的会通过Ribbon会把这个请求拦截下来通过Eureka-server转换为真实的ip与端口。
如果服务名对应多个服务Eureka-server会把所有的ip与端口返回给RibbonRibbon来做负载均衡。
LoadBalanced注解表示以后的请求由Ribbon拦截和处理。 负载均衡策略
Ribbon的负载均衡策略规则是一个叫做IRule的接口来定义的每一个子接口都是一种规则。
下面是IRule接口的继承关系图 调整负载均衡的方案
Ribbon的默认负载均衡策略是轮询Round Robin调度。
方法一定义一个新的IRule
这种方法以后不管调用哪个微服务都是指定这个方案的。
Bean
public IRule randomRule() {return new RandomRule();
} 方法二在yml中配置
只有userservice这个服务时才会使用RandomRule的方案。
userservice:ribbon:NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
注意方法一的优先级比方法二高
解饿加载
Ribbon模式是采用懒加载既第一次访问时才会去创建LoadBalanceClient请求时间会很长。
而饥饿加载则会在项目启动时创建降低第一次访问的耗时通过下面配置开启饥饿加载。
这里的服务名称是自己要调用的服务名称不是自己的服务名称。
ribbon:eager-load:enabled: true #开启饥饿加载clients: userservice #指定对userservice这个服务饥饿加载