999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

微前端化微應(yīng)用管理控制臺(tái)①

2020-09-22 07:45:10劉一田曹一鳴
關(guān)鍵詞:頁(yè)面機(jī)制資源

劉一田,曹一鳴

(南京南瑞信息通信科技有限公司,南京 210003)

1 引言

傳統(tǒng)的服務(wù)管理控制臺(tái)和應(yīng)用門(mén)戶(hù)在面臨業(yè)務(wù)快速發(fā)展之后,出現(xiàn)了單體應(yīng)用進(jìn)化成巨石應(yīng)用的問(wèn)題,隨著微服務(wù)架構(gòu)的廣泛應(yīng)用,業(yè)務(wù)應(yīng)用被劃分為更小顆粒度的微應(yīng)用,不同的微應(yīng)用可以采用不同的技術(shù)棧實(shí)現(xiàn),更好地提升了業(yè)務(wù)開(kāi)發(fā)效率和需求響應(yīng)能力,從企業(yè)級(jí)管理需求角度,管理控制臺(tái)需要聚合微應(yīng)用并提供管理入口,支持租戶(hù)按需定制SaaS 層應(yīng)用門(mén)戶(hù),對(duì)已在線上運(yùn)行的項(xiàng)目,支持低成本地接入微應(yīng)用門(mén)戶(hù),而不需要對(duì)現(xiàn)有開(kāi)發(fā)和部署流程做大量兼容改造;支持不同技術(shù)棧微應(yīng)用分布式開(kāi)發(fā)部署和運(yùn)行時(shí)上下文資源分離,但允許開(kāi)發(fā)階段微應(yīng)用之間良好聯(lián)調(diào),能保證單頁(yè)應(yīng)用的操作流程不中斷和體驗(yàn)流暢性.目前,微應(yīng)用管理控制臺(tái)及業(yè)務(wù)服務(wù)微應(yīng)用的前端技術(shù)棧實(shí)現(xiàn)是主流的Vue、React、Angular 等前端框架,為了解決上述問(wèn)題,主流解決方案有3 種:(1)基于iframe 的頁(yè)面嵌入.將不同的微應(yīng)用的入口頁(yè)面通過(guò)iframe 嵌入到門(mén)戶(hù)菜單中.集成方式簡(jiǎn)單,缺點(diǎn)是頁(yè)面切換無(wú)法保持路由狀態(tài),父子應(yīng)用通信不穩(wěn)定,存在潛在性能瓶頸.(2)基于Nginx 導(dǎo)航路由.基于Nginx 中微應(yīng)用路由前綴的不同將請(qǐng)求路由到不同的微應(yīng)用.優(yōu)點(diǎn)是支持微應(yīng)用的技術(shù)棧獨(dú)立,缺點(diǎn)是頁(yè)面跳轉(zhuǎn)有時(shí)會(huì)閃屏,動(dòng)態(tài)擴(kuò)展需變更Nginx 配置.(3)基于微前端[1]Single-SPA 框架[2].即通過(guò)由獨(dú)立交付的多個(gè)微應(yīng)用動(dòng)態(tài)組成整體管理控制臺(tái)的架構(gòu)模式.將前端應(yīng)用分解成一些更小、更簡(jiǎn)單的能夠獨(dú)立開(kāi)發(fā)、測(cè)試、部署的小塊,從用戶(hù)角度仍然是無(wú)縫管理體驗(yàn).管理控制臺(tái)應(yīng)用異步加載嵌入其內(nèi)部的微應(yīng)用的入口文件,動(dòng)態(tài)創(chuàng)建微應(yīng)用裝載點(diǎn).優(yōu)點(diǎn)是支持微應(yīng)用的開(kāi)發(fā)技術(shù)棧獨(dú)立,缺點(diǎn)是微應(yīng)用之間開(kāi)發(fā)聯(lián)調(diào)復(fù)雜.文獻(xiàn)[3]描述的微前端應(yīng)用以JS 文件入口方式實(shí)現(xiàn)微應(yīng)用加載,這種方式會(huì)導(dǎo)致微應(yīng)用之間運(yùn)行時(shí)資源上下文混淆,增加了開(kāi)發(fā)和維護(hù)的復(fù)雜度.

