本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別涉及一種服務(wù)器服務(wù)更新的方法和系統(tǒng)。
背景技術(shù):
在云計算時代,如何讓服務(wù)快速透明地接入到計算集群中,如何讓共享配置信息快速被集群中的所有機器發(fā)現(xiàn),更為重要的是,如何構(gòu)建這樣一套高可用、安全、易于部署以及響應(yīng)快速的服務(wù)集群,已經(jīng)成為了迫切需要解決的問題。ETCD為解決這類問題提供了有效的方案。ETCD應(yīng)用在分布式環(huán)境下的key/value存儲服務(wù),是一個高可用的鍵值存儲系統(tǒng),主要用于共享配置和服務(wù)發(fā)現(xiàn)。利用ETCD的特性,應(yīng)用程序可以在集群中共享信息、配置或服務(wù)發(fā)現(xiàn),ETCD會在集群的各個節(jié)點中復(fù)制這些數(shù)據(jù)并保證這些數(shù)據(jù)始終正確。Google的容器集群管理系統(tǒng)Kubernetes、開源PaaS平臺Cloud Foundry和CoreOS的Fleet都廣泛使用了ETCD。
ETCD具有如下的優(yōu)點:
ˇ簡單:基于HTTP+JSON的API讓你用curl就可以輕松使用;
ˇ安全:可選SSL客戶認證機制;
ˇ快速:每個實例每秒支持一千次寫操作;
ˇ可信:使用Raft算法充分實現(xiàn)了分布式系統(tǒng)架構(gòu)的一致性。
在分布式系統(tǒng)中,如何管理節(jié)點間的狀態(tài)一直是一個難題。ETCD是專門為集群環(huán)境的服務(wù)發(fā)現(xiàn)和注冊而設(shè)計,它提供了數(shù)據(jù)TTL失效、數(shù)據(jù)改變監(jiān)視、多值、目錄監(jiān)聽、分布式鎖原子操作等功能,可以方便的跟蹤并管理集群 節(jié)點的狀態(tài)。
但是,上述方法無法有效處理后臺服務(wù)器宕機、中斷服務(wù)的情況的發(fā)生。在分布式系統(tǒng)架構(gòu)中,數(shù)量眾多的服務(wù)器由于處理巨量的運算和數(shù)據(jù)的交互,會出現(xiàn)系統(tǒng)崩潰、宕機的情況,而服務(wù)器服務(wù)的中斷就會造成無法共享配置或服務(wù)發(fā)現(xiàn),影響整個分布式系統(tǒng)的運行。為此,需要解決分布式系統(tǒng)中部分服務(wù)器中斷服務(wù)情況的發(fā)生,在中斷發(fā)生后能夠迅速的恢復(fù)系統(tǒng)。
技術(shù)實現(xiàn)要素:
本發(fā)明提供一種服務(wù)器服務(wù)更新的方法和系統(tǒng),對后臺服務(wù)器的運行狀況進行監(jiān)聽,能夠有效監(jiān)控服務(wù)器的運行狀態(tài),迅速發(fā)現(xiàn)服務(wù)器的中斷服務(wù)情況,并采取恢復(fù)措施迅速重啟服務(wù),避免了分布式集群服務(wù)器系統(tǒng)的功能和服務(wù)的中斷,對于保持分布式服務(wù)器系統(tǒng)的穩(wěn)定運行提供了有效的保障。
本發(fā)明的技術(shù)方案提供了一種服務(wù)器服務(wù)更新的方法,包括以下步驟:
A、后臺服務(wù)器向ETCD服務(wù)器注冊;
B、ETCD服務(wù)器設(shè)置針對后臺服務(wù)器的TTL值;
C、后臺服務(wù)器向ETCD服務(wù)器更新發(fā)送TTL值;
D、ETCD服務(wù)器監(jiān)聽后臺服務(wù)器所發(fā)送的TTL值;
若監(jiān)聽到TTL值,則執(zhí)行C步驟;
若在TTL值的時間內(nèi)未監(jiān)聽到TTL值,則執(zhí)行E步驟;
E、重啟后臺服務(wù)器,并返回A步驟。
進一步的,A步驟后,ETCD服務(wù)器針對新注冊的后臺服務(wù)器設(shè)置TTL值。
進一步的,ETCD服務(wù)器針對不同的后臺服務(wù)器設(shè)置不同的TTL值。
進一步的,后臺服務(wù)器按照一定的頻率向ETCD服務(wù)器更新發(fā)送TTL值。
進一步的,頻率時間間隔小于TTL值所定義的時間。
進一步的,ETCD服務(wù)器設(shè)置有監(jiān)聽管理機制,判斷后臺服務(wù)器發(fā)送TTL值是否成功。
進一步的,所述監(jiān)聽管理機制為:ETCD服務(wù)器連續(xù)3次未監(jiān)聽到后臺服務(wù)器發(fā)送的TTL值,則判斷該TTL值所對應(yīng)的后臺服務(wù)器中斷服務(wù)。
本發(fā)明的技術(shù)方案還提供了一種服務(wù)器服務(wù)更新的系統(tǒng),包括:后臺服務(wù)器,ETCD服務(wù)器,其中,
后臺服務(wù)器用于向ETCD服務(wù)器注冊,并定期發(fā)送TTL信號;
ETCD服務(wù)器用于接受后臺服務(wù)器的注冊,為后臺服務(wù)器設(shè)置TTL值,以及命令重啟后臺服務(wù)器。
進一步的,ETCD服務(wù)器為新注冊的后臺服務(wù)器設(shè)置TTL值;
ETCD服務(wù)器為不同的后臺服務(wù)器設(shè)置不同的TTL值。
進一步的,在后臺服務(wù)器的TTL信號中斷后,ETCD服務(wù)器命令重啟后臺服務(wù)器;
后臺服務(wù)器重啟后向ETCD服務(wù)器進行注冊。
本發(fā)明技術(shù)方案設(shè)計采用專用的工作機制來監(jiān)聽和管理群服務(wù)器的工作狀態(tài),在后臺服務(wù)器出現(xiàn)問題的情況下,能夠迅速發(fā)現(xiàn)中斷服務(wù)的服務(wù)器,并采取措施迅速恢復(fù)重啟服務(wù),避免了分布式集群系統(tǒng)的功能和服務(wù)的中斷,對于保持分布式集群系統(tǒng)的穩(wěn)定運行提供了有效的保障。
本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在所寫的說明書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。
下面通過附圖和實施例,對本發(fā)明的技術(shù)方案做進一步的詳細描述。
附圖說明
附圖用來提供對本發(fā)明的進一步理解,并且構(gòu)成說明書的一部分,與本發(fā)明的實施例一起用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的限制。在附圖中:
圖1為本發(fā)明實施例一中服務(wù)器服務(wù)更新的方法流程圖;
圖2為本發(fā)明實施例一中服務(wù)器服務(wù)更新的系統(tǒng)結(jié)構(gòu)圖。
具體實施方式
以下結(jié)合附圖對本發(fā)明的優(yōu)選實施例進行說明,應(yīng)當理解,此處所描述的優(yōu)選實施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
圖1為本發(fā)明實施例一中服務(wù)器服務(wù)更新的方法流程圖。如圖1所示,該流程包括以下步驟:
步驟101、后臺服務(wù)器向ETCD服務(wù)器注冊。
步驟102、ETCD服務(wù)器設(shè)置針對后臺服務(wù)器的TTL值;
A步驟后,ETCD服務(wù)器針對新注冊的后臺服務(wù)器設(shè)置TTL值;
ETCD服務(wù)器針對不同的后臺服務(wù)器設(shè)置不同的TTL值;
ETCD對每臺服務(wù)器只設(shè)置一次TTL值,在每臺服務(wù)器連接ETCD服務(wù)器提供服務(wù)的期間都采用注冊時所設(shè)置的TTL值。
步驟103、后臺服務(wù)器向ETCD服務(wù)器更新發(fā)送TTL值。
后臺服務(wù)器按照一定的頻率向ETCD服務(wù)器更新發(fā)送TTL值;
頻率時間間隔小于TTL值所定義的時間。
步驟104、ETCD服務(wù)器監(jiān)聽后臺服務(wù)器所發(fā)送的TTL值;
ETCD服務(wù)器設(shè)置有監(jiān)聽管理機制,判斷后臺服務(wù)器發(fā)送TTL值是否成功;
所述監(jiān)聽管理機制為:ETCD服務(wù)器連續(xù)3次未監(jiān)聽到后臺服務(wù)器發(fā)送的TTL值,則判斷該TTL值所對應(yīng)的后臺服務(wù)器中斷服務(wù);
若監(jiān)聽到TTL值,則執(zhí)行103步驟;
若在TTL值的時間內(nèi)未監(jiān)聽到TTL值,則執(zhí)行105步驟。
步驟105、重啟后臺服務(wù)器,并返回101步驟。
為了實現(xiàn)上述服務(wù)器服務(wù)更新的流程,本實施例還提供了一種服務(wù)器服務(wù) 更新的系統(tǒng),圖2為本發(fā)明實施例一中服務(wù)器服務(wù)更新的系統(tǒng)結(jié)構(gòu)圖。如圖2所示,該系統(tǒng)包括:后臺服務(wù)器201,ETCD服務(wù)器202,其中,
后臺服務(wù)器用于向ETCD服務(wù)器注冊,并定期發(fā)送TTL信號;
ETCD服務(wù)器用于接受后臺服務(wù)器的注冊,為后臺服務(wù)器設(shè)置TTL值,以及命令重啟后臺服務(wù)器。
進一步的,ETCD服務(wù)器為新注冊的后臺服務(wù)器設(shè)置TTL值;
ETCD服務(wù)器為不同的后臺服務(wù)器設(shè)置不同的TTL值。
進一步的,在后臺服務(wù)器的TTL信號中斷后,ETCD服務(wù)器命令重啟后臺服務(wù)器;
后臺服務(wù)器重啟后向ETCD服務(wù)器進行注冊。
本發(fā)明技術(shù)方案設(shè)計采用專用的設(shè)備監(jiān)聽和管理群服務(wù)器的工作狀態(tài),在后臺服務(wù)器出現(xiàn)運行問題的情況下,能夠迅速發(fā)現(xiàn)發(fā)生服務(wù)中斷情況的服務(wù)器,并采取恢復(fù)措施迅速重啟服務(wù),避免了分布式系統(tǒng)的功能和服務(wù)的中斷,對于保持分布式系統(tǒng)的穩(wěn)定運行提供了有效的保障。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器和光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。