【SCT】Spring Cloud Tencent Polaris Context
【引用】
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 Cloud Tencent Polaris SDK Context】
Polaris SDK Context 工程,提供了 SDKContext 实例获取、Polaris 配置修改,以及 Polaris 服务治理规则能力。
【自动配置】
`spring.factories`机制扫描自动配置类,并自定义注解满足 ` spring.cloud.polaris.enabled =true` 时,自动配置 Polaris SDKContext 实例。
SDKContext 初始化过程:
- 获取 SCT 的服务配置
- 调用 Polaris 方法进行初始化
- 初始化中获取位置信息
- 最后返回 SDKContext 实例
spring.factories
PolarisContextAutoConfiguration.java
【服务配置】
自定义 Polaris 配置修改接口,提供两个方法:修改与排序。并提供修改服务地址实现类,从配置文件获取 address 地址后,修改为 Polaris 全局服务链接地址。
自定义 Polaris服务配置方法:
- 获取用户定义的 Polaris 配置实例(即:ConfigurationImpl)
- 使用 SCT 配置覆盖用户定义的 Polaris 配置 (即:`spring.cloud.client.ip-address`)
- 从 Spring 容器中获取 PolarisConfigModifier 实现类集合,并进行排序。
- 循环执行实现类集合的修改接口。
PolarisConfigModifier.java
ModifyAddress.java
PolarisContextProperties.java
【服务治理规则】
依赖 SDKContext 实例,并提供获取两种规则方法:速率限制规则、路由器规则。
核心逻辑:
- 指定 namespace、service 配合不同的规则类型,得到服务+规则的唯一标识 key
- 使用该 key 执行 Polaris 的异步获取资源方法(即:syncGetResources)
- 最后使用该 key 获取资源返回结果
ServiceRuleManager.java
【结尾】
一年已经过去大半,是时候定一个小目标:阅读学习优秀的开源项目源代码。
本文是 Spring Cloud Tencent 第二篇文章,希望今年能完成整个 SCT 源代码的阅读与学习。
相关文章
- 一个java文件被执行的历程
- (25)STM32——ADC模数转换笔记
- (26)STM32——内部温度传感器笔记
- 【C语言】动态内存开辟的使用『malloc』
- (27)STM32——光敏传感器实验笔记
- 【C语言】内存函数
- (28)STM32——DAC数模转换笔记
- (29)STM32——PWM DAC实验笔记
- 【C语言】通讯录《静态内存版本》
- (30)STM32——DMA笔记
- (31)STM32——I2C实验笔记
- 【C语言】前言关键字
- (32)STM32——SPI实验
- 【C语言】auto 关键字
- (33)STM32——485实验笔记
- 【C语言】break 关键字
- (34)STM32——CAN通讯实验笔记
- 【C语言】case 关键字
- (35)STM32——红外遥控实验
- (36)STM32——DS18B20温度传感器