綜合上述問(wèn)題及方案,結(jié)合項(xiàng)目中微應(yīng)用數(shù)量不斷迭代遞增、父子微應(yīng)用通信、微應(yīng)用資源按需加載和卸載、運(yùn)行時(shí)上下文資源分離等需求,本文給出了微前端化管理管理控制臺(tái)的解決方案.(1) 提供基于管理控制臺(tái)消息總線的路由注冊(cè)機(jī)制,管理各個(gè)微應(yīng)用的生命周期,傳遞路由消息.(2) 定義微應(yīng)用渲染入口規(guī)范,提供微應(yīng)用注冊(cè)接入機(jī)制.(3) 提供微應(yīng)用加載工具庫(kù),監(jiān)聽(tīng)微應(yīng)用地址端口路由變化并快速加載或卸載微應(yīng)用,加載時(shí)讀取微應(yīng)用配置并為微應(yīng)用的實(shí)例提供門(mén)戶(hù)占位裝載點(diǎn),卸載時(shí)反向移除微應(yīng)用相關(guān)資源.

2 微前端化微應(yīng)用管理控制臺(tái)設(shè)計(jì)

微前端管理控制臺(tái)由管理門(mén)戶(hù)和微服務(wù)對(duì)應(yīng)的管理微應(yīng)用組成,如圖1所示.它們共享公共依賴(lài)庫(kù)以實(shí)現(xiàn)共享數(shù)據(jù)和資源依賴(lài),進(jìn)而降低開(kāi)發(fā)管理成本,管理控制的權(quán)限刷新令牌采用REDIS 集群存儲(chǔ),訪問(wèn)令牌基于本地緩存存儲(chǔ)[4].本文中討論的微應(yīng)用基于Node.js環(huán)境部署運(yùn)行,文獻(xiàn)[5]論證了前端應(yīng)用基于Node.js環(huán)境在微應(yīng)用系統(tǒng)運(yùn)行期的相對(duì)優(yōu)勢(shì).

圖1 微前端管理控制臺(tái)框架

微前端化管理控制臺(tái)的交互過(guò)程及關(guān)鍵處理機(jī)制包含分為以下7 個(gè)方面.

(1) 用戶(hù)登錄.用戶(hù)訪問(wèn)管理門(mén)戶(hù)首頁(yè),管理門(mén)戶(hù)鑒別是否已存儲(chǔ)已登錄的本地令牌,如無(wú)則跳轉(zhuǎn)到單點(diǎn)登錄頁(yè)面.

(2) 令牌存儲(chǔ).登錄成功后分別記錄用戶(hù)訪問(wèn)令牌到本地緩存,記錄刷新令牌到REDIS 中,其中REDIS采用集群部署方式.

(3)管理門(mén)戶(hù)微應(yīng)用啟動(dòng)時(shí)加載所管理的微應(yīng)用配置.配置包括微應(yīng)用名稱(chēng)、頁(yè)面入口地址和渲染方法引用,認(rèn)證登錄成功后根據(jù)配置跳轉(zhuǎn)到默認(rèn)微應(yīng)用頁(yè)面.

(4) 微應(yīng)用注冊(cè)及加載.微應(yīng)用注冊(cè)時(shí),采用HTML作為集成入口,避免JS 入口方式資源未完全加載而異步構(gòu)建子微應(yīng)用容器節(jié)點(diǎn),可能導(dǎo)致渲染失敗等問(wèn)題,微應(yīng)用運(yùn)行加載時(shí),管理門(mén)戶(hù)微應(yīng)用注冊(cè)模塊通過(guò)提取HTML 獲取當(dāng)前子微應(yīng)用的靜態(tài)資源,同時(shí)將微應(yīng)用HTML 文檔作為子模板節(jié)點(diǎn)添加到管理門(mén)戶(hù)的頁(yè)面模板容器中,繼而觸發(fā)微應(yīng)用頁(yè)面渲染.

