前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【SCT】Spring Cloud Tencent Polaris Context

【SCT】Spring Cloud Tencent Polaris Context

作者头像
FoamValue
发布2022-12-20 16:31:51
6030
发布2022-12-20 16:31:51
举报
文章被收录于专栏:FoamValueFoamValue

【引用】

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 源代码的阅读与学习。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-10-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Alan 手记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 【引用】
    • 版本信息
    • 【Spring Cloud Tencent Polaris SDK Context】
    • Polaris SDK Context 工程,提供了 SDKContext 实例获取、Polaris 配置修改,以及 Polaris 服务治理规则能力。
    • 【自动配置】
    • 【服务配置】
    • 【服务治理规则】
    • 【结尾】
    相关产品与服务
    容器服务
    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档