侧边栏壁纸
博主头像
惊羽博主等级

hi ,我是惊羽,前生物学逃兵,现系统工程沉迷者 . 贝壳签约工程师 , 曾被雇佣为 联拓数科 · 支付研发工程师 、京东 · 京东数科 · 研发工程师、中国移动 · 雄安产业研究院 · 业务中台技术负责人 .

  • 累计撰写 100 篇文章
  • 累计创建 14 个标签
  • 累计收到 7 条评论

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

惊羽
2022-01-24 / 2 评论 / 0 点赞 / 565 阅读 / 471 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-01-24,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

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
广告 广告

评论区