在使用Istio1.5.4进行服务编排的时候,发现了一系列问题,这一系列问题中有一个令人匪夷所思的问题。有一个请求比如说叫做
www.12dong.com/api/dong/getinfo?type=1&sort=1
这个请求会因为Istio的原因报错这个错503 upstream connect error or disconnect/reset before headers
,但是当我改变参数为www.12dong.com/api/dong/getinfo?type=2&sort=1
的时候,返回就正常了。除此之外的请求大部分都很正常。
要说这个Api和其他Api相比不一样的地方就在于这个Api的逻辑之中,使用了FeginClient设定了所有的请求参数、Cookie等其它一些东西都会转发给另外一个服务的接口。
但是着实让我想不明白为什么参数不一样就会出现错误。难道是和请求体大小相关?我尝试了一下,在出错Api后面加了一大堆无用参数,结果发现还是有问题的。
这个问题中间省略一堆过程,最后通过设置istio-proxy日志等级为Debug,发现了一些有用的信息
[C28] protocol error: http/1.1 protocol error: unsupported transfer encoding
感觉上是和Http协议有关,把这个信息放到google里去搜索,发现了更多的信息。不过时间很近,最后一次回复是在三天前,依然没有给出解决方法。