(5) 管理路由事件.提供導(dǎo)航路由模塊,通過(guò)監(jiān)聽(tīng)不同微應(yīng)用的啟動(dòng)端口偵測(cè)瀏覽器地址變化事件,在所管理的微應(yīng)用路由觸發(fā)或切換時(shí),在緩存中保留切換前的微應(yīng)用完整的環(huán)境上下文狀態(tài),動(dòng)態(tài)加載目標(biāo)路由微應(yīng)用,待再次路由返回時(shí)還原之前狀態(tài)的微應(yīng)用上下文運(yùn)行時(shí)資源,確保微應(yīng)用切換時(shí)良好交互體驗(yàn).

(6) 微應(yīng)用模塊跨應(yīng)用依賴(lài).為了更好地管理微應(yīng)用,增加微應(yīng)用的生命周期事件監(jiān)聽(tīng)及相應(yīng)處理函數(shù),并通過(guò)Webpack 的umd 打包格式中的全局導(dǎo)出模式導(dǎo)出微應(yīng)用的生命周期事件監(jiān)聽(tīng)[6],從而獲取微應(yīng)用的內(nèi)置模塊導(dǎo)出和跨微應(yīng)用模塊導(dǎo)入.

(7) 微應(yīng)用資源邊界上下文分離.監(jiān)聽(tīng)微應(yīng)用的加載和卸載事件,在門(mén)戶(hù)路由系統(tǒng)跨微應(yīng)用切換時(shí),在監(jiān)聽(tīng)的路由事件中重新加載或卸載微應(yīng)用上下文中的JS 腳本和樣式表等資源.

3 微前端化微應(yīng)用管理控制臺(tái)實(shí)現(xiàn)

圖1中微前端化管理控制臺(tái)由管理門(mén)戶(hù)微應(yīng)用和眾多業(yè)務(wù)管理微應(yīng)用組成,管理門(mén)戶(hù)采用Vue2+ElementUI[7]實(shí)現(xiàn),其中管理門(mén)戶(hù)微應(yīng)用作為父應(yīng)用負(fù)責(zé)其它微應(yīng)用的注冊(cè)和卸載,管理門(mén)戶(hù)微應(yīng)用目錄結(jié)構(gòu)如圖2所示,微應(yīng)用基于模塊化工程方式構(gòu)建[8],父應(yīng)用基于HTML5規(guī)范的歷史記錄對(duì)象狀態(tài)變更機(jī)制觸發(fā)微應(yīng)用路由的切換,在父應(yīng)用視圖模板中置入子微應(yīng)用的宿主容器,作為子微應(yīng)用在父應(yīng)用容器中的占位符.并需要實(shí)現(xiàn)以下3 種框架機(jī)制:(1) 微應(yīng)用注冊(cè)、加載和卸載機(jī)制;(2) 微應(yīng)用通信及交互機(jī)制;(3) 微應(yīng)用資源共享和運(yùn)行時(shí)上下文資源分離機(jī)制.

圖2 微前端化微應(yīng)用管理控制臺(tái)工程目錄

3.1 實(shí)現(xiàn)微應(yīng)用注冊(cè)和卸載機(jī)制

由于控制臺(tái)管理采用延遲加載微應(yīng)用模式,當(dāng)瀏覽器重新加載時(shí),管理控制臺(tái)的微應(yīng)用資源也會(huì)重新被異步再次加載,由于此時(shí)門(mén)戶(hù)的路由導(dǎo)航已經(jīng)觸發(fā)微應(yīng)用生命周期啟動(dòng)階段事件,但微應(yīng)用運(yùn)行時(shí)上下文JS 腳本和樣式等靜態(tài)資源不能確保已經(jīng)全部加載和正常解析完畢,間接導(dǎo)致了路由記錄緩存里找不到相對(duì)應(yīng)的導(dǎo)航規(guī)則,最終導(dǎo)致路由切換時(shí)出現(xiàn)異常而無(wú)法正常展示

因此,注冊(cè)微應(yīng)用時(shí),需要基于管理控制臺(tái)前端事件總線,和父子微應(yīng)用生命周期不同階段鉤子事件實(shí)現(xiàn)父子微應(yīng)用及子微應(yīng)用之間的注冊(cè)、加載、卸載等交互,管理微應(yīng)用運(yùn)行時(shí)上下文狀態(tài)緩存,微應(yīng)用注冊(cè)過(guò)程的形式化描述如圖3所示.

圖3 微應(yīng)用注冊(cè)過(guò)程

