1,Ribbon负载均衡
1.1,负载均衡LB分类
负载均衡LB分为进程内LB(本地负载均衡)和集中式LB(服务端负载均衡),
1.1.1,进程内LB(本地负载均衡)
1.1.2,集中式LB(服务端负载均衡)
1.1.3,两者区别
1.2,Ribbon工作流程
Ribbon就是负载均衡+RestTemplate
1.3,Ribbon常用负载均衡算法:
IRule接口,Riboon使用该接口,根据特定算法从所有服务中,选择一个服务,
Rule接口有7个实现类,每个实现类代表一个负载均衡算法
1.3.1,ribbon的轮询算法原理
负载均衡算法:rest接口第几次请求数 % 服务器集群总数量 = 实际调用服务器位置下标,每次服务重启动后rest接口计数从1开始。
1.3.2,如何定制负载均衡算法
创建配置类,指定负载均衡算法
在主启动类上加一个注解
1.4,如何使用Ribbon
1.4.1,pom文件
eureka的新版本默认集成了ribbon,也可以手动引入ribbon
1.4.2,配置文件
ribbon:
ConnectTimeout: 10000 # 创建连接时间
ReadTimeout: 300000 # 处理数据时间
MaxTotalHttpConnections: 2000 # 连接池最大请求连接数
MaxConnectionsPerHost: 200 # 同一路径最大请求连接数
2,OpenFeign
2.1,OpenFeign简单介绍
是一个声明式的web客户端,只需要创建一个接口,添加注解即可完成微服务之间的调用。
就是A要调用B,Feign就是在A中创建一个一模一样的B对外提供服务的的接口,我们调用这个接口,就可以服务到B
2.2,使用OpenFeign
使用Feign代替ribbon+RestTemplate
2.2.1,pom文件
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
<version>1.3.2.RELEASE</version>
</dependency>
2.2.2,配置文件
单纯的feign不需要配置
2.2.3,主启动类(开启)
2.2.4,fegin需要调用的其他的服务的接口(调用)
2.2.5,OpenFeign超时机制
OpenFeign默认等待时间是1秒,超过1秒,直接报错
设置超时时间,修改配置文件:
因为OpenFeign的底层是ribbon进行负载均衡,所以它的超时时间是由ribbon控制
2.2.6,OpenFeign日志
OpenFeign的日志级别有:
如何使用OpenFeign的日志:
第一步:在配置类中添加OpenFeign的日志类
第二步:为指定类设置日志级别
配置文件中: