总结一下Feign的知识点

一、什么是OpenFeign

OpenFeign目前是Spring Cloud二级子项目。平时所说的Feign指的是Netflix下的Feign。
它是一种申明式、模板化的HTTP客户端,使用时好像在写控制器,代码写在接口中,在声明方法上添加SpringMVC注解或者声明的参数上添加SpringMVC注解就可以完成调用远程的控制方法。

二、OpenFeign远程调用的基本语法

1、无参方法的的远程调用

package com.lxh.service;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;

@FeignClient("USER-SERVICE")
public interface FeignService {
    /**
     * 方法要求:
     *  返回参数:和远程方法对应(其实能转换的话不对应也可以)
     *  参数:要与远程方法一致
     *  方法名: 随意
     *  请求方式:要与远程方法一致
     *  请求路径:远程接口路径
     */
     @GetMapping("/hello")
     String callServiceHello();
}

2、普通表单远程调用

    /**
     * 通过@Requstparam注解传递表单参数,如果变量名和远程方法一致可以不写name,
     *否则就得这样写@Requstparam("userName")
     */
    @PostMapping("/printUserNameAndPassword")
    String callUserServicePrintUserNameAndPassword(@RequestParam("userName") 
                                                   String username,
                                                   @RequestParam 
                                                   String password);

3、restful参数传递远程调用

@GetMapping("/restful/{userName}/{age}")
String callUserRestful(@PathVariable String userName, @PathVariable Integer age);

4、传递实体参数的远程方法调用

    /**
     * 隐式的添加了@ResquestBody注解,Feign中最多只能有一个不加注解的参数
     */
    @PostMapping("/entityParam")
    User callEntityParam(User user);

三、OpenFeign通讯优化

1、gzip:

  • 概念

数据格式,采用deflate格式压缩。

  • 作用

网络数据压缩后实际上降低了网络传输的字节,可以加快网页加载速度。
另外搜索引擎直接抓取gzip文件比直接抓取普通文件更快。

2、Http请求中关于压缩传输协议的规定

![image.png](https://img-blog.csdnimg.cn/img_convert/d67efffafd7cca733f427805c683e56d.png#clientId=u6bb12d85-4595-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=185&id=uc61105ed&margin=[object Object]&name=image.png&originHeight=185&originWidth=924&originalType=binary&ratio=1&rotation=0&showTitle=false&size=55856&status=done&style=none&taskId=ubd108ac3-9ed8-4a01-91cc-2456bb2994a&title=&width=924)

3、OpenFiegn运行gzip压缩

只影响到微服务调用之间的调用的压缩数据传输,不影响浏览器和ApplicationClient的传输。

4、配置OpenFiegn请求-应答gzip压缩

# 开启请求gzip
compression.request.enabled=true
# 设置支持gzip的请求、响应类型(MIME)
compression.request.mime-types=text/xml,application/xml,application/json
# 配置启动压缩的最小阈值,默认2048
compression.request.min-request-size=2048
# 开启响应gzip
compression.response.enabled=true
# 配置gzip响应解压
compression.response.useGzipDecoder=true。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值