0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

華為云微服務(wù)引擎0停機(jī)遷移Nacos?它是這樣做的

科技之光2 ? 來源:科技之光2 ? 作者:科技之光2 ? 2022-12-29 20:01 ? 次閱讀

華為云微服務(wù)引擎| 0停機(jī)遷移Nacos? “它”是這樣做的

遷移云環(huán)境****場景

? 微服務(wù)規(guī)模小,使用微服務(wù)引擎CSE成本太高。

? dubbo/Nacos微服務(wù)架構(gòu)改造dubbo-servicecomb接入CSE需要投入的成本高,且社區(qū)dubbo-servicecomb未投入人力維護(hù),可能遇到很多適配問題。

? 僅想使用CSE的治理能力,配置中心仍然使用Nacos,或者后期微服務(wù)整改后使用CSE,但是目前想使用Nacos過渡情況。

? 傾向使用Nacos作為配置中心使用,其它使用華為云的其它組件,如CCE、中間件等。

? 使用Nacos或者想用Nacos的客戶,項(xiàng)目整改比較緊急,調(diào)整框架遷移CSE時(shí)間不夠。

? 想使用Nacos作為配置中心,但是又不想去動(dòng)原有的代碼邏輯。

概述

結(jié)合市場痛點(diǎn),華為云提供托管版Nacos引擎,能幫助客戶免去運(yùn)維Nacos集群的煩惱,更加聚焦業(yè)務(wù)本身的實(shí)現(xiàn),同時(shí)華為云也提供專業(yè)的Nacos專家支持。本文介紹如何將Spring Cloud應(yīng)用從開源Consul無縫遷移至華為云Nacos。

什么是Sermant Agent

Sermant Agent是一種基于JavaAgent的無代理服務(wù)網(wǎng)格技術(shù)。它利用JavaAgent來檢測主機(jī)應(yīng)用程序,并具有增強(qiáng)的服務(wù)治理功能,以解決海量微服務(wù)架構(gòu)中的服務(wù)治理問題。

Sermant Agent處于快速發(fā)展階段,當(dāng)前已支持多種服務(wù)治理能力,包含流量治理、注冊、優(yōu)雅上下線及動(dòng)態(tài)配置能力。

為什么使用Sermant Agent接入

代碼零侵入,配置很簡單

相較于SDK方式接入,基于Sermant Agent的接入會更加快捷高效,配置簡單,且應(yīng)用無需做任何代碼改造,僅需在服務(wù)啟動(dòng)時(shí)附帶Sermant Agent即可動(dòng)態(tài)接入到CSE的Nacos。

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

Sermant Agent默認(rèn)集成流量治理能力,當(dāng)前支持熔斷、限流、隔離倉以及重試治理能力,該能力可基于CSE配置中心進(jìn)行配置與發(fā)布。

支持多種注冊中心

Sermant Agent目前支持業(yè)內(nèi)主流的注冊中心,已經(jīng)支持了ServiceComb ServiceCenter、Naocs,Eureka、Zookeeper等正在開發(fā)中。

支持應(yīng)用不停機(jī)遷移

Sermant Agent支持服務(wù)的雙注冊,可根據(jù)配置中心下發(fā)的服務(wù)訂閱策略,動(dòng)態(tài)修改當(dāng)前服務(wù)的訂閱策略,并基于該能力幫助線上應(yīng)用在業(yè)務(wù)不中斷的前提下完成服務(wù)遷移。

不僅如此,Sermant Agent提供優(yōu)雅上下線能力,在服務(wù)重啟、上下線時(shí)提供保障,在保護(hù)服務(wù)的同時(shí),規(guī)避服務(wù)下線時(shí)可能存在的流量丟失問題。

接入原理

當(dāng)然,在說明原理之前,我們首先需要了解什么是Java Agent。

Java Agent是在JDK1.5之后引入的新特性,它支持JVM將字節(jié)碼文件讀入內(nèi)存之后,JVM使用對應(yīng)的字節(jié)流在Java堆中生成一個(gè)Class對象之前,用戶可以對其字節(jié)碼進(jìn)行修改的能力,JVM使用修改之后的字節(jié)碼進(jìn)行Class對象的創(chuàng)建,從而實(shí)現(xiàn)Java應(yīng)用的非代碼侵入的業(yè)務(wù)邏輯修改和替換。

Sermant Agent正是基于動(dòng)態(tài)修改字節(jié)碼的技術(shù),在服務(wù)啟動(dòng)時(shí),動(dòng)態(tài)增強(qiáng)原服務(wù)的注冊邏輯。那Sermant Agent是如何在不修改代碼的前提下接入Nacos呢?主要流程如下:

