Spring Cloud Tencent 是腾讯开源的一站式微服务解决方案。SCT实现了Spring Cloud 标准微服务 SPI,开发者可以基于 Spring Cloud Tencent 快速开发 Spring Cloud 云原生分布式应用。
Spring Cloud Tencent 的核心依托腾讯开源的一站式服务发现与治理平台 Polaris,实现各种分布式微服务场景。
https://github.com/Tencent/spring-cloud-tencent
spring-cloud-tencent:1.6.0-Hoxton.SR12-SNAPSHOT
Spring Cloud:Hoxton.SR12
Spring Framework:5.2.22.RELEASE
【spring.factories】
指定开启 Spring Boot 自动配置类全路径。
【MetadataTransferAutoConfiguration.java】
元数据传输自动配置类。
1、判断 Web Application 类型是 SERVLET
2、判断 Web Application 类型是 REACTIVE
3、判断是否存在类:com.netflix.zuul.http.ZuulServlet
4、判断是否存在类:org.springframework.cloud.gateway.filter.GlobalFilter
5、判断是否存在类:feign.Feign
6、判断是否存在类:org.springframework.web.client.RestTemplate
【CustomTransitiveMetadataResolver.java】
从请求中获取需要传递的元数据信息,约定 key 前缀为:X-SCT-Metadata-Transitive-。
【DecodeTransferMetadataServletFilter.java】
Servlet 拦截器处理上游临时存储元数据信息,继承 OncePerRequestFilter 每次调用执行一次。
【DecodeTransferMetadata*Filter.java】
其他的过滤器逻辑都与 DecodeTransferMetadataServletFilter.java 一致。唯一的区别是按 Web Application 类型的不同,通过 Header 或Attribute 进行元数据传递。
一年已经过去大半,是时候定一个小目标:阅读学习优秀的开源项目源代码。
本文是 Spring Cloud Tencent 第四篇文章,希望今年能完成整个 SCT 源代码的阅读与学习。