華為云微服務引擎| 0停機遷移Nacos? “它”是這樣做的
遷移云環(huán)境****場景
? 微服務規(guī)模小,使用微服務引擎CSE成本太高。
? dubbo/Nacos微服務架構(gòu)改造dubbo-servicecomb接入CSE需要投入的成本高,且社區(qū)dubbo-servicecomb未投入人力維護,可能遇到很多適配問題。
? 僅想使用CSE的治理能力,配置中心仍然使用Nacos,或者后期微服務整改后使用CSE,但是目前想使用Nacos過渡情況。
? 傾向使用Nacos作為配置中心使用,其它使用華為云的其它組件,如CCE、中間件等。
? 使用Nacos或者想用Nacos的客戶,項目整改比較緊急,調(diào)整框架遷移CSE時間不夠。
? 想使用Nacos作為配置中心,但是又不想去動原有的代碼邏輯。
概述
結(jié)合市場痛點,華為云提供托管版Nacos引擎,能幫助客戶免去運維Nacos集群的煩惱,更加聚焦業(yè)務本身的實現(xiàn),同時華為云也提供專業(yè)的Nacos專家支持。本文介紹如何將Spring Cloud應用從開源Consul無縫遷移至華為云Nacos。
什么是Sermant Agent
Sermant Agent是一種基于JavaAgent的無代理服務網(wǎng)格技術。它利用JavaAgent來檢測主機應用程序,并具有增強的服務治理功能,以解決海量微服務架構(gòu)中的服務治理問題。
Sermant Agent處于快速發(fā)展階段,當前已支持多種服務治理能力,包含流量治理、注冊、優(yōu)雅上下線及動態(tài)配置能力。
為什么使用Sermant Agent接入
代碼零侵入,配置很簡單
相較于SDK方式接入,基于Sermant Agent的接入會更加快捷高效,配置簡單,且應用無需做任何代碼改造,僅需在服務啟動時附帶Sermant Agent即可動態(tài)接入到CSE的Nacos。
支****持多種治理能力
Sermant Agent默認集成流量治理能力,當前支持熔斷、限流、隔離倉以及重試治理能力,該能力可基于CSE配置中心進行配置與發(fā)布。
支持多種注冊中心
Sermant Agent目前支持業(yè)內(nèi)主流的注冊中心,已經(jīng)支持了ServiceComb ServiceCenter、Naocs,Eureka、Zookeeper等正在開發(fā)中。
支持應用不停機遷移
Sermant Agent支持服務的雙注冊,可根據(jù)配置中心下發(fā)的服務訂閱策略,動態(tài)修改當前服務的訂閱策略,并基于該能力幫助線上應用在業(yè)務不中斷的前提下完成服務遷移。
不僅如此,Sermant Agent提供優(yōu)雅上下線能力,在服務重啟、上下線時提供保障,在保護服務的同時,規(guī)避服務下線時可能存在的流量丟失問題。
接入原理
當然,在說明原理之前,我們首先需要了解什么是Java Agent。
Java Agent是在JDK1.5之后引入的新特性,它支持JVM將字節(jié)碼文件讀入內(nèi)存之后,JVM使用對應的字節(jié)流在Java堆中生成一個Class對象之前,用戶可以對其字節(jié)碼進行修改的能力,JVM使用修改之后的字節(jié)碼進行Class對象的創(chuàng)建,從而實現(xiàn)Java應用的非代碼侵入的業(yè)務邏輯修改和替換。
Sermant Agent正是基于動態(tài)修改字節(jié)碼的技術,在服務啟動時,動態(tài)增強原服務的注冊邏輯。那Sermant Agent是如何在不修改代碼的前提下接入Nacos呢?主要流程如下:
包含以下6個步驟:
- 首先服務攜帶Sermant Agent啟動;
- 服務啟動時,針對服務執(zhí)行字節(jié)碼增強操作(基于Java Agent的字節(jié)碼增強),主要針對注冊與配置兩塊,在步驟3-5體現(xiàn);
- 通過字節(jié)碼增強,動態(tài)識別原應用的注冊中心;
- 注入啟動配置,動態(tài)關閉原應用的注冊中心自動配置邏輯;
- 隨后通過Spring的SpringFactory機制注入基于Spring Cloud實現(xiàn)的注冊Nacos的自動配置類,由Spring接管;
- 當應用發(fā)起注冊時,會通過步驟5注入的注冊邏輯向CSE的Nacos發(fā)起注冊,最終完成接入。
簡單零代碼修改,輕松接入CSE的Nacos
接入場景分為虛機接入和容器接入,大家可以根據(jù)自身需求選擇合適的接入方式。
虛機場景接入CSE的Nacos
虛機部署的應用可通過Sermant Agent接入到CSE的Nacos。
基于ECS將應用接入CSE的Nacos流程
容器場景接入CSE的Nacos
容器部署的應用可通過Sermant Injector自動掛載Sermant Agent,從而通過Sermant Agent接入到CSE的Nacos。
基于CCE將應用接入CSE的Nacos流程
審核編輯 黃昊宇
-
華為云
+關注
關注
3文章
2832瀏覽量
19247
發(fā)布評論請先 登錄
華納云VPS容器服務網(wǎng)格流量管理:實現(xiàn)微服務高效路由
華為發(fā)布全新升級星河AI MSP云管服務解決方案
軟通動力攜手華為云推出iPaaS海外集成遷移聯(lián)合解決方案
如何基于Nginx構(gòu)建微服務網(wǎng)關
中軟國際上云遷移服務充分釋放云計算價值
電商API的微服務架構(gòu)優(yōu)化策略
軟通動力攜手華為云推出AI知識引擎與數(shù)據(jù)工程融合創(chuàng)新解決方案
軟通動力攜手華為云發(fā)布AI應用創(chuàng)新領航計劃
HarmonyOS5云服務技術分享--云函數(shù)預加載文章整理
HarmonyOS5云服務技術分享--Serverless抽獎模板部署
HarmonyOS5云服務技術分享--云存儲SDK文章整理
曙光云正式開放信創(chuàng)公有云服務
企業(yè)使用NVIDIA NeMo微服務構(gòu)建AI智能體平臺
Arm助力開發(fā)者加速遷移至Arm架構(gòu)云平臺 Arm云遷移資源分享
賽思×字節(jié)跳動 高精度同步時鐘助力火山引擎打造“云上新宇宙”
華為云微服務引擎0停機遷移Nacos?它是這樣做的
評論