包含以下6個(gè)步驟:

  1. 首先服務(wù)攜帶Sermant Agent啟動(dòng);
  2. 服務(wù)啟動(dòng)時(shí),針對服務(wù)執(zhí)行字節(jié)碼增強(qiáng)操作(基于Java Agent的字節(jié)碼增強(qiáng)),主要針對注冊與配置兩塊,在步驟3-5體現(xiàn);
  3. 通過字節(jié)碼增強(qiáng),動(dòng)態(tài)識別原應(yīng)用的注冊中心;
  4. 注入啟動(dòng)配置,動(dòng)態(tài)關(guān)閉原應(yīng)用的注冊中心自動(dòng)配置邏輯;
  5. 隨后通過Spring的SpringFactory機(jī)制注入基于Spring Cloud實(shí)現(xiàn)的注冊Nacos的自動(dòng)配置類,由Spring接管;
  6. 當(dāng)應(yīng)用發(fā)起注冊時(shí),會通過步驟5注入的注冊邏輯向CSE的Nacos發(fā)起注冊,最終完成接入。

簡單零代碼修改,輕松接入CSE的Nacos

接入場景分為虛機(jī)接入和容器接入,大家可以根據(jù)自身需求選擇合適的接入方式。

虛機(jī)場景接入CSE的Nacos

虛機(jī)部署的應(yīng)用可通過Sermant Agent接入到CSE的Nacos。

基于ECS將應(yīng)用接入CSE的Nacos流程

容器場景接入CSE的Nacos

容器部署的應(yīng)用可通過Sermant Injector自動(dòng)掛載Sermant Agent,從而通過Sermant Agent接入到CSE的Nacos。

基于CCE將應(yīng)用接入CSE的Nacos流程

審核編輯 黃昊宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 華為云
    +關(guān)注

    關(guān)注

    3

    文章

    2391

    瀏覽量

    17244
