SpringCloud-服务调用

原文视频链接:https://www.bilibili.com/video/BV18E411x7eT?from=search&seid=11303564036825263144
springCloud中文文档:https://www.bookstack.cn/read/spring-cloud-docs/docs-index.md
springCloud中文网:https://www.springcloud.cc

1,Ribbon负载均衡

SpringCloud-服务调用_第1张图片

1.1,负载均衡LB分类

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

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

SpringCloud-服务调用_第2张图片

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

在这里插入图片描述

1.1.3,两者区别

SpringCloud-服务调用_第3张图片

1.2,Ribbon工作流程

Ribbon就是负载均衡+RestTemplate
SpringCloud-服务调用_第4张图片

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

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

SpringCloud-服务调用_第5张图片

1.3.1,ribbon的轮询算法原理

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

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

在这里插入图片描述
SpringCloud-服务调用_第7张图片

创建配置类,指定负载均衡算法
SpringCloud-服务调用_第8张图片
在主启动类上加一个注解
SpringCloud-服务调用_第9张图片

1.4,如何使用Ribbon

1.4.1,pom文件
eureka的新版本默认集成了ribbon,也可以手动引入ribbon
SpringCloud-服务调用_第10张图片
1.4.2,配置文件

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

2,OpenFeign

2.1,OpenFeign简单介绍

在这里插入图片描述
是一个声明式的web客户端,只需要创建一个接口,添加注解即可完成微服务之间的调用。
SpringCloud-服务调用_第11张图片
就是A要调用B,Feign就是在A中创建一个一模一样的B对外提供服务的的接口,我们调用这个接口,就可以服务到B

2.2,使用OpenFeign

使用Feign代替ribbon+RestTemplate

2.2.1,pom文件

<dependency>
    <groupId>org.springframework.cloudgroupId>
    <artifactId>spring-cloud-starter-feignartifactId>
    <version>1.3.2.RELEASEversion>
dependency>

2.2.2,配置文件

单纯的feign不需要配置

2.2.3,主启动类(开启)

SpringCloud-服务调用_第12张图片

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

SpringCloud-服务调用_第13张图片

2.2.5,OpenFeign超时机制

OpenFeign默认等待时间是1秒,超过1秒,直接报错
设置超时时间,修改配置文件:
因为OpenFeign的底层是ribbon进行负载均衡,所以它的超时时间是由ribbon控制
SpringCloud-服务调用_第14张图片

2.2.6,OpenFeign日志

在这里插入图片描述
OpenFeign的日志级别有:
SpringCloud-服务调用_第15张图片
如何使用OpenFeign的日志
第一步:在配置类中添加OpenFeign的日志类
SpringCloud-服务调用_第16张图片
第二步:为指定类设置日志级别
在这里插入图片描述
配置文件中:
在这里插入图片描述

你可能感兴趣的:(spring,cloud,spring,cloud,spring,boot)