首先,在父應(yīng)用中根據(jù)微應(yīng)用配置規(guī)約定義每個(gè)子微應(yīng)用的加載入口頁(yè)面HTML 資源屬性、渲染及路由方法、微應(yīng)用生命周期事件等;父微應(yīng)用需要先加載每個(gè)子微應(yīng)用的入口資源,待入口資源加載完畢,確保子微應(yīng)用的路由系統(tǒng)注冊(cè)進(jìn)父微應(yīng)用之后,再由子微應(yīng)用內(nèi)部的路由系統(tǒng)接管路由改變事件.同時(shí)在子微應(yīng)用路由卸載時(shí),父微應(yīng)用觸發(fā)相應(yīng)的銷(xiāo)毀事件,子微應(yīng)用在監(jiān)聽(tīng)到該事件時(shí),調(diào)用自己的卸載方法卸載自身運(yùn)行時(shí)上下文資源;其次,設(shè)置默認(rèn)的子微應(yīng)用作為父應(yīng)用的默認(rèn)路由規(guī)則,對(duì)默認(rèn)微應(yīng)用進(jìn)行預(yù)加載,并定義默認(rèn)微應(yīng)用加載完成后的回調(diào)事件以支持父微應(yīng)用完成后的業(yè)務(wù)定制擴(kuò)展;最后,啟動(dòng)全局路由,根據(jù)全局路由規(guī)則切換微應(yīng)用上下文資源、渲染微應(yīng)用展現(xiàn)和卸載清理.

3.2 微應(yīng)用通信及交互機(jī)制

微應(yīng)用之間的通信及交互分為父子微應(yīng)用、微應(yīng)用內(nèi)部、微應(yīng)用之間等3 種通信及交互機(jī)制.其中父子微應(yīng)用及微應(yīng)用之間的交互基于管理控制臺(tái)事件總線實(shí)現(xiàn),如圖4所示.

圖4 跨微應(yīng)用通信及交互

3.2.1 父子微應(yīng)用通信

(1) 父微應(yīng)用傳遞子微應(yīng)用的方式.父微應(yīng)用中注冊(cè)子微應(yīng)用時(shí),在子微應(yīng)用的配置中加入消息實(shí)體屬性,通過(guò)該屬性值的修改,動(dòng)態(tài)將消息通知給子微應(yīng)用.

(2) 子微應(yīng)用傳遞父微應(yīng)用的方式.子微應(yīng)用中導(dǎo)出掛載前回調(diào)事件,在事件參數(shù)中,將子微應(yīng)用待傳遞的參數(shù)對(duì)象置入,發(fā)布到父微應(yīng)用的事件總線上,父微應(yīng)用監(jiān)聽(tīng)到消息后,從其事件總線上獲取子微應(yīng)用的數(shù)據(jù)對(duì)象.形式化描述如圖5所示.

圖5 父子微應(yīng)用通信機(jī)制

3.2.2 微應(yīng)用內(nèi)部及之間通信

定義基于微應(yīng)用管理門(mén)戶(hù)主窗體的對(duì)象全局變量,在子微應(yīng)用內(nèi)部匹配切換路由時(shí),路由管理通過(guò)Vue Router 實(shí)現(xiàn),路由設(shè)置為HTML5 歷史模式,如果偵聽(tīng)到路由中包含了全局變量中指定的微應(yīng)用路由,則進(jìn)行跨微應(yīng)用切換,否則進(jìn)行微應(yīng)用內(nèi)部頁(yè)面的路由切換.

當(dāng)源微應(yīng)用準(zhǔn)備發(fā)消息給目標(biāo)微應(yīng)用時(shí),通過(guò)父微應(yīng)用的事件消息總線進(jìn)行指定主題事件的訂閱和發(fā)布,當(dāng)源微應(yīng)用完成指定操作后要跳轉(zhuǎn)到目標(biāo)微應(yīng)用時(shí),則通過(guò)瀏覽器對(duì)象模型提供的歷史記錄對(duì)象的狀態(tài)改變方法,傳入目標(biāo)微應(yīng)用名稱(chēng)和入口參數(shù),觸發(fā)微應(yīng)用之間路由的強(qiáng)制跳轉(zhuǎn)和消息通信傳遞.

