本申請涉及計算機技術(shù)領(lǐng)域,具體涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及用于通知配置文件變更的方法和裝置。
背景技術(shù):
隨著微服務將單一應用程序作為由眾多小型服務構(gòu)成之套件加以開發(fā),其中的各項服務都擁有自己的配置文件,如何管理每個服務中大量的配置文件變得越發(fā)重要。
目前對于微服務中各項服務的大量配置文件的管理,主要通過靜態(tài)配置中心實現(xiàn)配置文件的管理,配置文件的變化不會通知相關(guān)服務,當服務重啟時由服務主動向靜態(tài)配置中心拉取配置文件。
然而,上述對微服務中各項服務的配置文件進行管理的方式,各個服務只有在重啟服務時才能拉取配置文件,無法及時調(diào)用配置文件,且調(diào)用配置文件時需要重啟服務,調(diào)用步驟較為繁瑣。
技術(shù)實現(xiàn)要素:
本申請的目的在于提出一種改進的用于通知配置文件變更的方法和裝置,來解決以上背景技術(shù)部分提到的技術(shù)問題。
第一方面,本申請?zhí)峁┝艘环N用于通知配置文件變更的方法,所述方法包括:接收服務的注冊信息,所述注冊信息包括服務信息及服務關(guān)注的配置文件;監(jiān)控所述配置文件是否變更;間隔預定時長探測所述服務是否為活動的服務;響應于所述配置文件變更,通知活動的服務。
在一些實施例中,所述監(jiān)控所述配置文件是否變更包括:監(jiān)控是否接收到所述配置文件的更新版本的版本信息以及預先接收到所述配置文件的更新版本;響應于接收到所述版本信息以及預先接收到所述配置文件的更新版本,確定所述配置文件變更。
在一些實施例中,所述方法還包括:將所述注冊信息存儲至數(shù)據(jù)庫;響應于所述服務為不活動的服務,刪除所述數(shù)據(jù)庫中所述服務的注冊信息;以及所述響應于所述配置文件變更,通知活動的服務包括:響應于所述配置文件變更,根據(jù)所述數(shù)據(jù)庫中的注冊信息通知活動的服務。
在一些實施例中,所述監(jiān)控是否接收到所述配置文件的更新版本的版本信息以及預先接收到所述配置文件的更新版本包括:監(jiān)控配置中心界面是否接收到所述配置文件的更新版本的版本信息,以及監(jiān)控版本控制模塊是否預先接收到所述配置文件的更新版本。
在一些實施例中,所述確定所述配置文件變更包括:所述配置中心界面從所述版本控制模塊下載所述配置文件的更新版本;所述配置中心界面將所述配置文件的更新版本上傳至文件存儲監(jiān)控模塊;所述文件存儲監(jiān)控模塊響應于接收到所述配置文件的更新版本,確定所述配置文件變更。
在一些實施例中,所述響應于所述配置文件變更,根據(jù)所述數(shù)據(jù)庫中的注冊信息通知活動的服務包括:所述文件存儲監(jiān)控模塊響應于所述配置文件變更,向配置中心客戶端發(fā)送配置文件變更通知;所述配置中心客戶端響應于接收所述配置文件變更通知,從所述文件存儲監(jiān)控模塊下載所述配置文件的更新版本,并從所述數(shù)據(jù)庫中查找對應所述配置文件的注冊信息,根據(jù)所述注冊信息通知活動的服務。
第二方面,本申請?zhí)峁┝艘环N用于通知配置文件變更的裝置,所述裝置包括:接收模塊,用于接收服務的注冊信息,所述注冊信息包括服務信息及服務關(guān)注的配置文件;監(jiān)控模塊,用于監(jiān)控所述配置文件是否變更;探測模塊,用于間隔預定時長探測所述服務是否為活動的服務;通知模塊,用于響應于所述配置文件變更,通知活動的服務。
在一些實施例中,所述監(jiān)控模塊包括:監(jiān)控條件子模塊,用于監(jiān)控是否接收到所述配置文件的更新版本的版本信息以及預先接收到所述配置文件的更新版本;確定變更子模塊,用于響應于接收到所述版本信息以及預先接收到所述配置文件的更新版本,確定所述配置文件變更。
在一些實施例中,所述裝置還包括:存儲模塊,用于將所述注冊信息存儲至數(shù)據(jù)庫;刪除模塊,用于響應于所述服務為不活動的服務,刪除所述數(shù)據(jù)庫中所述服務的注冊信息;以及所述通知模塊包括:變更通知子模塊,用于響應于所述配置文件變更,根據(jù)所述數(shù)據(jù)庫中的注冊信息通知活動的服務。
在一些實施例中,所述監(jiān)控條件子模塊進一步用于:監(jiān)控版本控制模塊是否預先接收到所述配置文件的更新版本;以及監(jiān)控配置中心界面是否接收到所述配置文件的更新版本的版本信息。
在一些實施例中,所述確定變更子模塊進一步用于:所述配置中心界面從所述版本控制模塊下載所述配置文件的更新版本;所述配置中心界面將所述配置文件的更新版本上傳至文件存儲監(jiān)控模塊;所述文件存儲監(jiān)控模塊響應于接收到所述配置文件的更新版本,確定所述配置文件變更。
在一些實施例中,所述變更通知子模塊進一步用于:所述文件存儲監(jiān)控模塊響應于所述配置文件變更,向配置中心客戶端發(fā)送配置文件變更通知;所述配置中心客戶端響應于接收所述配置文件變更通知,從所述文件存儲監(jiān)控模塊下載所述配置文件的更新版本,并從所述數(shù)據(jù)庫中查找對應所述配置文件的注冊信息,根據(jù)所述注冊信息通知活動的服務。
本申請?zhí)峁┑挠糜谕ㄖ渲梦募兏姆椒ê脱b置,通過接收服務的注冊信息,注冊信息包括服務信息及服務關(guān)注的配置文件,接著監(jiān)控配置文件是否變更,之后間隔預定時長探測服務是否為活動的服務,最后響應于配置文件變更,通知活動的服務,從而可以實現(xiàn)配置文件的版本控制,當配置文件更新時,可以跨平臺跨語言通知注冊的服務,并且可以通過定期的探測活動服務的機制確定活動的服務,再通過主動通知機制使得活動的服務在不重啟的情況下可以調(diào)用新的配置文件,可以及時調(diào)用配置文件,并且調(diào)用配置文件的步驟簡單。
附圖說明
通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細描述,本申請的其它特征、目的和優(yōu)點將會變得更明顯:
圖1是根據(jù)本申請的用于通知配置文件變更的方法的一個實施例的流程圖;
圖2是用于實施本申請的用于通知配置文件變更的方法的一個實施例的架構(gòu)圖;
圖3是根據(jù)本申請用于檢測服務器故障的裝置的一個實施例的結(jié)構(gòu)示意圖。
具體實施方式
下面結(jié)合附圖和實施例對本申請作進一步的詳細說明??梢岳斫獾氖?,此處所描述的具體實施例僅僅用于解釋相關(guān)發(fā)明,而非對該發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與有關(guān)發(fā)明相關(guān)的部分。
需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。下面將參考附圖并結(jié)合實施例來詳細說明本申請。
本申請中的用于通知配置文件變更的方法,可以采用現(xiàn)有的或未來發(fā)展的跨平臺跨語言的軟件架構(gòu)來實現(xiàn),例如表述性狀態(tài)傳遞(Rest)架構(gòu)來實現(xiàn),本申請對此不做限定。
圖1示出了根據(jù)本申請的用于通知配置文件變更的方法的一個實施例的流程100。
如圖1所示,用于通知配置文件變更的方法100可以包括以下步驟:
步驟101,接收服務的注冊信息。
在本實施例中,用于通知配置文件變更的方法可以運行于一個包括多個終端和服務器或服務器集群的系統(tǒng)中。系統(tǒng)中哪些服務的配置文件需要集中統(tǒng)一維護,可以通過接收的服務的注冊信息來確定。這里的注冊信息可以包括服務信息及服務關(guān)注的配置文件。當服務啟動時,服務可以向運行用于通知配置文件變更的方法的系統(tǒng)注冊自己的信息以及自己關(guān)注的配置文件。
運行用于通知配置文件變更的方法的系統(tǒng),在接收到服務的注冊信息之后,可以存儲這些注冊信息。
步驟102,監(jiān)控配置文件是否變更。
在本實施例中,運行用于通知配置文件變更的方法的系統(tǒng)可以向用戶提供上傳新版配置文件的接口,并監(jiān)控該接口是否接收到新版配置文件,當接收到新版配置文件時,確定配置文件變更。
可選地,用戶可以預先上傳配置文件的更新版本,若系統(tǒng)在接收到用戶輸入的版本信息時可以調(diào)用到配置文件的更新版本,則確定配置文件變更。這里的版本信息可以包括用于識別配置文件的版本號和配置文件的存儲位置信息。
可選地,為了使監(jiān)控步驟的運行不影響其它步驟的運行,可以單獨設置模塊用于監(jiān)控配置文件是否變更。例如,可以通過設置配置中心界面和版本控制模塊來監(jiān)控配置文件是否變更:通過監(jiān)控配置中心界面是否接收到配置文件的更新版本的版本信息,以及監(jiān)控版本控制模塊是否預先接收到配置文件的更新版本,來確定配置文件是否變更。
可選地,對應于上述的監(jiān)控到配置中心界面接收到配置文件的更新版本的版本信息,以及監(jiān)控版本控制模塊預先接收到配置文件的更新版本,上述的確定配置文件變更也可以通過設置的文件存儲監(jiān)控模塊來實現(xiàn):配置中心界面從版本控制模塊下載配置文件的更新版本;配置中心界面將配置文件的更新版本上傳至文件存儲監(jiān)控模塊;文件存儲監(jiān)控模塊響應于接收到配置文件的更新版本,確定配置文件變更。
步驟103,間隔預定時長探測服務是否為活動的服務。
在本實施例中,為了保證在配置文件變更時,運行用于通知配置文件變更的方法的系統(tǒng)可以通知到活動的服務,可以間隔預定時長探測存儲的注冊信息所對應的服務是否為活動的服務。
探測接收到的注冊信息所對應的服務是否為活動的服務的方式,可以為現(xiàn)有技術(shù)中或未來發(fā)展的技術(shù)中已有的探測方式,本申請對此不做限定。
在探測到服務為活動的服務時,可以對存儲的注冊信息中對應活動的服務的注冊信息添加活動標識,也可以對存儲的注冊信息中對應不活動的服務的注冊信息添加不活動標識,或者直接刪除存儲的注冊信息中對應不活動的服務的注冊信息,從而便于系統(tǒng)確定活動的服務。
步驟104,響應于配置文件變更,通知活動的服務。
在本實施例中,基于步驟103中探測得到的活動的服務,可以在監(jiān)控到配置文件變更時,通知關(guān)注這些配置文件的活動的服務。
可選地,對應于上述的將注冊信息存儲至數(shù)據(jù)庫,響應于服務為不活動的服務,刪除數(shù)據(jù)庫中服務的注冊信息,可以響應于配置文件變更,根據(jù)數(shù)據(jù)庫中的注冊信息通知活動的服務。
可選地,上述的響應于配置文件變更,根據(jù)數(shù)據(jù)庫中的注冊信息通知活動的服務可以通過上述的文件存儲模塊和預先設置的配置中心客戶端來實現(xiàn):文件存儲監(jiān)控模塊響應于配置文件變更,向配置中心客戶端發(fā)送配置文件變更通知;配置中心客戶端響應于接收配置文件變更通知,從文件存儲監(jiān)控模塊下載配置文件的更新版本,并從數(shù)據(jù)庫中查找對應配置文件的注冊信息,根據(jù)注冊信息通知活動的服務。
應當理解,本實施例中的版本控制模塊、配置中心界面、文件存儲監(jiān)控模塊和配置中心客戶端,可以為同一系統(tǒng)中四個相對獨立的功能模塊,以便防止在一個模塊出現(xiàn)問題時牽連其它模塊。這里的四個功能模塊的設置位置,可以根據(jù)用戶需要設置于服務器或終端中,本申請對此并不限定。
本申請上述實施例中的用于通知配置文件變更的方法,實現(xiàn)了對配置文件的版本控制,在配制文件更新時可以跨平臺跨語言的通知注冊的服務,采用定期的探測活動服務的機制,保證有效的注冊服務信息,并采用主動通知機制使得服務在不重啟的情況下可以調(diào)用新的配置文件,可以及時調(diào)用配置文件,并且調(diào)用配置文件的步驟簡單。
進一步參考圖2,圖2示出了用于實施本申請的用于通知配置文件變更的方法的一個實施例的架構(gòu)圖200。
如圖2所示,用于實施本申請的用于通知配置文件變更的方法的一個實施例的架構(gòu)圖200體現(xiàn)了運行用于通知配置文件變更的方法的系統(tǒng)的一種具體表現(xiàn)形式,在該表現(xiàn)形式中,系統(tǒng)可以包括但不限于:版本控制模塊210、配置中心界面220、文件存儲監(jiān)控模塊230、配置中心客戶端240和數(shù)據(jù)庫250。
以下結(jié)合圖2中示出的運行用于通知配置文件變更的方法的系統(tǒng),說明用于通知配置文件變更的方法的執(zhí)行步驟:
首先,服務1、服務2和服務3在服務啟動時,分別向配置中心客戶端240注冊自己的服務信息以及關(guān)注的配置文件;
接著,配置中心客戶端240將接收的服務信息和服務信息關(guān)注的配置文件存入本地的數(shù)據(jù)庫250;
之后,配置中心客戶端240從數(shù)據(jù)庫250中取出存儲的注冊信息,探測每一個注冊信息對應的服務是否為活動的服務,并將已失效的實例從數(shù)據(jù)庫250中刪除,以保證數(shù)據(jù)庫250中存儲的注冊信息的實例都是有效的;
之后,版本控制模塊210接收到用戶上傳的新版配置文件;
之后,配置中心界面220接收到用戶上傳的新版配置文件的版本信息;
之后,配置中心界面220可以根據(jù)版本信息從版本控制模塊210下載對應版本信息的新版配置文件;
之后,配置中心界面220將下載的新版配置文件上傳至文件存儲監(jiān)控模塊230;
之后,文件存儲監(jiān)控模塊230響應于接收到新版配置文件,向配置中心客戶端240發(fā)送配置文件變更通知;
之后,配置中心客戶端240響應于收到配置文件變更通知,將對應配置文件變更通知的新版文件從文件存儲監(jiān)控模塊230下載到本地。
之后,配置中心客戶端240根據(jù)文件信息在數(shù)據(jù)庫250中查詢與注冊信息對應的服務信息,以確定都有哪些服務希望知道新版配置文件的變化;
之后,配置中心客戶端240通知查詢到的服務以更新服務的配置文件。
本領(lǐng)域技術(shù)人員應當理解,上述用于通知配置文件變更的方法的執(zhí)行步驟僅為本申請的用于通知配置文件變更的方法的一個示意性實施例,并不代表對本申請的限定。例如,配置中心客戶端240可以從數(shù)據(jù)庫250中取出存儲的注冊信息,探測每一個注冊信息對應的服務是否為活動的服務這一步驟,也可以與用戶上傳新版配置文件以及后續(xù)從版本控制模塊210傳送新版配置文件至配置中心客戶端240的諸多步驟并行執(zhí)行或交互執(zhí)行,本申請對此并不限定。
本申請的上述實施例提供的用于通知配置文件變更的方法,通過版本控制模塊可以接收用戶上傳的新版配置文件,并通過配置中心界面接收用戶輸入的新版配置文件的版本信息及路徑,之后通過配置中心界面從版本控制模塊下載對應輸入的版本信息的新版配置文件,之后配置中心界面將下載的新版配置文件上傳至文件存儲監(jiān)控模塊,之后文件存儲監(jiān)控模塊響應于接收到新版配置文件,向配置中心客戶端發(fā)送配置文件變更通知,最后由配置中心客戶端從數(shù)據(jù)庫中找出活動的服務信息并進行通知,從而可以實現(xiàn)對配置文件的版本控制,在配制文件更新時跨平臺跨語言通知注冊的服務,采用定期的探測活動服務的機制保證了有效的注冊服務信息,從而使得被通知的服務可以在不重啟服務的情況下調(diào)用新的配置文件,調(diào)用配置文件及時且調(diào)用配置文件的步驟簡單。
繼續(xù)參見圖3,圖3是根據(jù)本申請用于檢測服務器故障的裝置的一個實施例的結(jié)構(gòu)示意圖。
如圖3所示,該用于檢測服務器故障的裝置300包括:接收模塊310、監(jiān)控模塊320、探測模塊330和通知模塊340。
其中,接收模塊310,配置用于接收服務的注冊信息,所述注冊信息包括服務信息及服務關(guān)注的配置文件;監(jiān)控模塊320,配置用于監(jiān)控所述配置文件是否變更;探測模塊330,配置用于間隔預定時長探測所述服務是否為活動的服務;通知模塊340,配置用于響應于所述配置文件變更,通知活動的服務。
在本實施例的一些可選實現(xiàn)方式中,監(jiān)控模塊320包括:監(jiān)控條件子模塊321,用于監(jiān)控是否接收到配置文件的更新版本以及更新版本的版本信息;確定變更子模塊322,用于響應于接收到配置文件的更新版本以及更新版本的版本信息,確定配置文件變更。
在本實施例的一些可選實現(xiàn)方式中,裝置還包括:存儲模塊350,用于將注冊信息存儲至數(shù)據(jù)庫;刪除模塊360,用于響應于服務為不活動的服務,刪除數(shù)據(jù)庫中服務的注冊信息;以及通知模塊包括:變更通知子模塊341,用于響應于配置文件變更,根據(jù)數(shù)據(jù)庫中的注冊信息通知活動的服務。
在本實施例的一些可選實現(xiàn)方式中,監(jiān)控條件子模塊進一步用于:監(jiān)控版本控制模塊是否接收到配置文件的更新版本;以及監(jiān)控配置中心界面是否接收到更新版本的版本信息。
在本實施例的一些可選實現(xiàn)方式中,確定變更子模塊進一步用于:配置中心界面從版本控制模塊下載配置文件的更新版本;配置中心界面將配置文件的更新版本上傳至文件存儲監(jiān)控模塊;文件存儲監(jiān)控模塊響應于接收到配置文件的更新版本,確定配置文件變更。
在本實施例的一些可選實現(xiàn)方式中,變更通知子模塊進一步用于:文件存儲監(jiān)控模塊響應于配置文件變更,向配置中心客戶端發(fā)送配置文件變更通知;配置中心客戶端響應于接收配置文件變更通知,從文件存儲監(jiān)控模塊下載配置文件的更新版本,并從數(shù)據(jù)庫中查找對應配置文件的注冊信息,根據(jù)注冊信息通知活動的服務。
應當理解,裝置300中記載的諸模塊與參考圖1、圖2描述的方法中的各個步驟相對應。由此,上文針對用于通知配置文件變更的方法描述的操作和特征同樣適用于裝置300及其中包含的模塊,在此不再贅述。裝置300中的相應模塊可以與終端設備和/或服務器中的模塊相互配合以實現(xiàn)本申請實施例的方案。
附圖中的流程圖和框圖,圖示了按照本申請各種實施例的系統(tǒng)、方法和計算機程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段、或代碼的一部分,所述模塊、程序段、或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應當注意,在有些作為替換的實現(xiàn)中,方框中所標注的功能也可以以不同于附圖中所標注的順序發(fā)生。例如,兩個接連地表示的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機指令的組合來實現(xiàn)。
描述于本申請實施例中所涉及到的模塊可以通過軟件的方式實現(xiàn),也可以通過硬件的方式來實現(xiàn)。所描述的模塊也可以設置在處理器中,例如,可以描述為:一種處理器包括:接收模塊、監(jiān)控模塊、探測模塊和通知模塊。其中,這些模塊的名稱在某種情況下并不構(gòu)成對該模塊本身的限定,例如,接收模塊還可以被描述為“接收服務的注冊信息,所述注冊信息包括服務信息及服務關(guān)注的配置文件的模塊”。
作為另一方面,本申請還提供了一種非易失性計算機存儲介質(zhì),該非易失性計算機存儲介質(zhì)可以是上述實施例中所述裝置中所包含的非易失性計算機存儲介質(zhì);也可以是單獨存在,未裝配入終端中的非易失性計算機存儲介質(zhì)。上述非易失性計算機存儲介質(zhì)存儲有一個或者多個程序,當所述一個或者多個程序被一個設備執(zhí)行時,使得所述設備:接收服務的注冊信息,注冊信息包括服務信息及服務關(guān)注的配置文件;監(jiān)控配置文件是否變更;間隔預定時長探測服務是否為活動的服務;響應于配置文件變更,通知活動的服務。
以上描述僅為本申請的較佳實施例以及對所運用技術(shù)原理的說明。本領(lǐng)域技術(shù)人員應當理解,本申請中所涉及的發(fā)明范圍,并不限于上述技術(shù)特征的特定組合而成的技術(shù)方案,同時也應涵蓋在不脫離所述發(fā)明構(gòu)思的情況下,由上述技術(shù)特征或其等同特征進行任意組合而形成的其它技術(shù)方案。例如上述特征與本申請中公開的(但不限于)具有類似功能的技術(shù)特征進行互相替換而形成的技術(shù)方案。