如何解决阻止Envoy修改分片密钥
我们使用两层Envoy设置。
[front-end] -> E -> [middleware] -> E -> [backend]
中间件应该从HTTP元数据中获取分片密钥,并在与后端通信时重新传输。
我们注意到,Envoy修改了HTTP标头,这使我们的服务在gRPC内部崩溃。
E1016 11:19:45.808599731 19 call.cc:912] validate_metadata: {"created":"@1602847185.808584663","description":"Illegal header value","file":"external/com_github_grpc_grpc/src/core/lib/surface/validate_metadata.cc","file_line":44,"offset":56,"raw_bytes":"36 37 36 38 33 61 34 34 36 35 36 35 37 30 34 33 36 66 36 34 36 35 34 31 34 39 33 61 36 35 36 33 36 63 36 39 37 30 37 33 36 35 32 64 37 30 36 63 37 35 36 37 36 39 36 65 a5 '67683a44656570436f646541493a65636c697073652d706c7567696e.'\u0000"}
E1016 11:19:45.808619606 19 call_op_set.h:947] assertion failed: false
有什么办法可以避免这种情况?
更新:
似乎只发生在x-
标头上。
解决方法
问题实际上与最终Envoy无关。事实证明,gRPC字符串不是以null终止的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。