一、前提条件
你已经将 Spring Cloud 应用部署在腾讯云上。
二、迁移价值
·TSF 为你提供一站式应用生命周期管理服务。提供从应用部署到应用运行的全流程管理,包括创建、删除、部署、回滚、扩容、下线、启动和停止应用并支持版本回溯能力。
·TSF 为你提供高效的服务注册发现能力。支持秒级的服务注册发现并提供本地注册信息缓存、服务实例注册发现异常告警、注册中心跨AZ区容灾等完善的高可用保障机制。
·TSF 为你提供细粒度服务治理能力。支持服务和 API 多级服务治理能力,通过配置标签形式进行细粒度的流量控制,实现灰度发布、就近路由、熔断限流、服务容错、访问鉴权等功能。
·TSF 为你提供立体化应用数据运营。提供完善应用性能指标监控和分布式调用链分析、服务依赖拓扑、日志服务工具,帮助你高效分析应用性能瓶颈及故障问题排查。
·TSF 为你提供灵活的分布式配置管理能力。支持配置版本管理、动态推送、热生效能力。
三、迁移方案
为保障应用迁移过程中流量不中断,你可以通过切流迁移和迁移实例的双注册发现迁移两种方式实现平滑迁移。具体方案如下:
四、切流迁移方案
·实现方法:业务应用需要改造后在 TSF 集群全量部署,应用全部改造上线后通过切换域名配置将域名指向新集群的 CLB 服务均衡地址实现流量切换。
·方案优点:操作简单,原有应用集群和 TSF 集群不存在相互影响。
·方案缺点:需要保持两套集群同时运行,存在资源浪费;此外,由于是全量迁移,迁移过程中存在业务异常的概率较大。
五、双注册发现方案
·方案说明:你仅需要将迁移的应用引入 TSF 组件依赖并进行双注册中心服务注册配置,将改造后的应用通过 TSF 进行部署,部署后的 Spring Cloud 应用即可被原应用集群和 TSF 集群中的服务发现,正常进行服务调用。
·方案优点:
·改造量小,仅需引入 TSF 组件依赖并进行完成配置操作,无需改动代码即可实现双注册发现能力。
·在迁移过程中实现已迁移应用与未迁移应用的互相发现,实现服务调用,有效保障业务连续性。
·整体服务迁移完成后,通过TSF提供配置管理能力可动态变更服务注册发现策略,无需重启应用即可完成迁移。
·迁移后的应用优先调用TSF内的服务实例,避免跨集群调用产生性能损耗。
注意:目前 TSF 支持原有注册中心引擎为 Eureka、Zookeeper、Consul 与 TSF 注册中心引擎的双注册发现能力。
六、操作步骤
1. 在迁移的服务应用的 pom.xml 文件中引入 TSF 依赖:
<parent> <groupId>com.tencent.tsf</groupId> <artifactId>spring-cloud-tsf-dependencies</artifactId> <version><!– 调整为 SDK 最新版本号 –></version></parent>
注意:应用该功能 SDK 版本必须在1.24.0-Finchley-RELEASE、1.24.0-Greenwich-RELEASE 以上。
2. 在 application.properties 中添加双注册发现配置。
exclude 字段代表不将服务注册到哪些服务注册中心引擎;subscribes 字段代表从哪些服务注册引擎发现服务信息。
tsf: migration: registry: // 不注册到ZOOKEEPER excludes: ZOOKEEPER // 从 EUREKA、TSF 进行服务发现 subscribes: – EUREKA – TSF
3. 将应用打包。
登录 TSF 控制台,参照 虚拟机托管应用 或者 容器托管应用 完成应用发布。
4. 验证结果。
通过原有集群服务调用可发现服务是否正常,此外在应用中心 > 服务治理查看应用发布地域及命名空间查看是否存在服务信息,如果服务注册正常则具有该微服务名称、状态、运行实例、请求量等信息。
5. 在以上应用验证成功后,可逐步其他应用。
6. 清理迁移配置。
迁移完成后,登录 TSF 控制台,参照 配置管理 动态变更服务注册发现方式,将原有集群的注册中心配置移除。