客户端负载均衡,当服务节点出现问题时进行调节或是在正常情况下进行
服务调度。所谓的负载均衡,就是当服务提供的数量和调用方对服务进行
取舍的调节问题,在spring cloud中是通过Ribbon来解决的。还有另外一
种途径是通过服务端的负载均衡Nginx来解决。Ribbon是客户端的负载均
衡,通过Eureka来获取所有的服务的数量,客户端来调用服务时,Ribbon
通过一系列的算法来进行调节,选择哪个服务来进行调用。默认无需对
Ribbon进行配置,它会采用默认的算法进行负载均衡。可以对负载均衡的
算法进行挑选,在调用方配置文件中对Ribbon负载均衡算法进行替换,默
认是雨露均沾式算法,可供挑选的算法总共有11种,比如RandomRule随机
数式算法,还有的算法可以对节点的响应时间进行计算,择优录用。
Ribbon的依赖就在sping-cloud-starter-eureka组件中,无需另外引用。
Zuul网关:
①首先引依赖,Cloud Routing-->Zuul勾选后就引入依赖了。
②在yml配置文件中进行配置,zuul:routes:dm-user-consumer:/user/**
这段配置的意思是对所有访问/user的请求进行拦截,zuul实质就相当于
一个过滤器。
③在启动类上添加@EnableZuulProxy注解。
通过网关可以隐藏真正的访问地址,在访问地址中新增/user将通过网关
进行访问。一共有四大类过滤器,首先经过PRE过滤器,再经过ROUTE过滤
器,ROUTE过滤器会去访问真正的consumer组件,接着访问POST过滤器,
最后响应回前端,如果在这个过程中出现异常,就会经由ERROR过滤器进
行处理。自定义一个类实现ZuulFilter接口,添加@Conponent注解注册到
容器。在实现的run方法中进行登录的控制或其他业务逻辑。