3.3 微應(yīng)用資源共享和運(yùn)行時(shí)上下文分離

3.3.1 實(shí)現(xiàn)微應(yīng)用資源及數(shù)據(jù)共享機(jī)制

(1) 運(yùn)行時(shí)數(shù)據(jù)共享.全局的數(shù)據(jù)一般會(huì)存儲(chǔ)在父微應(yīng)用中,然后子微應(yīng)用可以直接共享,比如:當(dāng)前登錄用戶(hù)及隸屬組織、國(guó)際和本地化配置、API 令牌等,簡(jiǎn)單的數(shù)據(jù)共享可以直接掛載在門(mén)戶(hù)微應(yīng)用主窗體上即可,為了讓每個(gè)子微應(yīng)用使用全局服務(wù)和模塊內(nèi)服務(wù)一致,通過(guò)在父微應(yīng)用中實(shí)例化這些服務(wù),然后在每個(gè)子微應(yīng)用的入口模塊中將該實(shí)例引用設(shè)置為子微應(yīng)用的全局變量,方便讓子微應(yīng)用業(yè)務(wù)開(kāi)發(fā)人員共享使用這些公共服務(wù)數(shù)據(jù).

(2) 開(kāi)發(fā)環(huán)境公共依賴(lài)共享.開(kāi)發(fā)環(huán)境建立公共資源的目的是減少開(kāi)發(fā)時(shí)的重復(fù)定義,并避免多微應(yīng)用修改帶來(lái)的管理維護(hù)難題,因此,本文定義了圖2中的目錄規(guī)范以規(guī)約公共資源定義及引用,在微應(yīng)用部署時(shí),抽取微應(yīng)用公共依賴(lài)庫(kù)避免類(lèi)庫(kù)重復(fù)打包,減少打包體積,從而有效提升運(yùn)行時(shí)效率.

3.3.2 實(shí)現(xiàn)運(yùn)行時(shí)微應(yīng)用上下文分離

微應(yīng)用的運(yùn)行時(shí)上下文資源模型可以表示為一個(gè)五元組,形式化簡(jiǎn)述為APPCXT=<JS,CSS,BOM,T,R>,其中JS 和CSS 分別表示微應(yīng)用的靜態(tài)資源,BOM 是瀏覽器對(duì)象模型,T 是頁(yè)面模板,R 表示當(dāng)前微應(yīng)用路由,運(yùn)行時(shí)上下文表示了當(dāng)前路由下BOM 負(fù)責(zé)基于頁(yè)面模板將JS 和CSS 資源解析為可交互的頁(yè)面,為了確保路由切換后的BOM 性能最優(yōu)和內(nèi)存占用最小化,在微應(yīng)用之間導(dǎo)航切換時(shí),通過(guò)監(jiān)聽(tīng)不同微應(yīng)用端口的地址改變,在微應(yīng)用生命周期的啟動(dòng)及裝載兩個(gè)階段的事件觸發(fā)時(shí),記錄下每個(gè)微應(yīng)用的實(shí)時(shí)上下文資源狀態(tài),當(dāng)微應(yīng)用通過(guò)路由導(dǎo)航切換出去時(shí),將微應(yīng)用上下文狀態(tài)還原至當(dāng)前微應(yīng)用生命周期開(kāi)始之前的階段狀態(tài),以避免微應(yīng)用切換時(shí)歷史微應(yīng)用資源未及時(shí)卸載導(dǎo)致的內(nèi)存泄露等問(wèn)題.當(dāng)微應(yīng)用被再次導(dǎo)航回來(lái)時(shí),即時(shí)通過(guò)提取和加載之前緩存微應(yīng)用上下文狀態(tài)進(jìn)行上下文恢復(fù),這樣微應(yīng)用切換上下文時(shí)就有效實(shí)現(xiàn)了運(yùn)行時(shí)JS 等資源的分離.為了保證不同微應(yīng)用切換后樣式展示效果能動(dòng)態(tài)無(wú)縫切換生效,在微應(yīng)用加載時(shí)采用了基于HTML 入口資源的方式,在微應(yīng)用卸載后,瀏覽器的特性本身會(huì)同時(shí)卸載掉該微應(yīng)用的運(yùn)行時(shí)樣式表,從而實(shí)現(xiàn)了微應(yīng)用運(yùn)行時(shí)樣式表的動(dòng)態(tài)插入和移除,保證了切換微應(yīng)用上下文后的微應(yīng)用運(yùn)行時(shí)上下文狀態(tài)一致性和資源分離.

