1,Ribbon负载均衡

springcloud 某个接口超时时间_配置文件

1.1,负载均衡LB分类

负载均衡LB分为进程内LB(本地负载均衡)和集中式LB(服务端负载均衡),

1.1.1,进程内LB(本地负载均衡)

springcloud 某个接口超时时间_负载均衡_02

1.1.2,集中式LB(服务端负载均衡)

springcloud 某个接口超时时间_spring_03

1.1.3,两者区别

springcloud 某个接口超时时间_配置文件_04

1.2,Ribbon工作流程

Ribbon就是负载均衡+RestTemplate

springcloud 某个接口超时时间_spring cloud_05

1.3,Ribbon常用负载均衡算法:

IRule接口,Riboon使用该接口,根据特定算法从所有服务中,选择一个服务,
Rule接口有7个实现类,每个实现类代表一个负载均衡算法

springcloud 某个接口超时时间_配置文件_06

1.3.1,ribbon的轮询算法原理

负载均衡算法:rest接口第几次请求数 % 服务器集群总数量 = 实际调用服务器位置下标,每次服务重启动后rest接口计数从1开始。

springcloud 某个接口超时时间_负载均衡_07

1.3.2,如何定制负载均衡算法

springcloud 某个接口超时时间_配置文件_08


springcloud 某个接口超时时间_负载均衡_09

创建配置类,指定负载均衡算法

springcloud 某个接口超时时间_spring boot_10


在主启动类上加一个注解

springcloud 某个接口超时时间_配置文件_11

1.4,如何使用Ribbon

1.4.1,pom文件

eureka的新版本默认集成了ribbon,也可以手动引入ribbon

springcloud 某个接口超时时间_spring boot_12


1.4.2,配置文件

ribbon:
  ConnectTimeout: 10000 # 创建连接时间
  ReadTimeout: 300000 # 处理数据时间
  MaxTotalHttpConnections: 2000 # 连接池最大请求连接数
  MaxConnectionsPerHost: 200 # 同一路径最大请求连接数

2,OpenFeign

2.1,OpenFeign简单介绍

springcloud 某个接口超时时间_负载均衡_13


是一个声明式的web客户端,只需要创建一个接口,添加注解即可完成微服务之间的调用。

springcloud 某个接口超时时间_负载均衡_14


就是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,主启动类(开启)

springcloud 某个接口超时时间_spring boot_15

2.2.4,fegin需要调用的其他的服务的接口(调用)

springcloud 某个接口超时时间_spring boot_16

2.2.5,OpenFeign超时机制

OpenFeign默认等待时间是1秒,超过1秒,直接报错

设置超时时间,修改配置文件:

因为OpenFeign的底层是ribbon进行负载均衡,所以它的超时时间是由ribbon控制

springcloud 某个接口超时时间_spring cloud_17

2.2.6,OpenFeign日志

springcloud 某个接口超时时间_spring_18


OpenFeign的日志级别有:

springcloud 某个接口超时时间_spring cloud_19


如何使用OpenFeign的日志

第一步:在配置类中添加OpenFeign的日志类

springcloud 某个接口超时时间_spring boot_20


第二步:为指定类设置日志级别

springcloud 某个接口超时时间_spring_21


配置文件中:

springcloud 某个接口超时时间_spring_22