收藏 人收藏

    評論

    相關(guān)推薦

    計(jì)算遷移的步驟與注意事項(xiàng)

    計(jì)算遷移是一個(gè)復(fù)雜且關(guān)鍵的過程,需要細(xì)致的規(guī)劃和執(zhí)行。以下是計(jì)算遷移的一般步驟及注意事項(xiàng): 一、計(jì)算
    的頭像 發(fā)表于 10-24 09:20 ?324次閱讀

    微服務(wù)架構(gòu)與容器的關(guān)系與區(qū)別

    微服務(wù)架構(gòu)與容器密切相關(guān)又有所區(qū)別。微服務(wù)將大型應(yīng)用拆分為小型、獨(dú)立的服務(wù),而容器基于容器技術(shù),為
    的頭像 發(fā)表于 10-21 17:28 ?146次閱讀

    容器服務(wù)引擎是什么意思?

    容器服務(wù)引擎是什么意思?容器服務(wù)引擎是一種基于云原生架構(gòu)的容器編排工具,能夠幫助用戶快速構(gòu)建
    的頭像 發(fā)表于 10-19 17:08 ?124次閱讀

    容器引擎屬于saas層服務(wù)嗎?二者是什么關(guān)系

    容器引擎屬于SaaS層服務(wù),容器引擎通常被視為一種平臺即服務(wù)(PaaS)的變體或擴(kuò)展,雖然它
    的頭像 發(fā)表于 10-12 10:57 ?152次閱讀

    容器服務(wù)引擎是什么?如何使用

    容器服務(wù)引擎(CloudContainerEngine,簡稱CCE),是一個(gè)企業(yè)級的Kubernetes集群托管服務(wù),提供高度可擴(kuò)展、高性能的云原生應(yīng)用部署和管理方案。容器
    的頭像 發(fā)表于 09-30 10:17 ?141次閱讀

    IT資源遷移服務(wù)器的關(guān)鍵因素

    隨著計(jì)算技術(shù)的不斷成熟和普及,越來越多的企業(yè)選擇將他們的IT資源遷移服務(wù)器上。這種轉(zhuǎn)變不僅可以降低成本、提高靈活性,還可以提升安全性和效率。本文將深入探討將IT資源
    的頭像 發(fā)表于 09-18 11:21 ?273次閱讀

    龍智Atlassian ITSM解決方案、遷移解決方案詳解:高速ITSM實(shí)施+端到端的遷移服務(wù)

    隨著計(jì)算技術(shù)的不斷成熟與普及,企業(yè)對于高效、靈活的IT服務(wù)管理(ITSM)與無縫的遷移解決方案的需求日益增長。如何有效管理復(fù)雜的IT環(huán)境,加速業(yè)務(wù)上
    的頭像 發(fā)表于 09-04 09:41 ?225次閱讀
    龍智Atlassian ITSM解決方案、<b class='flag-5'>云</b><b class='flag-5'>遷移</b>解決方案詳解:高速ITSM實(shí)施+端到端的<b class='flag-5'>云</b><b class='flag-5'>遷移</b><b class='flag-5'>服務(wù)</b>

    重塑服務(wù),華為 Flexus X 實(shí)例破解服務(wù)傳統(tǒng)難題

    在數(shù)字化轉(zhuǎn)型的大潮中,計(jì)算不僅是企業(yè)加速變革的引擎,更是其增強(qiáng)競爭力的關(guān)鍵。企業(yè)通過“上”能夠迅速響應(yīng)市場變化,從而在激烈的商業(yè)競爭中占據(jù)有利地位。然而,隨著企業(yè)對
    的頭像 發(fā)表于 08-12 09:54 ?532次閱讀
    重塑<b class='flag-5'>云</b><b class='flag-5'>服務(wù)</b>,<b class='flag-5'>華為</b><b class='flag-5'>云</b> Flexus X 實(shí)例破解<b class='flag-5'>云</b><b class='flag-5'>服務(wù)</b>傳統(tǒng)難題

    Java微服務(wù)隨機(jī)掉線排查過程簡析

    我們的業(yè)務(wù)共使用 11 臺(阿里服務(wù)器,使用 SpringcloudAlibaba 構(gòu)建微服務(wù)集群, 共計(jì) 60 個(gè)微服務(wù), 全部注冊在同一個(gè)
    的頭像 發(fā)表于 01-13 17:41 ?888次閱讀
    Java<b class='flag-5'>微服務(wù)</b>隨機(jī)掉線排查過程簡析

    游戲公司不使用微服務(wù)架構(gòu)的原因

    微服務(wù)基本只有 request/response 的模式。不了 streaming?微服務(wù)通常要求應(yīng)用是無狀態(tài)的才能做到水平擴(kuò)展。streaming 本身就是加入了狀態(tài)
    的頭像 發(fā)表于 12-29 11:18 ?399次閱讀

    企業(yè)上請認(rèn)準(zhǔn)華為這款服務(wù)器,數(shù)字化時(shí)代安全可靠的引擎

    在當(dāng)今數(shù)字化時(shí)代,中小企業(yè)面臨著巨大的數(shù)據(jù)安全挑戰(zhàn),這已經(jīng)成為決策者們必須直面的核心問題。對于初創(chuàng)企業(yè)或個(gè)人開發(fā)者來說,數(shù)據(jù)安全至關(guān)重要。而華為今年推出的華為耀
    的頭像 發(fā)表于 12-01 09:47 ?272次閱讀
    企業(yè)上<b class='flag-5'>云</b>請認(rèn)準(zhǔn)<b class='flag-5'>華為</b><b class='flag-5'>云</b>這款<b class='flag-5'>服務(wù)</b>器,數(shù)字化時(shí)代安全可靠的<b class='flag-5'>引擎</b>

    如何構(gòu)建彈性、高可用的微服務(wù)?

    基于微服務(wù)的應(yīng)用程序可實(shí)現(xiàn)戰(zhàn)略性數(shù)字轉(zhuǎn)型和遷移計(jì)劃,對于開發(fā)團(tuán)隊(duì)來說,這種架構(gòu)十分重要。那么,如何來構(gòu)建彈性、高可用的微服務(wù)呢?RedisEnterprise給出了一個(gè)完美的方案。文
    的頭像 發(fā)表于 11-26 08:06 ?439次閱讀
    如何構(gòu)建彈性、高可用的<b class='flag-5'>微服務(wù)</b>?

    設(shè)計(jì)微服務(wù)架構(gòu)的原則

    微服務(wù)是一種軟件架構(gòu)策略,有利于改善整體性能和可擴(kuò)展性。你可能會想,我的團(tuán)隊(duì)需不需要采用微服務(wù),設(shè)計(jì)微服務(wù)架構(gòu)有哪些原則?本文會給你一些靈感。文章速覽:微服務(wù)設(shè)計(jì)的要素
    的頭像 發(fā)表于 11-26 08:05 ?538次閱讀
    設(shè)計(jì)<b class='flag-5'>微服務(wù)</b>架構(gòu)的原則

    docker微服務(wù)架構(gòu)實(shí)戰(zhàn)

    隨著計(jì)算和容器化技術(shù)的快速發(fā)展,微服務(wù)架構(gòu)在軟件開發(fā)領(lǐng)域中變得越來越流行。微服務(wù)架構(gòu)將一個(gè)大型的軟件應(yīng)用拆分成多個(gè)小型的、獨(dú)立部署的服務(wù),每個(gè)服務(wù)
    的頭像 發(fā)表于 11-23 09:26 ?614次閱讀

    springcloud微服務(wù)架構(gòu)

    Spring Cloud是一個(gè)開源的微服務(wù)架構(gòu)框架,它提供了一系列工具和組件,用于構(gòu)建和管理分布式系統(tǒng)中的微服務(wù)。它基于Spring框架,旨在通過簡化開發(fā)過程和降低系統(tǒng)復(fù)雜性來幫助開發(fā)人員構(gòu)建彈性
    的頭像 發(fā)表于 11-23 09:24 ?1163次閱讀