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
原文地址:https://cloud.tencent.com/developer/article/2024207
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。