4 案例實(shí)踐與評(píng)估

為驗(yàn)證本文微前端化微應(yīng)用管理控制臺(tái)方案,在國(guó)網(wǎng)某省公司調(diào)控云公共服務(wù)管理平臺(tái)測(cè)試環(huán)境中做了案例部署和評(píng)估.案例環(huán)境搭建在3 臺(tái)8 核32 GB 內(nèi)存的浪潮服務(wù)器(SA5248L)上,網(wǎng)關(guān)、服務(wù)注冊(cè)、工作流、權(quán)限、模型驅(qū)動(dòng)、文件管理、頁(yè)面設(shè)計(jì)等微服務(wù)均采用容器化部署,容器副本數(shù)均設(shè)置為3,管理控制臺(tái)各微應(yīng)用前端管理微應(yīng)用采用獨(dú)立容器化部署,容器副本數(shù)均設(shè)置為2,所有微應(yīng)用在容器中基于Node.js環(huán)境運(yùn)行,其中工作流微應(yīng)用基于Angular 技術(shù)棧實(shí)現(xiàn),其它微應(yīng)用基于Vue 技術(shù)棧實(shí)現(xiàn).部署實(shí)例以K8S部署的Docker 容器運(yùn)行.測(cè)試評(píng)估點(diǎn)分別從不同前端技術(shù)棧的微前端化集成、微應(yīng)用通信及交互、運(yùn)行時(shí)上下文資源分離、性能等方面進(jìn)行驗(yàn)證.瀏覽器采用Chrome78,通過(guò)Chrome 開(kāi)發(fā)工具的性能分析工具記錄,跨微應(yīng)用路由切換時(shí),卸載源微應(yīng)用的打點(diǎn)記錄日志如圖6所示,加載目標(biāo)微應(yīng)用打點(diǎn)日志如圖7所示.

圖6 跨微應(yīng)用路由切換之卸載源微應(yīng)用

圖7 跨微應(yīng)用路由切換之加載目標(biāo)微應(yīng)用

在監(jiān)測(cè)過(guò)程中,管理控制臺(tái)在Chrome 瀏覽器中耗費(fèi)177 ms 左右完成了路由切換,切換過(guò)程貫穿了預(yù)定義的前后微應(yīng)用生命周期加載和卸載等鉤子事件,操作過(guò)程符合用戶(hù)預(yù)期體驗(yàn),DOM 結(jié)構(gòu)、靜態(tài)資源和微應(yīng)用上下文相適配,無(wú)頁(yè)面死鏈現(xiàn)象,反復(fù)壓測(cè)下無(wú)瀏覽器內(nèi)存泄露現(xiàn)象,符合預(yù)定義的測(cè)試驗(yàn)證目標(biāo).

在實(shí)驗(yàn)過(guò)程中,采用的容器化微應(yīng)用分布式部署方式有一定技術(shù)難度,亟需通過(guò)自動(dòng)化向?qū)Р渴鸱绞教嵘\(yùn)維便捷性.

5 結(jié)束語(yǔ)

