一種自管理的微服務(wù)架構(gòu)及其服務(wù)方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種自管理的微服務(wù)架構(gòu)及其服務(wù)方法,微服務(wù)架構(gòu)包括:服務(wù)編排、配置共享和服務(wù)發(fā)現(xiàn)兩個(gè)方面;服務(wù)方法包括:組件部署和發(fā)現(xiàn);監(jiān)控;自動(dòng)伸縮;健康管理;自修復(fù);單一服務(wù)組件化。本發(fā)明是一個(gè)天然整合了最佳編排以及服務(wù)自管理的分布式框架,將自管理與應(yīng)用的部署相關(guān)聯(lián),排除了本質(zhì)上的局限性,利用一致性算法選舉leader節(jié)點(diǎn),對(duì)集群內(nèi)其他節(jié)點(diǎn)進(jìn)行管理,同時(shí)整合了常用的最佳云編排實(shí)踐和分布式配置,提供可組合的微服務(wù)自管理以及微服務(wù)架構(gòu)的應(yīng)用。
【專(zhuān)利說(shuō)明】
一種自管理的微服務(wù)架構(gòu)及其服務(wù)方法
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及一種自管理的云端微服務(wù)應(yīng)用架構(gòu),尤其涉及一種利用服務(wù)編排和一致性算法的分布式配置管理進(jìn)行云應(yīng)用的自管理的微服務(wù)架構(gòu)及其服務(wù)方法。
【背景技術(shù)】
[0002]云計(jì)算在經(jīng)歷早期嘗試后正被大多數(shù)公司接受,云計(jì)算的優(yōu)勢(shì)可歸納為兩類(lèi),可操作性和經(jīng)濟(jì)。云計(jì)算提供了快捷的自助式服務(wù),通過(guò)可使資源部署和移除的API達(dá)到任務(wù)的自動(dòng)化,這減少可開(kāi)發(fā)-測(cè)試-生產(chǎn)環(huán)境搭建的等待時(shí)間,提高了敏捷度和交付速度。在經(jīng)濟(jì)方面按需收費(fèi)的模式僅需為實(shí)際使用的資源付費(fèi),開(kāi)發(fā)公司不再需要進(jìn)行物理IT基礎(chǔ)設(shè)施的維護(hù),減少了運(yùn)營(yíng)成本,公司更多專(zhuān)注于開(kāi)發(fā)而不是運(yùn)維。
[0003]然而,雖然有對(duì)云應(yīng)用開(kāi)發(fā)的一系列架構(gòu)模式和最佳實(shí)踐,但將遺留應(yīng)用迀移到云端或者開(kāi)發(fā)原生的云應(yīng)用仍然存在挑戰(zhàn)。一方面,按需收費(fèi)模式節(jié)約成本是有條件的,即:I)應(yīng)用的負(fù)載多變;2)提供商能夠分配合適的資源,不多也不少。另一方面,雖然在硬件、故障開(kāi)關(guān)(switch break)、故障域等方法有助于隔離故障,但是開(kāi)發(fā)人員也要在半可靠的基礎(chǔ)設(shè)施上為修復(fù)應(yīng)用做故障預(yù)案。為了達(dá)到修復(fù)和擴(kuò)展的效果,需要進(jìn)行云應(yīng)用的持續(xù)監(jiān)測(cè),分析特定的應(yīng)用和基礎(chǔ)設(shè)施指標(biāo),最小化人為干預(yù)地實(shí)現(xiàn)故障自動(dòng)響應(yīng)(健康管理)和環(huán)境自動(dòng)變更(自動(dòng)伸縮)。
[0004]目前的監(jiān)控、健康管理、擴(kuò)展包括下面幾種方式:
基礎(chǔ)設(shè)施提供商,如CloudWatch(http: //aws.amazon.com/cn/cloudwatch/)和AutoScalingChttp://aws.amazon.com/cn/autoscaling/);
第三方服務(wù),如RightScale(https://en.wikipedia.0rg/wiki/RightScale) ,NewRelicChttps://newrelic.com/);
使用組件構(gòu)建專(zhuān)用方案,如Netfl ix Server (https: //www.netf I ix.com/cn/),Kubernetes(http://kubernetes.1/),logstash(https://www.elastic.co/products/logstash)o
[0005]前兩種都可能導(dǎo)致被“套牢”,甚至突然被終止服務(wù)。專(zhuān)用方案則難度更大,因?yàn)檫@種方式需要對(duì)云應(yīng)用實(shí)現(xiàn)無(wú)縫監(jiān)控和管理,即方案本身能夠修復(fù)和擴(kuò)展。上述管理方式都有一個(gè)特征:它們都是作為額外的服務(wù)或者進(jìn)程,獨(dú)立于具體應(yīng)用的。
[0006]經(jīng)過(guò)上述分析,鑒于這些方式本質(zhì)上的局限性,提供一種可以進(jìn)行擴(kuò)展和修復(fù)自管理,以及適應(yīng)云應(yīng)用及其動(dòng)態(tài)特性的云端微服務(wù)應(yīng)用架構(gòu)是大勢(shì)所趨。
【發(fā)明內(nèi)容】
[0007]本發(fā)明的目的是提供一種自管理的微服務(wù)架構(gòu)及其服務(wù)方法,利用一致性算法選舉leader節(jié)點(diǎn),對(duì)集群內(nèi)其他節(jié)點(diǎn)進(jìn)行管理,同時(shí)整合了常用的最佳云編排實(shí)踐和分布式配置,提供可組合的微服務(wù)自管理以及微服務(wù)架構(gòu)的應(yīng)用。
[0008]本發(fā)明的目的通過(guò)以下技術(shù)方案實(shí)現(xiàn): 一種自管理的微服務(wù)架構(gòu),其特征在于:該微服務(wù)架構(gòu)包括:服務(wù)編排、配置共享和服務(wù)發(fā)現(xiàn)兩個(gè)方面;服務(wù)編排,是一種自動(dòng)化部署的抽象,通過(guò)表示所需資源及其拓?fù)潢P(guān)系的類(lèi)型圖(Type Graph,TG)定義一個(gè)服務(wù),當(dāng)需要實(shí)例化時(shí),編排器就開(kāi)始對(duì)資源進(jìn)行部署和配置(通過(guò)自動(dòng)部署工具);配置共享和服務(wù)發(fā)現(xiàn),考慮到部署簡(jiǎn)便和文檔豐富,本發(fā)明使用了 EtccLEtcd是分布式配置共享及服務(wù)發(fā)現(xiàn)的一致性鍵值倉(cāng)庫(kù),多個(gè)節(jié)點(diǎn)運(yùn)行etcd服務(wù)器,相互連通形成集群,通過(guò)一致性算法(即Raft)進(jìn)行容錯(cuò)和保持一致性,統(tǒng)一集群中節(jié)點(diǎn)共享相同令牌,使用CoreOS提供的節(jié)點(diǎn)注冊(cè)服務(wù)來(lái)相互發(fā)現(xiàn)。
[0009]本發(fā)明也可以使用專(zhuān)用的節(jié)點(diǎn)注冊(cè)服務(wù)。Etcd使用的一致性算法同樣提供Leader的選舉功能,集群中的某個(gè)節(jié)點(diǎn)被其他節(jié)點(diǎn)選舉為唯一的“協(xié)調(diào)者”。
[0010]一種自管理的微服務(wù)架構(gòu)的服務(wù)方法,其特征在于包括以下步驟:
I)組件部署和發(fā)現(xiàn)。初始的自管理單一服務(wù)部署可以通過(guò)G.Karagiannis等人提出的編SM艮務(wù)(G.Karagiannis, A.Jamakovic, A.Edmonds, C.Parada, T.Metsch, D.Pichon, M.Corici, S.Ruffino, A.Gomes, P.S.Crosta, et al.Mobile cloudnetworking: Virtualisat1n of cellular networks.1n Telecommunicat1ns (ICT),2014 21st Internat1nal Conference on, pages 410-415.1EEE, 2014.)實(shí)現(xiàn)。已部署的軟件組件定位自己在類(lèi)型圖(TG)中的角色(本例中指是否是LB,AS,DB或者CA);每個(gè)組件使用uuid標(biāo)識(shí),所有組件作為節(jié)點(diǎn)共享令牌來(lái)訪(fǎng)問(wèn)Etcd集群,并相互發(fā)現(xiàn)。當(dāng)編排器部署完成初始化組件,就在Etcd上將對(duì)應(yīng)服務(wù)狀態(tài)設(shè)置為“active”,當(dāng)初始化完成后,被選舉為leader的組件開(kāi)始履行自動(dòng)擴(kuò)展和健康管理的自管理功能。
[0011]2)監(jiān)控。假設(shè)每個(gè)相關(guān)組件都執(zhí)行內(nèi)部監(jiān)控,并將監(jiān)控指標(biāo)發(fā)布給Etcd進(jìn)行聚合。Etcd使存儲(chǔ)的監(jiān)控信息變得無(wú)狀態(tài)達(dá)到伸縮的彈性效果。即使虛機(jī)或容器的伸縮過(guò)程發(fā)生故障,會(huì)立即啟用新的組件,從中斷處接替伸縮過(guò)程。
[0012]3)自動(dòng)伸縮。自動(dòng)伸縮組件使用性能模型進(jìn)行組件橫向擴(kuò)展。主要功能是確定在保證服務(wù)質(zhì)量前提下每種類(lèi)型組件所需實(shí)例戶(hù)數(shù)量。自動(dòng)伸縮由leader節(jié)點(diǎn)啟動(dòng),該節(jié)點(diǎn)從Etcd中監(jiān)控信息,獲取當(dāng)前系統(tǒng)配置,然后輸出每種組件類(lèi)型的實(shí)例數(shù)量,并存儲(chǔ)在類(lèi)型圖中的節(jié)點(diǎn)的約束文件夾下以req(required)標(biāo)識(shí)。
[0013]4)健康管理。負(fù)責(zé)健康管理的節(jié)點(diǎn)將實(shí)例圖與系統(tǒng)的期望狀態(tài)比對(duì),根據(jù)結(jié)果實(shí)施以下操作:I)殺死或重啟未響應(yīng)組件;2)實(shí)例化新組件;3)銷(xiāo)毀不需要的組件;4)按照基數(shù)約束,配置組件間聯(lián)系。
[0014]5)自修復(fù)。通過(guò)在不同故障域中測(cè)試部署組件,上述架構(gòu)可以從故障中修復(fù),而且故障組件會(huì)在秒級(jí)重啟。只要剩余集群節(jié)點(diǎn)數(shù)量大于一致性所需最小值(3個(gè)),故障節(jié)點(diǎn)以外的某個(gè)節(jié)點(diǎn)會(huì)被選舉為新leader,預(yù)期的應(yīng)用狀態(tài)和監(jiān)控?cái)?shù)據(jù)在Etcd集群中共享,使得健康管理和自動(dòng)伸縮組件無(wú)狀態(tài),進(jìn)而正確管理單一服務(wù)。
[0015]6)單一服務(wù)組件化。每個(gè)微服務(wù)以單一服務(wù)的形式部署,但是組件持有兩個(gè)etcd令牌。本地令牌用來(lái)和原來(lái)一樣形成單一服務(wù)集群并選舉leader,第二個(gè)令牌用于被選舉出的leader節(jié)點(diǎn)們組成更高一層的多服務(wù)集群。
[0016]本發(fā)明中,監(jiān)控指標(biāo)是指,系統(tǒng)底層指標(biāo)(如CPU、10、RAM)和上層應(yīng)用的指標(biāo)(如響應(yīng)時(shí)間、吞吐量)。
[0017]與現(xiàn)有微服務(wù)架構(gòu)相比,本發(fā)明具有如下優(yōu)勢(shì): 本發(fā)明是一個(gè)天然整合了最佳編排以及服務(wù)自管理分布式框架,將自管理與應(yīng)用的部署相關(guān)聯(lián),排除了本質(zhì)上的局限性,可以天然的擴(kuò)展應(yīng)用而不需額外的代碼或認(rèn)為干預(yù)。本發(fā)明使得云應(yīng)用可以更加方便的迀移到其他更高效的云平臺(tái)上,而不會(huì)被基礎(chǔ)設(shè)施等提供的管理“套牢”。
【附圖說(shuō)明】
[0018]圖1-1帶有緩存的簡(jiǎn)單web應(yīng)用類(lèi)型圖示例;
圖1-2是帶有緩存的簡(jiǎn)單web應(yīng)用類(lèi)型對(duì)應(yīng)實(shí)例圖示例;
圖2為描繪服務(wù)實(shí)例和反實(shí)例過(guò)程的時(shí)序圖;
圖3為使用Etcd目錄結(jié)構(gòu)表示類(lèi)型圖(TG)和示例圖(IG)的片段圖;
圖4為一個(gè)基于微服務(wù)應(yīng)用的類(lèi)型圖和實(shí)例圖示例圖;
圖5為Etcd實(shí)現(xiàn)自管理的微服務(wù)應(yīng)用圖。
【具體實(shí)施方式】
[0019]以下結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。
[0020]一種自管理的微服務(wù)架構(gòu),應(yīng)用于帶有緩存的簡(jiǎn)單Web應(yīng)用中,包括服務(wù)編排以及配置共享和服務(wù)發(fā)現(xiàn)兩部分。
[0021]服務(wù)編排。圖1-1展示了帶有緩存的簡(jiǎn)單web應(yīng)用編排類(lèi)型圖(TG),其使用負(fù)載均衡器(LB)向最多20個(gè)應(yīng)用服務(wù)器(AS)實(shí)例轉(zhuǎn)發(fā)請(qǐng)求,并最多連接2個(gè)數(shù)據(jù)庫(kù)(DB)實(shí)例和4個(gè)緩存(CA)實(shí)例。圖中節(jié)點(diǎn)旁的數(shù)字代表實(shí)例的上下限約束,邊旁的數(shù)字代表實(shí)例間連接數(shù)的上下限約束。如,一個(gè)緩存節(jié)點(diǎn)最多給5個(gè)應(yīng)用服務(wù)器節(jié)點(diǎn)提供服務(wù)。連接數(shù)的約束設(shè)定一般依賴(lài)技術(shù)人員的經(jīng)驗(yàn)。右邊圖是對(duì)應(yīng)的實(shí)例圖。在數(shù)學(xué)上,類(lèi)型圖(TG)是實(shí)例圖(IG)的范式,實(shí)例圖在拓?fù)渖献袷亓祟?lèi)型圖的拓?fù)浣Y(jié)構(gòu)和約束。
[0022]配置共享和服務(wù)發(fā)現(xiàn)。Etcd配置服務(wù)的主要用處是當(dāng)系統(tǒng)發(fā)生相關(guān)改變時(shí)更新組件的配置。例如,圖1-2所提及的應(yīng)用示例,負(fù)載均衡器可以使用Etcd來(lái)監(jiān)控所有應(yīng)用服務(wù)器,一旦有新的應(yīng)用服務(wù)器啟動(dòng),立即重新配置轉(zhuǎn)發(fā)策略。這個(gè)重配置協(xié)議僅需要應(yīng)用服務(wù)器啟動(dòng)時(shí)進(jìn)行服務(wù)注冊(cè)。Etcd使用的一致性算法同樣提供Leader的選舉功能,集群中的某個(gè)節(jié)點(diǎn)被其他節(jié)點(diǎn)選舉為唯一的“協(xié)調(diào)者”。
[0023]本實(shí)施例的自管理的微服務(wù)架構(gòu)的實(shí)施流程如圖2:—種自管理的微服務(wù)架構(gòu)的服務(wù)方法,包括以下步驟:
I)組件部署和發(fā)現(xiàn)。Etcd目錄結(jié)構(gòu)可以用來(lái)表示類(lèi)型圖(TG)和實(shí)例圖(IG)。當(dāng)一個(gè)新組建部署并啟動(dòng)時(shí)將加入Etcd集群,在對(duì)應(yīng)組件類(lèi)型下注冊(cè)新目錄,廣播自身的能力,保存關(guān)系信息。圖3中,一個(gè)新的CA(cache)實(shí)例使用uuidl創(chuàng)建目錄,并保存可以被應(yīng)用服務(wù)器組件使用的終端鍵。自動(dòng)擴(kuò)展管理負(fù)責(zé)確定每種組件類(lèi)型需要的實(shí)例數(shù)量,健康管理器確保有預(yù)定數(shù)量的實(shí)例正確運(yùn)行且和類(lèi)型圖中所規(guī)定的連接相配。Etcd周期性發(fā)布組件信息(如終端)當(dāng)組件故障或者被移除時(shí),其可訪(fǎng)問(wèn)的信息將自動(dòng)從Etcd中移除,健康管理器以及所有獨(dú)立組件將收到更新通告。當(dāng)編排器部署完成初始化組件,就在Etcd上將對(duì)應(yīng)服務(wù)狀態(tài)設(shè)置為“active”,當(dāng)初始化完成后,被選舉為leader的組件開(kāi)始履行自動(dòng)擴(kuò)展和健康管理的自管理功能。
[0024]2)監(jiān)控。云監(jiān)控都需要收集系統(tǒng)底層指標(biāo)(如CPU,10,RAM)和上層應(yīng)用的指標(biāo)(如響應(yīng)時(shí)間,吞吐量)。響應(yīng)時(shí)間一般與系統(tǒng)性能有關(guān),但為了服務(wù)質(zhì)量,幾秒鐘的時(shí)間窗口足以評(píng)估系統(tǒng)表現(xiàn)。假設(shè)每個(gè)相關(guān)組件都執(zhí)行內(nèi)部監(jiān)控,并將指標(biāo)發(fā)布給Etcd進(jìn)行聚合。例如,圖1例子中的負(fù)載均衡可以用內(nèi)部指標(biāo)與logstash監(jiān)控指標(biāo)相結(jié)合,得到諸如平均請(qǐng)求速率,響應(yīng)時(shí)間,最后5s,1s,30s,lm,5m,1m的請(qǐng)求隊(duì)列長(zhǎng)度等信息。這些指標(biāo)一般足以確定實(shí)際所需的應(yīng)用服務(wù)器數(shù)量。
[0025]3)自動(dòng)伸縮。自動(dòng)伸縮組件使用性能模型進(jìn)行組件橫向擴(kuò)展。主要功能是確定在保證服務(wù)質(zhì)量前提下每種類(lèi)型組件所需實(shí)例戶(hù)數(shù)量。自動(dòng)伸縮由leader節(jié)點(diǎn)啟動(dòng),該節(jié)點(diǎn)從Etcd中監(jiān)控信息,獲取當(dāng)前系統(tǒng)配置,然后輸出每種組件類(lèi)型的實(shí)例數(shù)量,并存儲(chǔ)在類(lèi)型圖中的節(jié)點(diǎn)的約束文件夾下以req(required)標(biāo)識(shí),如圖3所示。
[0026]4)健康管理。負(fù)責(zé)健康管理的節(jié)點(diǎn)將實(shí)例圖與系統(tǒng)的期望狀態(tài)比對(duì),根據(jù)結(jié)果實(shí)施以下操作:I)殺死或重啟未響應(yīng)組件;2)實(shí)例化新組件;3)銷(xiāo)毀不需要的組件;4)按照基數(shù)約束,配置組件間聯(lián)系。
[0027]5)自修復(fù)。通過(guò)在不同故障域中測(cè)試部署組件,上述架構(gòu)可以從故障中修復(fù),而且故障組件會(huì)在秒級(jí)重啟。只要剩余集群節(jié)點(diǎn)數(shù)量大于一致性所需最小值(3個(gè)),故障節(jié)點(diǎn)以外的某個(gè)節(jié)點(diǎn)會(huì)被選舉為新leader,預(yù)期的應(yīng)用狀態(tài)和監(jiān)控?cái)?shù)據(jù)在Etcd集群中共享,使得健康管理和自動(dòng)伸縮組件無(wú)狀態(tài),進(jìn)而正確管理單一服務(wù)。
[0028]6)單一服務(wù)組件化。基于服務(wù)編排可組合性的概念,同樣的架構(gòu)也可以用來(lái)部署自管理的服務(wù)組合以及使用微服務(wù)架構(gòu)的應(yīng)用。正如可以在單一服務(wù)中使用類(lèi)型圖表示組件,類(lèi)型圖同樣可以表示基于微服務(wù)的應(yīng)用以及相互調(diào)用關(guān)系,實(shí)例圖則可以表示多個(gè)微服務(wù)實(shí)例,提供彈性及性能的保證,如圖4。
[0029]圖5直觀展示了Etcd集群如何用來(lái)實(shí)現(xiàn)自管理的微服務(wù)應(yīng)用。每個(gè)微服務(wù)以單一服務(wù)的形式部署,但是組件持有兩個(gè)etcd令牌。本地令牌用來(lái)和原來(lái)一樣形成單一服務(wù)集群并選舉leader,第二個(gè)令牌用于被選舉出的leader節(jié)點(diǎn)們組成更高一層的多服務(wù)集群。組合集群用于微服務(wù)終端發(fā)現(xiàn),也用于微服務(wù)組合層次的leader選舉。再加上跨故障域的布置,上面提出的架構(gòu)能夠進(jìn)行分布層次的自管理;每個(gè)單元都是活躍的自管理元素,通過(guò)新建單元以維持形態(tài)。
【主權(quán)項(xiàng)】
1.一種自管理的微服務(wù)架構(gòu),其特征在于:該微服務(wù)架構(gòu)包括服務(wù)編排、配置共享和服務(wù)發(fā)現(xiàn)兩個(gè)方面;服務(wù)編排,是一種自動(dòng)化部署的抽象,通過(guò)表示所需資源及其拓?fù)潢P(guān)系的類(lèi)型圖定義一個(gè)服務(wù),當(dāng)需要實(shí)例化時(shí),編排器就開(kāi)始對(duì)資源進(jìn)行部署和配置;配置共享和服務(wù)發(fā)現(xiàn),考慮到部署簡(jiǎn)便和文檔豐富,使用EtccUEtcd是分布式配置共享及服務(wù)發(fā)現(xiàn)的一致性鍵值倉(cāng)庫(kù),多個(gè)節(jié)點(diǎn)運(yùn)行Etcd服務(wù)器,相互連通形成集群,通過(guò)一致性算法進(jìn)行容錯(cuò)和保持一致性,統(tǒng)一集群中節(jié)點(diǎn)共享相同令牌,使用CoreOS提供的節(jié)點(diǎn)注冊(cè)服務(wù)來(lái)相互發(fā)現(xiàn)。2.根據(jù)權(quán)利要求1所述的自管理的微服務(wù)架構(gòu),其特征在于:使用專(zhuān)用的節(jié)點(diǎn)注冊(cè)服務(wù);Etcd使用的一致性算法提供Leader的選舉功能,集群中的某個(gè)節(jié)點(diǎn)被其他節(jié)點(diǎn)選舉為唯一的“協(xié)調(diào)者”。3.—種權(quán)利要求1所述的自管理的微服務(wù)架構(gòu)的服務(wù)方法,其特征在于包括以下步驟: 1)組件部署和發(fā)現(xiàn):初始的自管理單一服務(wù)部署通過(guò)編排服務(wù)實(shí)現(xiàn);已部署的組件定位自己在類(lèi)型圖中的角色;每個(gè)組件使用uuid標(biāo)識(shí),所有組件作為節(jié)點(diǎn)共享令牌來(lái)訪(fǎng)問(wèn)Etcd集群,并相互發(fā)現(xiàn);當(dāng)編排器部署完成初始化組件,就在Etcd上將對(duì)應(yīng)服務(wù)狀態(tài)設(shè)置為“active”,當(dāng)初始化完成后,被選舉為leader的組件開(kāi)始履行自動(dòng)擴(kuò)展和健康管理的自管理功能; 2)監(jiān)控:假設(shè)每個(gè)相關(guān)組件都執(zhí)行內(nèi)部監(jiān)控,并將監(jiān)控指標(biāo)發(fā)布給Etcd進(jìn)行聚合;Etcd使存儲(chǔ)的監(jiān)控信息變得無(wú)狀態(tài)達(dá)到伸縮的彈性效果;即使虛機(jī)或容器的伸縮過(guò)程發(fā)生故障,會(huì)立即啟用新的組件,從中斷處接替伸縮過(guò)程; 3)自動(dòng)伸縮:自動(dòng)伸縮組件使用性能模型進(jìn)行組件橫向擴(kuò)展;主要功能是確定在保證服務(wù)質(zhì)量前提下每種類(lèi)型組件所需實(shí)例戶(hù)數(shù)量;自動(dòng)伸縮由leader節(jié)點(diǎn)啟動(dòng),該節(jié)點(diǎn)從Etcd中監(jiān)控信息,獲取當(dāng)前系統(tǒng)配置,然后輸出每種組件類(lèi)型的實(shí)例數(shù)量,并存儲(chǔ)在類(lèi)型圖中的節(jié)點(diǎn)的約束文件夾下以r eq標(biāo)識(shí); 4)健康管理:負(fù)責(zé)健康管理的節(jié)點(diǎn)將實(shí)例圖與系統(tǒng)的期望狀態(tài)比對(duì),根據(jù)結(jié)果實(shí)施以下操作:(I)殺死或重啟未響應(yīng)組件;(2)實(shí)例化新組件;(3)銷(xiāo)毀不需要的組件;(4)按照基數(shù)約束,配置組件間聯(lián)系; 5)自修復(fù):通過(guò)在不同故障域中測(cè)試部署組件,上述架構(gòu)從故障中修復(fù),而且故障組件在秒級(jí)重啟;只要剩余集群節(jié)點(diǎn)數(shù)量大于一致性所需最小值,故障節(jié)點(diǎn)以外的某個(gè)節(jié)點(diǎn)被選舉為新leader,預(yù)期的應(yīng)用狀態(tài)和監(jiān)控?cái)?shù)據(jù)在Etcd集群中共享,使得健康管理和自動(dòng)伸縮組件無(wú)狀態(tài),進(jìn)而正確管理單一服務(wù); 6)單一服務(wù)組件化:每個(gè)微服務(wù)以單一服務(wù)的形式部署,但是組件持有兩個(gè)Etcd令牌;本地令牌用來(lái)和原來(lái)一樣形成單一服務(wù)集群并選舉leader,第二個(gè)令牌用于被選舉出的leader節(jié)點(diǎn)們組成更高一層的多服務(wù)集群。4.根據(jù)權(quán)利要求3所述的自管理的微服務(wù)架構(gòu)的服務(wù)方法,其特征在于:步驟2)中,所述監(jiān)控指標(biāo)是指,系統(tǒng)底層指標(biāo),包括CPU、10、RAM;上層應(yīng)用的指標(biāo),包括響應(yīng)時(shí)間、吞吐量。
【文檔編號(hào)】H04L29/08GK105933448SQ201610493852
【公開(kāi)日】2016年9月7日
【申請(qǐng)日】2016年6月29日
【發(fā)明人】趙軍, 程偉華, 譚晶
【申請(qǐng)人】江蘇電力信息技術(shù)有限公司, 國(guó)網(wǎng)江蘇省電力公司