0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

华为云微服务引擎0停机迁移Nacos?它是这样做的

科技之光2 来源:科技之光2 作者:科技之光2 2022-12-29 20:01 次阅读

华为云微服务引擎| 0停机迁移Nacos? “它”是这样做的

迁移云环境****场景

• 微服务规模小,使用微服务引擎CSE成本太高。

• dubbo/Nacos微服务架构改造dubbo-servicecomb接入CSE需要投入的成本高,且社区dubbo-servicecomb未投入人力维护,可能遇到很多适配问题。

• 仅想使用CSE的治理能力,配置中心仍然使用Nacos,或者后期微服务整改后使用CSE,但是目前想使用Nacos过渡情况。

• 倾向使用Nacos作为配置中心使用,其它使用华为云的其它组件,如CCE、中间件等。

• 使用Nacos或者想用Nacos的客户,项目整改比较紧急,调整框架迁移CSE时间不够。

• 想使用Nacos作为配置中心,但是又不想去动原有的代码逻辑。

概述

结合市场痛点,华为云提供托管版Nacos引擎,能帮助客户免去运维Nacos集群的烦恼,更加聚焦业务本身的实现,同时华为云也提供专业的Nacos专家支持。本文介绍如何将Spring Cloud应用从开源Consul无缝迁移至华为云Nacos。

什么是Sermant Agent

Sermant Agent是一种基于JavaAgent的无代理服务网格技术。它利用JavaAgent来检测主机应用程序,并具有增强的服务治理功能,以解决海量微服务架构中的服务治理问题。

Sermant Agent处于快速发展阶段,当前已支持多种服务治理能力,包含流量治理、注册、优雅上下线及动态配置能力。

为什么使用Sermant Agent接入

代码零侵入,配置很简单

相较于SDK方式接入,基于Sermant Agent的接入会更加快捷高效,配置简单,且应用无需做任何代码改造,仅需在服务启动时附带Sermant Agent即可动态接入到CSE的Nacos。

支****持多种治理能力

Sermant Agent默认集成流量治理能力,当前支持熔断、限流、隔离仓以及重试治理能力,该能力可基于CSE配置中心进行配置与发布。

支持多种注册中心

Sermant Agent目前支持业内主流的注册中心,已经支持了ServiceComb ServiceCenter、Naocs,Eureka、Zookeeper等正在开发中。

支持应用不停机迁移

Sermant Agent支持服务的双注册,可根据配置中心下发的服务订阅策略,动态修改当前服务的订阅策略,并基于该能力帮助线上应用在业务不中断的前提下完成服务迁移。

不仅如此,Sermant Agent提供优雅上下线能力,在服务重启、上下线时提供保障,在保护服务的同时,规避服务下线时可能存在的流量丢失问题。

接入原理

当然,在说明原理之前,我们首先需要了解什么是Java Agent。

Java Agent是在JDK1.5之后引入的新特性,它支持JVM将字节码文件读入内存之后,JVM使用对应的字节流在Java堆中生成一个Class对象之前,用户可以对其字节码进行修改的能力,JVM使用修改之后的字节码进行Class对象的创建,从而实现Java应用的非代码侵入的业务逻辑修改和替换。

Sermant Agent正是基于动态修改字节码的技术,在服务启动时,动态增强原服务的注册逻辑。那Sermant Agent是如何在不修改代码的前提下接入Nacos呢?主要流程如下:

包含以下6个步骤:

  1. 首先服务携带Sermant Agent启动;
  2. 服务启动时,针对服务执行字节码增强操作(基于Java Agent的字节码增强),主要针对注册与配置两块,在步骤3-5体现;
  3. 通过字节码增强,动态识别原应用的注册中心;
  4. 注入启动配置,动态关闭原应用的注册中心自动配置逻辑;
  5. 随后通过Spring的SpringFactory机制注入基于Spring Cloud实现的注册Nacos的自动配置类,由Spring接管;
  6. 当应用发起注册时,会通过步骤5注入的注册逻辑向CSE的Nacos发起注册,最终完成接入。

简单零代码修改,轻松接入CSE的Nacos

接入场景分为虚机接入和容器接入,大家可以根据自身需求选择合适的接入方式。

虚机场景接入CSE的Nacos

虚机部署的应用可通过Sermant Agent接入到CSE的Nacos。

基于ECS将应用接入CSE的Nacos流程

容器场景接入CSE的Nacos

容器部署的应用可通过Sermant Injector自动挂载Sermant Agent,从而通过Sermant Agent接入到CSE的Nacos。

基于CCE将应用接入CSE的Nacos流程

审核编辑 黄昊宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 华为云
    +关注

    关注

    3

    文章

    2423

    浏览量

    17294
