栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring Cloud 系列之服务调用 OpenFeign的实现

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring Cloud 系列之服务调用 OpenFeign的实现

1.1 简介

 1.1.1 概述

  Feign 旨在使编写 Java Http 客户端变得更容易。在使用 Ribbon + RestTemplate 时,利用 RestTemplate 对 http 请求的封装处理,形成了一套模版化的调用方法。但是在实际开发中,由于对服务依赖的调用可能不止一处,往往一个接口会被多处调用,所以通常都会针对每个微服务自行封装一些客户端类来包装这些依赖服务的调用。所以,Feign 在 Ribbon 基础上做了进一步封装,由他来帮助我们定义和实现依赖服务接口的定义。在 Feign 的实现下,我们只需创建一个接口并使用注解的方式来配置它,即可完成对服务提供方的接口绑定,简化了使用 Spring cloud Ribbon 时,自动封装服务调用客户端的开发量。与 Ribbon 不同的是,通过 Feign 只需要定义服务绑定接口且以声明式的方法,优雅而简单的实现了服务调用
  Feign 已经停止维护,OpenFeign 是 Spring Cloud 在 Feign 的基础上进一步开发出来替代 Feign 的技术,支持了 SpringMVC 的注解,如 @RequesMapping 等等。OpenFeign 的 @FeignClient 可以解析 SpringMVC 的 @RequestMapping 注解下的接口,并通过动态代理的方式产生实现类,实现类中做负载均衡并调用其他服务。

1.1.2 相关依赖


 org.springframework.cloud
 spring-cloud-starter-openfeign

1.2 简单使用

1.2.1 基础工程

☞ eureka 项目

1.2.2 Feign 客户端


@Component
@FeignClient("ProviderServer")	// 服务提者名称
public interface ProviderFeign {

 @GetMapping("/provider/get")	// 服务地址
 public String get();
}

1.2.3 启动类

@SpringBootApplication
@EnableFeignClients
public class ConsumerApplication {
 public static void main(String[] args) {
 SpringApplication.run(ConsumerApplication.class, args);
 }
}

1.2.4 调用服务

  我们可以发现 Feign 自带负载均衡配置,而 OpenFeign 默认支持 Ribbon,我们可以通过 Ribbon 的配置来修改负载均衡策略。Ribbon 详情参考 ☞Spring Cloud 系列之负载均衡 Ribbon

1.3 其他配置

 1.3.1 超时控制

# 设置 feign 客户端超时时间, 默认 1s
feign:
 client:
 config:
 default:
 connectTimeout: 5000
 readTimeout: 5000


# OpenFeign 默认支持 Ribbon,也可以使用以下配置
ribbon:
 # 建立连接所用时间,适用于网络正常的情况下,两端连接所用的时间
 ConnectTimeout: 5000
 # 建立连接后从服务器读取到可用资源所用的时间
 ReadTimeout: 5000

1.3.2 数据压缩

feign:
 compression:
 request:
 # 开启数据压缩请求
 enabled: true
 # 压缩数据类型
 mime-types: text/xml, application/xml, application/json
 # 数据压缩下限 2048表示传输数据大于2048 才会进行数据压缩(最小压缩值标准)
 min-request-size: 2048
 # 开启数据压缩响应
 response:
 enabled: true

1.3.3 日志配置

☞ 日志级别

 ♞ NONE:不开启日志(默认)
 ♞ BASIC:记录请求方法、URL、响应状态、执行时间
 ♞ HEADERS:在 BASIC 基础上增加请求/响应头
 ♞ FULL:在 HEADERS 基础上增加 body 和请求元数据

☞ 配置类

@Configuration
public class LogConfig {
 @Bean
 Logger.Level loggerLevel(){
 return Logger.Level.FULL;
 }
}

☞ 配置文件

logging:
 level:
 # 以什么级别监控那个接口
 com.software.controller: debug

☞ 输出



☞ 源码

到此这篇关于Spring Cloud 系列之服务调用 OpenFeign的实现的文章就介绍到这了,更多相关Spring Cloud服务调用 OpenFeign内容请搜索考高分网以前的文章或继续浏览下面的相关文章希望大家以后多多支持考高分网!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/130604.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号