本文研究了微前端的微應(yīng)用注冊(cè)和卸載、微應(yīng)用通信和交互、微應(yīng)用上下文資源分離等技術(shù),在此基礎(chǔ)上,設(shè)計(jì)了微前端化管理控制臺(tái)解決方案,給出了基于微應(yīng)用生命周期不同階段事件鉤子的微應(yīng)用注冊(cè)和卸載機(jī)制、基于管理控制臺(tái)事件總線的微應(yīng)用通信與交互機(jī)制、跨應(yīng)用共享變量事件注入及HTML 入口的資源共享、運(yùn)行時(shí)上下文資源分離機(jī)制等創(chuàng)新點(diǎn),闡述了該方案的架構(gòu)設(shè)計(jì)及關(guān)鍵實(shí)現(xiàn)技術(shù).最后,以國(guó)家電網(wǎng)某省公司調(diào)控云公共服務(wù)管理平臺(tái)微應(yīng)用集成為背景,給出了微前端化微應(yīng)用管理控制臺(tái)的應(yīng)用驗(yàn)證評(píng)估,評(píng)估結(jié)果、效率優(yōu)化及生產(chǎn)試運(yùn)行實(shí)踐表明,該框方案提升了微服務(wù)架構(gòu)下微應(yīng)用管理的開(kāi)發(fā)效率,實(shí)現(xiàn)了管理控制臺(tái)微應(yīng)用即插即用機(jī)制和跨微應(yīng)用之間業(yè)務(wù)操作連續(xù)性,提高了國(guó)網(wǎng)調(diào)控云公共服務(wù)管理平臺(tái)應(yīng)用服務(wù)水平.后續(xù)將針對(duì)遺留問(wèn)題持續(xù)改進(jìn)優(yōu)化該解決方案.

猜你喜歡
頁(yè)面機(jī)制資源
大狗熊在睡覺(jué)
刷新生活的頁(yè)面
基礎(chǔ)教育資源展示
一樣的資源,不一樣的收獲
資源回收
自制力是一種很好的篩選機(jī)制
文苑(2018年21期)2018-11-09 01:23:06
資源再生 歡迎訂閱
資源再生(2017年3期)2017-06-01 12:20:59
破除舊機(jī)制要分步推進(jìn)
注重機(jī)制的相互配合
打基礎(chǔ) 抓機(jī)制 顯成效
主站蜘蛛池模板: 综合色亚洲| 日韩一区精品视频一区二区| 伊人大杳蕉中文无码| 欧美国产视频| 精品人妻无码区在线视频| 色天天综合| 88av在线| 色吊丝av中文字幕| 不卡网亚洲无码| 久久精品亚洲中文字幕乱码| 97久久免费视频| 狠狠色狠狠色综合久久第一次| 欧美色视频网站| 亚洲三级影院| 国产精鲁鲁网在线视频| 欧美性色综合网| 国产特一级毛片| 福利国产微拍广场一区视频在线 | 中文字幕首页系列人妻| 久996视频精品免费观看| 丝袜无码一区二区三区| 久久激情影院| 欧美a在线| 日本a级免费| 天天躁夜夜躁狠狠躁图片| 777国产精品永久免费观看| 亚洲日产2021三区在线| 99久久性生片| 91小视频版在线观看www| 重口调教一区二区视频| 国产欧美视频一区二区三区| 一本大道AV人久久综合| 美美女高清毛片视频免费观看| 亚洲国产系列| 亚洲精品男人天堂| 精品视频在线观看你懂的一区| 日韩免费无码人妻系列| 一级毛片在线免费视频| 国产精品99久久久| 亚洲 欧美 偷自乱 图片| 亚洲精品天堂在线观看| 亚洲欧美另类日本| 激情亚洲天堂| 日韩国产一区二区三区无码| 人人看人人鲁狠狠高清| 欧美一区二区三区欧美日韩亚洲 | 国产尤物在线播放| 天堂亚洲网| 亚洲成av人无码综合在线观看| 亚洲大尺度在线| 欧美精品aⅴ在线视频| 四虎影视永久在线精品| 日韩欧美国产三级| 精品成人一区二区| 日韩欧美国产三级| 青青草国产在线视频| 亚洲精品成人7777在线观看| 日本精品一在线观看视频| 亚洲欧美成aⅴ人在线观看| 久久国产精品影院| 高清乱码精品福利在线视频| 国产农村1级毛片| 欧洲在线免费视频| 国产菊爆视频在线观看| 播五月综合| 高潮爽到爆的喷水女主播视频| 亚洲天堂网视频| 色偷偷一区| 国产丝袜无码精品| 99偷拍视频精品一区二区| 久久99久久无码毛片一区二区 | 国国产a国产片免费麻豆| 99热这里只有精品免费国产| 久久亚洲国产视频| 国产毛片久久国产| 日本福利视频网站| 99er精品视频| 亚洲无码精彩视频在线观看| 国产精品美女自慰喷水| 午夜国产不卡在线观看视频| 国产主播喷水| 无码内射在线|