Haotian Zhang

Results 47 comments of Haotian Zhang

grpc, netty, guava should be shaded.

> @lepdou 我来试试。有时间要求吗?预计下周才有时间研究和编写代码 时间上先暂定这个月~

> 为什么我觉得这像是已有的功能呢?在元数据路由中,可以给流量染色,其中静态染色时,可以定义哪些实例标签作为请求标签透传到链路上,比如`SCT_METADATA_CONTENT_TRANSITIVE=IDC,ENV`就能将key为`IDC`和`ENV`的标签透传。 可能没真正明白您的意思,还请再解释解释。 比如说有个请求的头部包含 `x-uid=100`,使用者想将这个头部往下游传递,并且保持头部为 `x-uid`,而不是 `SCT_METADATA_CONTENT_TRANSITIVE=x-uid0` 的方式。

> > > 为什么我觉得这像是已有的功能呢?在元数据路由中,可以给流量染色,其中静态染色时,可以定义哪些实例标签作为请求标签透传到链路上,比如`SCT_METADATA_CONTENT_TRANSITIVE=IDC,ENV`就能将key为`IDC`和`ENV`的标签透传。 可能没真正明白您的意思,还请再解释解释。 > > > > > > 比如说有个请求的头部包含 `x-uid=100`,使用者想将这个头部往下游传递,并且保持头部为 `x-uid`,而不是 `SCT_METADATA_CONTENT_TRANSITIVE=x-uid0` 的方式。 > > 那作者@andrewshan提出的实现方式“用户可以在pod中,增加一个环境变量,指定需要透传的标签,SCT识别到这个标签后,就进行传递”,应该怎么理解?就是因为这个,我才觉得像`SCT_METADATA_CONTENT_TRANSITIVE=x-uid0`。 主要思想应该是不想带有 `SCT` 开头的标签,而是用更通用的方式,以兼容其他语言和框架。

> 如约定设置请求标签透传的环境变量为`SCT_PROTOCOL_CONTENT_TRANSITIVE_HEADER`, > > 服务接收到请求时,在`DecodeTransferMetadataServletFilter#doFilterInternal(HttpServletRequest, , )`逻辑中,根据`MetadataContext`中`SCT_PROTOCOL_CONTENT_TRANSITIVE_HEADER`的值列表,解析出`HttpServletRequest`中的对应的`headers`,以新的外层key如`trans-header`将其保存到`MetadataContext`双层Map结构的`fragmentContexts`集合中。 > > 服务远程调用下游服务时, Feign:在`EncodeTransferMedataFeignInterceptor#apply(RequestTemplate)`中,从`MetadataContext.fragmentContexts`的`trans-header`中取出需要传递给下游的头信息,设置到`RequestTemplate`的`header`中。 RestTemplate:在`EncodeTransferMedataRestTemplateInterceptor#intercept(HttpRequest, , )`中,从`MetadataContext.fragmentContexts`的`trans-header`中取出需要传递给下游的头信息,设置到`HttpRequest`的`header`中。 > > 该思路正确吗? 可以的👏

> @SkyeBeFreeman main分支是重命名成hoxton了吗?我基于main分支做的修改,是不是应该PR到hoxton分支? 是的