IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Spring Cloud Openfeign -> 正文阅读

[Java知识库]Spring Cloud Openfeign

目录

一、 Openfeign 简介

1 使用 Feign 技术开发时的应用部署结构

1 编写Service API

2?创建 Application Service 服务提供者 Module

3?创建 Application Client 服务消费者 Module

注意注意:

4??参数处理简单总结

二?Openfeign 的性能优化

1 GZIP 简介

2 HTTP 协议中的压缩传输简介

3 在 Openfeign 技术中应用 GZIP 压缩

3.1 只配置 Openfeign 请求-应答中的 GZIP 压缩

3.2 配置全局 GZIP 压缩?

三?配置 Openfeign 负载均衡请求超时时间?

1 超时时间配置

2 负载均衡配置


一、 Openfeign 简介

Openfeign 是一种声明式、模板化的 HTTP 客户端(仅在 Application Client 中使用)。声
明式调用是指,就像调用本地方法一样调用远程方法,无需感知操作远程 http 请求。
Spring Cloud 的声明式调用 , 可以做到使用 HTTP 请求远程服务时能就像调用本地方
法一样的体验,开发者完全感知不到这是远程方法,更感知不到这是个 HTTP 请求。
Openfeign 的应用,让 Spring Cloud 微服务调用像 Dubbo 一样, Application Client 直接通过
接口方法远程调用 Application Service ,而不需要通过常规的 RestTemplate 构造请求再解析
返回数据。它解决了让开发者调用远程接口就跟调用本地方法一样,无需关注与远程的交
互细节,更无需关注分布式环境开发

1 使用 Feign 技术开发时的应用部署结构

在使用 Openfeign 技术开发 Spring Cloud 微服务时,需要先抽取要注册发
布的服务标准,将这套标准通过接口的形式定义出来。
Application Service 端开发中,依赖抽取的服务标准接口工程,并对接
口给予实现。
Application Client 端开发中,依赖抽取的服务标准接口工程,并应用接
口信息和 Openfeign 技术,实现远程服务的调用。
在整体微服务开发中, Eureka Server 作为注册中心必不可少,注册中心的
作用不变,仍旧是注册和发现服务。

1 编写Service API

随便写:

?

注意: 如果绑定的参数是普通参数的话要用

@RequestParam 注解描述。 ?且,无论方法参数名和请求参数名是否一致,都需要定义@RequestParam 注解的

?

使用 POST 请求传递自定义类参数。 必须使用@RequestBody 处理。

2?创建 Application Service 服务提供者 Module

添加依赖:

实现ServiceAPI?

?编写配置文件:

启动类:

在启动类上添加@EnableDiscoveryClient,听说不用添加了

3?创建 Application Client 服务消费者 Module

1 添加依赖:

2 编写抽取出的接口 :

3 编写controller

通过注入实现服务的调用

?4 编写启动类:

?

注意注意:

我们使用openfeign的时候不用这么麻烦,在编写服务提供方的时候正常编写controller就可以了,然后再服务消费方编写一个接口通过@FeignClient和服务名就好,前提是服务消费方中定以的抽象方法要和服务提供方的controller一致,然后通过@RequestParam或者@RequestBody来绑定参数即可

服务提供方:

服务消费方:?

?

4??参数处理简单总结

Openfeign 处理远程服务调用时,传递参数是通过 HTTP 协议传递的,参数存在的
位置是请求头或请求体中。请求头传递的参数必须依赖 @RequestParam 注解来处理请求参
数,请求体传递的参数必须依赖 @RequestBody 注解来处理请求参数。

二?Openfeign 的性能优化

1 GZIP 简介

gzip 介绍: gzip 是一种数据格式,采用用 deflate 算法压缩数据; gzip 是一种流行的数
据压缩算法,应用十分广泛,尤其是在 Linux 平台。
gzip 能力:当 Gzip 压缩到一个纯文本数据时,效果是非常明显的,大约可以减少 70
以上的数据大小。
gzip 作用:网络数据经过压缩后实际上降低了网络传输的字节数,最明显的好处就是
可以加快网页加载的速度。网页加载速度加快的好处不言而喻,除了节省流量,改善用户
的浏览体验外,另一个潜在的好处是 Gzip 与搜索引擎的抓取工具有着更好的关系。例如
Google 就可以通过直接读取 gzip 文件来比普通手工抓取更快地检索网页。

2 HTTP 协议中的压缩传输简介

第一:客户端向服务器请求头中带有: Accept-Encoding:gzip, deflate
字段,向服务器
表示,客户端支持的压缩格式( gzip 或者 deflate) ,如果不发送该消息头,服务器是不会压
缩的。
第二:服务端在收到请求之后,如果发现请求头中含有 Accept-Encoding 字段,并且
支持该类型的压缩,就对响应报文压缩之后返回给客户端,并且携带 Content-Encoding:gzip
消息头,表示响应报文是根据该格式压缩过的。
第三:客户端接收到响应之后,先判断是否有 Content-Encoding 消息头,如果有,按
该格式解压报文。否则按正常报文处理。

?

3 Openfeign 技术中应用 GZIP 压缩

Spring Cloud 微服务体系中,一次请求的完整流程如下:

在整体流程中,如果使用 GZIP 压缩来传输数据,涉及到两次请求 - 应答。而这两次请
- 应答的连接点是 Application Client ,那么我们需要在 Application Client 中配置开启 GZIP
压缩,来实现压缩数据传输。

3.1 只配置 Openfeign 请求-应答中的 GZIP 压缩

只开启 Feign 请求 - 应答过程中的 GZIP ,也就是浏览器 -Application Client 之间的请求
应答不开启 GZIP 压缩。
在全局配置文件中,使用下述配置来实现 Openfeign 请求 - 应答的 GZIP 压缩

3.2 配置全局 GZIP 压缩?

三?配置 Openfeign 负载均衡请求超时时间?

Openfeign 技术底层是通过 Ribbon 技术实现的,那么在负载均衡和超时时间配置上,
主要对 Ribbon 的配置。具体配置如下:

1 超时时间配置

2 负载均衡配置

?

?

?

?

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-09-20 15:39:09  更:2021-09-20 15:40:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 16:41:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码