收藏 人收藏

    评论

    相关推荐

    计算迁移的步骤与注意事项

    计算迁移是一个复杂且关键的过程,需要细致的规划和执行。以下是计算迁移的一般步骤及注意事项: 一、计算
    的头像 发表于 10-24 09:20 348次阅读

    微服务架构与容器的关系与区别

    微服务架构与容器密切相关又有所区别。微服务将大型应用拆分为小型、独立的服务,而容器基于容器技术,为
    的头像 发表于 10-21 17:28 169次阅读

    容器服务引擎是什么意思?

    容器服务引擎是什么意思?容器服务引擎是一种基于云原生架构的容器编排工具,能够帮助用户快速构建
    的头像 发表于 10-19 17:08 142次阅读

    容器引擎属于saas层服务吗?二者是什么关系

    容器引擎属于SaaS层服务容器引擎通常被视为一种平台即服务(PaaS)的变体或扩展,虽然它
    的头像 发表于 10-12 10:57 162次阅读

    容器服务引擎是什么?如何使用

    容器服务引擎(CloudContainerEngine,简称CCE),是一个企业级的Kubernetes集群托管服务,提供高度可扩展、高性能的云原生应用部署和管理方案。容器
    的头像 发表于 09-30 10:17 154次阅读

    IT资源迁移服务器的关键因素

    随着计算技术的不断成熟和普及,越来越多的企业选择将他们的IT资源迁移服务器上。这种转变不仅可以降低成本、提高灵活性,还可以提升安全性和效率。本文将深入探讨将IT资源
    的头像 发表于 09-18 11:21 287次阅读

    龙智Atlassian ITSM解决方案、迁移解决方案详解:高速ITSM实施+端到端的迁移服务

    随着计算技术的不断成熟与普及,企业对于高效、灵活的IT服务管理(ITSM)与无缝的迁移解决方案的需求日益增长。如何有效管理复杂的IT环境,加速业务上
    的头像 发表于 09-04 09:41 235次阅读
    龙智Atlassian ITSM解决方案、<b class='flag-5'>云</b><b class='flag-5'>迁移</b>解决方案详解:高速ITSM实施+端到端的<b class='flag-5'>云</b><b class='flag-5'>迁移</b><b class='flag-5'>服务</b>

    重塑服务华为 Flexus X 实例破解服务传统难题

    在数字化转型的大潮中,计算不仅是企业加速变革的引擎,更是其增强竞争力的关键。企业通过“上”能够迅速响应市场变化,从而在激烈的商业竞争中占据有利地位。然而,随着企业对
    的头像 发表于 08-12 09:54 545次阅读
    重塑<b class='flag-5'>云</b><b class='flag-5'>服务</b>,<b class='flag-5'>华为</b><b class='flag-5'>云</b> Flexus X 实例破解<b class='flag-5'>云</b><b class='flag-5'>服务</b>传统难题

    Java微服务随机掉线排查过程简析

    我们的业务共使用 11 台(阿里服务器,使用 SpringcloudAlibaba 构建微服务集群, 共计 60 个微服务, 全部注册在同一个
    的头像 发表于 01-13 17:41 898次阅读
    Java<b class='flag-5'>微服务</b>随机掉线排查过程简析

    游戏公司不使用微服务架构的原因

    微服务基本只有 request/response 的模式。不了 streaming?微服务通常要求应用是无状态的才能做到水平扩展。streaming 本身就是加入了状态
    的头像 发表于 12-29 11:18 407次阅读

    企业上请认准华为这款服务器,数字化时代安全可靠的引擎

    在当今数字化时代,中小企业面临着巨大的数据安全挑战,这已经成为决策者们必须直面的核心问题。对于初创企业或个人开发者来说,数据安全至关重要。而华为今年推出的华为耀
    的头像 发表于 12-01 09:47 283次阅读
    企业上<b class='flag-5'>云</b>请认准<b class='flag-5'>华为</b><b class='flag-5'>云</b>这款<b class='flag-5'>服务</b>器,数字化时代安全可靠的<b class='flag-5'>引擎</b>

    如何构建弹性、高可用的微服务

    基于微服务的应用程序可实现战略性数字转型和迁移计划,对于开发团队来说,这种架构十分重要。那么,如何来构建弹性、高可用的微服务呢?RedisEnterprise给出了一个完美的方案。文
    的头像 发表于 11-26 08:06 450次阅读
    如何构建弹性、高可用的<b class='flag-5'>微服务</b>?

    设计微服务架构的原则

    微服务是一种软件架构策略,有利于改善整体性能和可扩展性。你可能会想,我的团队需不需要采用微服务,设计微服务架构有哪些原则?本文会给你一些灵感。文章速览:微服务设计的要素
    的头像 发表于 11-26 08:05 550次阅读
    设计<b class='flag-5'>微服务</b>架构的原则

    docker微服务架构实战

    随着计算和容器化技术的快速发展,微服务架构在软件开发领域中变得越来越流行。微服务架构将一个大型的软件应用拆分成多个小型的、独立部署的服务,每个服务
    的头像 发表于 11-23 09:26 627次阅读

    springcloud微服务架构

    Spring Cloud是一个开源的微服务架构框架,它提供了一系列工具和组件,用于构建和管理分布式系统中的微服务。它基于Spring框架,旨在通过简化开发过程和降低系统复杂性来帮助开发人员构建弹性
    的头像 发表于 11-23 09:24 1206次阅读