上云无忧 > 文档中心 > 腾讯云微服务引擎 TSE Nacos 最佳实践 - Nacos 多活容灾
微服务引擎 TSE
腾讯云微服务引擎 TSE Nacos 最佳实践 - Nacos 多活容灾

文档简介:
操作场景: 当您在生产环境中已经使用了自建的 Nacos 集群,并希望在腾讯云中部署灾备集群时;或者对集群的高可用、稳定性以及网络上的跨地域延迟有要求时,可以参考本指引配置多活容灾与就近访问方案,以提供跨云、跨 IDC 机房之间的应用访问,或者腾讯云内的跨集群之间的应用访问。
*此产品及展示信息均由腾讯云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

操作场景

当您在生产环境中已经使用了自建的 Nacos 集群,并希望在腾讯云中部署灾备集群时;或者对集群的高可用、稳定性以及网络上的跨地域延迟有要求时,可以参考本指引配置多活容灾与就近访问方案,以提供跨云、跨 IDC 机房之间的应用访问,或者腾讯云内的跨集群之间的应用访问。

操作原理

Nacos 的核心功能为服务注册发现与配置管理,故 Nacos 多活容灾方案需要包括数据同步与服务注册发现同步:
数据同步:Nacos 的配置数据、用户信息、命名空间数据、访问控制等信息在数据库中持久化存储,因此首先需要使用 TSE Nacos 的数据同步功能实现源数据库到 TSE Nacos 数据库的全量迁移与实时增量同步,以保证每个 Nacos 集群都会有全量配置数据。
服务注册发现同步:采用 Java agent 的形式,在不改变业务代码的情况下,通过字节码增强的方式,实现服务的双注册和发现,以此提供服务同时在不同集群间路由的能力。
例如:当您在自建 IDC 机房和腾讯云分别部署了一整套应用和 Nacos 集群,可以通过本方案配置多活容灾与就近访问。即 IDC 机房内的 consumer 应用调用 provider 应用时,优先访问 IDC 内的 provider 应用,如果找不到该应用,则访问腾讯云中的 provider 应用。
Nacos 多活部署架构图

前提条件

1. 登录 TSE 控制台,新建一个 nacos 实例,并获取客户端访问地址。详细操作请参见 引擎管理

2. 访问 Github 地址,下载 Polaris Java Agent(支持 Nacos 双注册双发现)。

操作步骤

步骤1:开启数据同步

通过 TSE Nacos 的配置数据同步能力,将源 Nacos 数据库导入与同步至 TSE Nacos 集群。请参考 Nacos 数据同步

步骤2:配置自建集群中的服务双注册发现

1. 将提前下载好的 polaris java agent zip 包上传到您的服务所部署的路径下并解压,确认该位置可以被正常访问。
2. 将原本注册在自建集群中的服务依次重新部署并双注册至 TSE Nacos 集群,部署时需要添加如下参数:
		
java
-javaagent:/*/polaris-java-agent-v*/polaris-agent-core-bootstrap.jar
-Dplugins.enable=nacos-all-plugin
-Dnacos.cluster.name=*
-Dother.nacos.server.addr=**.**.**.**
-Drouter.nearby.level=nacos_cluster -jar xx.jar
说明
四处 * 分别代表 polaris java agent 所在的路径、版本号、集群名称、另一个 Nacos 集群的客户端访问地址。
Java Agent 参数配置 polaris java agent 提供以下配置项,所有的配置项通过系统变量(-D参数)的方式进行配置。
配置项
描述
必填
可选值
默认值
plugins.enable
选择需要加载的插件
nacos-all-plugin
nacos-all-plugin
nacos.cluster.name
Nacos 集群名称/标签,唯一标识即可
唯一标识即可
other.nacos.server.addr
另一个 Nacos 集群的访问地址
router.nearby.level
就近路由级别
null:不开启就近路由,采用客户端配置的路由策略,默认为轮询策略。nacos_cluster:开启集群级别的就近路由,优先路由至相同 nacos.cluster.name 下的服务。
null
3. 部署成功后,在 TSE Nacos 原生控制台的服务管理页面可以看到注册的服务。Nacos 原生控制台的访问方式请参见 访问控制。此时服务在自建 Nacos 集群和 TSE Nacos 集群中均进行了注册。
4. 观察自建的 Nacos 集群和 TSE 的 Nacos 集群,依次验证下注册、发现、反注册,看是否均符合预期。待所有服务均重新部署完毕后,在自建 Nacos 集群和 TSE Nacos 集群的控制台均能看到所有服务以及其下的实例信息。

步骤3:配置 TSE Nacos 集群中的服务双注册发现

重复 步骤2 中的操作,将原本注册至 TSE Nacos 集群中的服务依次重新部署,并双注册至自建 Nacos 集群。请注意将 Java Agent 参数配置项中的 nacos.cluster.name 与 other.nacos.server.addr 修改为合适的值。
完成以上步骤后,您已经成功配置了自建 Nacos 集群与 TSE Nacos 集群之间的多活方案,建议您保持 TSE Nacos 数据同步任务的持续运行,并保持在自建 Nacos 集群更新配置数据,以保证集群之间的数据一致。

相似文档
  • TSE 是否支持公网访问? TSE 目前支持开启 Zookeeper、Consul、Nacos 的公网访问。固定开启 Apollo 配置中心界面的公网访问,支持开启 Apollo config service 的公网访问。
  • 为使用腾讯云向客户提供的微服务引擎 TSE 服务(以下简称“本服务”),您应当阅读并遵守《微服务引擎 TSE 服务等级协议》(以下简称“本协议”或“SLA”),以及《腾讯云服务协议》。本协议包含本服务的术语和定义、服务可用性/服务成功率等级指标、赔偿方案、免责条款等相关内容。请您务必审慎阅读、充分理解各条款内容,限制、免责条款或者其他涉及您重大权益的条款可能会以加粗、加下划线等形式提示您重点注意。
  • 弹性微服务(Tencent Cloud Elastic Microservice)是面向微服务应用的 Serverless PaaS 平台,实现资源 Serverless 化与微服务架构的完美结合,为用户提供一整套开箱即用的微服务解决方案。 弹性微服务拥抱开源,支持 Spring Cloud 原生应用零改造上云,提供应用托管、服务注册发现、微服务治理、多维度监控等能力,支持 ZooKeeper 等注册中心。
  • 2022-09-20,支持 Prometheus 高级监控的能力:您现在可以为应用绑定腾讯云可观测平台 Prometheus 实例以采集监控数据。
  • 通过弹性微服务,用户可以实现零代码改造、低成本接入,快速部署微服务应用,并享受 Serverless 化的资源管理、秒级弹性伸缩、免运维等能力,让业务研发只需聚焦业务逻辑,无需关心底层资源。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部