侧边栏壁纸
博主头像
buukle博主等级

布壳儿

  • 累计撰写 109 篇文章
  • 累计创建 17 个标签
  • 累计收到 9 条评论

目 录CONTENT

文章目录

spring(6) - feign Illegal character ((CTRL-CHAR, code 31))

administrator
2022-01-24 / 1 评论 / 0 点赞 / 1000 阅读 / 735 字

1. 场景

在多环境开发的时候,rpc调用使用feign ,线上环境使用短域名通过k8s的core-dns 进行服务发现,调用是没有问题的;在本地调试的时候,需要将下游服务通过kong(nginx代理出来,进行本地调用),此时使用feign调用可以通讯,但是解析响应报文失败,报错

Illegal character ((CTRL-CHAR, code 31)): only regular white space (\r, \n, \t) ...

2. 原因分析

使用短域名调用的时候, 不走nginx,所以都是原始报文交互,但是在本地调用的时候,调用线上环境需要经过nginx-ingress 代理才能访问到k8s集群中的服务,nginx 开启了 gzip, 所以响应的报文是压缩格式的,json是不能解析的

3. 解决

在dev环境,使用如下配置

feign.compression.request.enabled = true
feign.compression.response.enabled = true
feign.compression.response.useGzipDecoder = true

image.png

0

评论区