Feign的请求压缩

编程

今天看到有关于Feign的请求压缩,这里记录一下...

首先Feign 是通过 http 调用的,那么就牵扯到一个数据大小的问题。如果不经过压缩就发送请求、获取响应,那么会因为流量过大导致浪费流量,这时就需要使用数据压缩,将大流量压缩成小流量。

Feign GZIP 压缩

源码:https://gitee.com/laiyy0728/spring-cloud/tree/master/spring-cloud-feign/spring-cloud-feign-gzip

Feign的请求压缩配置:

feign:

compression:

request:

enabled: true

mime-type: text/html,application/xml,application/json

min-request-size: 2048

response:

enabled: true

# 开启日志

logging:

level:

com.laiyy.gitee.feign.springcloudfeigngzip.feign.GiteeFeignClient: debug

由于使用 gzip 压缩,压缩后的数据是二进制,那么在获取 Response 的时候,就不能和之前一样直接使用 String 来接收了,需要使用 ResponseEntity<byte[]> 接收

@FeignClient(name = "xxx-service", url = "https://www.xxx.com/", configuration = GiteeFeignConfiguration.class)

public interface GiteeFeignClient {

@RequestMapping(value = "/search", method = RequestMethod.GET)

ResponseEntity<byte[]> searchRepo(@RequestParam("q") String query);

}

对应的Controller 也需要改为 ResponseEntity<byte[]>

@GetMapping(value = "feign-gitee")

public ResponseEntity<byte[]> feign(String query){

return giteeFeignClient.searchRepo(query);

}

更具体地可参考博客: https://www.jianshu.com/p/e29d7f6be6e3

 

 

以上是 Feign的请求压缩 的全部内容, 来源链接: utcz.com/z/510576.html

回到顶部