欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

對(duì)服務(wù)器集群進(jìn)行配置的方法及配置中心服務(wù)器的制造方法

文檔序號(hào):6500941閱讀:149來(lái)源:國(guó)知局
對(duì)服務(wù)器集群進(jìn)行配置的方法及配置中心服務(wù)器的制造方法
【專利摘要】本發(fā)明公開(kāi)了對(duì)服務(wù)器集群進(jìn)行配置的方法及配置中心服務(wù)器,其中,該方法包括:判斷信號(hào)處理函數(shù)是否為預(yù)設(shè)退出值,如果是,則退出;否則:確定接收到來(lái)自待配置服務(wù)器的配置請(qǐng)求;從共享內(nèi)存獲取寫鎖,從數(shù)據(jù)庫(kù)獲取配置信息,寫入共享內(nèi)存中,釋放寫鎖;若在獲取寫鎖與釋放寫鎖之間接收退出信號(hào),則將信號(hào)處理函數(shù)設(shè)置為預(yù)設(shè)退出值;從共享內(nèi)存獲取讀鎖,從共享內(nèi)存中讀取配置信息,下發(fā)讀取的配置信息,釋放讀鎖,返回執(zhí)行所述判斷信號(hào)處理函數(shù)是否為預(yù)設(shè)退出值的步驟;若在獲取讀鎖與釋放讀鎖之間接收退出信號(hào),則將信號(hào)處理函數(shù)設(shè)置為預(yù)設(shè)退出值。本發(fā)明方案能夠避免異常退出而導(dǎo)致死鎖,實(shí)現(xiàn)將配置信息成功下發(fā)給待配置服務(wù)器。
【專利說(shuō)明】對(duì)服務(wù)器集群進(jìn)行配置的方法及配置中心服務(wù)器

【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及服務(wù)器配置技術(shù),尤其涉及對(duì)服務(wù)器集群進(jìn)行配置的方法及配置中心 服務(wù)器。

【背景技術(shù)】
[0002] 目前,隨著互聯(lián)網(wǎng)業(yè)務(wù)的普及,用戶量極大增加;針對(duì)某項(xiàng)業(yè)務(wù),單臺(tái)服務(wù)器已經(jīng) 遠(yuǎn)遠(yuǎn)不能提供服務(wù),基于此,大規(guī)模的服務(wù)器集群應(yīng)運(yùn)而生。服務(wù)器集群指互聯(lián)網(wǎng)業(yè)務(wù)中, 協(xié)作完成一個(gè)或者多個(gè)特定功能的一批服務(wù)器。對(duì)服務(wù)器集群的所有服務(wù)器的配置由配置 系統(tǒng)完成,配置系統(tǒng)的配置中心服務(wù)器從數(shù)據(jù)庫(kù)中讀取配置信息,下發(fā)給服務(wù)器。
[0003] 現(xiàn)有技術(shù)中對(duì)服務(wù)器集群進(jìn)行配置的方案包括:配置中心服務(wù)器接收來(lái)自待配置 服務(wù)器的配置請(qǐng)求后,從本地共享內(nèi)存獲取寫鎖,從配置中心的數(shù)據(jù)庫(kù)獲取配置信息寫入 共享內(nèi)存中,釋放寫鎖;獲取讀鎖,從本地共享內(nèi)存中讀取配置信息,將讀取的配置信息發(fā) 送給待配置服務(wù)器,釋放讀鎖。
[0004] 寫鎖和讀鎖都存儲(chǔ)在配置中心服務(wù)器的共享內(nèi)存中。讀鎖和寫鎖用于linux進(jìn)程 間的通信,讀鎖也叫做共享鎖,寫鎖也叫做獨(dú)占鎖;讀鎖和寫鎖常合稱為讀寫鎖,當(dāng)讀寫鎖 以讀模式鎖住時(shí),是以共享模式鎖住的,當(dāng)讀寫鎖以寫模式鎖住時(shí),是以獨(dú)占模式鎖住的。 也即是,多個(gè)進(jìn)程或線程,可以同時(shí)處于讀模式下的讀寫鎖,而當(dāng)處于寫模式下的讀寫鎖 時(shí),只有一個(gè)進(jìn)程是獨(dú)占的。
[0005] 上述流程中,寫鎖和釋放寫鎖之間,以及讀鎖和釋放讀鎖之間的處理時(shí)間較長(zhǎng),也 就是寫入數(shù)據(jù)和讀取數(shù)據(jù)需要較長(zhǎng)的時(shí)間。一旦在寫鎖和釋放寫鎖之間出現(xiàn)異常,接收到 退出信號(hào),進(jìn)程將退出,將來(lái)不及釋放共享內(nèi)存中保存的寫鎖;如果后續(xù)配置中心服務(wù)器接 收到來(lái)自待配置服務(wù)器的配置請(qǐng)求,將導(dǎo)致死鎖,從數(shù)據(jù)庫(kù)獲取配置信息后將無(wú)法寫入共 享內(nèi)存,后續(xù)也就無(wú)法從共享內(nèi)存中讀取配置信息并下發(fā)給待配置服務(wù)器。類似地,一旦在 讀鎖和釋放讀鎖之間出現(xiàn)異常,進(jìn)程將退出,將來(lái)不及釋放共享內(nèi)存中保存的讀鎖;如果后 續(xù)配置中心服務(wù)器接收到來(lái)自待配置服務(wù)器的配置請(qǐng)求,卻沒(méi)有可用的讀鎖,將導(dǎo)致死鎖, 無(wú)法將配置信息下發(fā)給待配置服務(wù)器。
[0006] 綜上,現(xiàn)有對(duì)服務(wù)器集群進(jìn)行配置的方案存在以下缺陷:出現(xiàn)異常退出時(shí),將導(dǎo)致 死鎖,無(wú)法將配置信息成功下發(fā)給待配置服務(wù)器。


【發(fā)明內(nèi)容】

[0007] 本發(fā)明提供了一種對(duì)服務(wù)器集群進(jìn)行配置的方法,該方法能夠避免異常退出而導(dǎo) 致死鎖,實(shí)現(xiàn)將配置信息成功下發(fā)給待配置服務(wù)器。
[0008] 本發(fā)明提供了一種對(duì)服務(wù)器集群進(jìn)行配置的配置中心服務(wù)器,該配置中心服務(wù)器 能夠避免異常退出而導(dǎo)致死鎖,實(shí)現(xiàn)將配置信息成功下發(fā)給待配置服務(wù)器。
[0009] -種對(duì)服務(wù)器集群進(jìn)行配置的方法,設(shè)置信號(hào)處理函數(shù),該方法包括:
[0010] 判斷信號(hào)處理函數(shù)是否為預(yù)設(shè)退出值,如果是,則退出,結(jié)束流程;否則: toon] 確定接收到來(lái)自待配置服務(wù)器的配置請(qǐng)求;
[0012] 從共享內(nèi)存獲取寫鎖,從數(shù)據(jù)庫(kù)獲取配置信息,寫入共享內(nèi)存中,釋放寫鎖;若在 獲取寫鎖與釋放寫鎖之間接收退出信號(hào),則將信號(hào)處理函數(shù)設(shè)置為預(yù)設(shè)退出值;
[0013] 從共享內(nèi)存獲取讀鎖,從共享內(nèi)存中讀取配置信息,將讀取的配置信息發(fā)送給待 配置服務(wù)器,釋放讀鎖,返回執(zhí)行所述判斷信號(hào)處理函數(shù)是否為預(yù)設(shè)退出值的步驟;若在獲 取讀鎖與釋放讀鎖之間接收退出信號(hào),則將信號(hào)處理函數(shù)設(shè)置為預(yù)設(shè)退出值。
[0014] 一種對(duì)服務(wù)器集群進(jìn)行配置的配置中心服務(wù)器,該配置中心服務(wù)器包括設(shè)置單 元、函數(shù)判斷單元、配置請(qǐng)求處理單元、寫入處理單元和讀取處理單元;
[0015] 所述設(shè)置單元,設(shè)置信號(hào)處理函數(shù),并接收來(lái)自所述寫入處理單元和所述讀取處 理單元的設(shè)置指令,將信號(hào)處理函數(shù)設(shè)置為預(yù)設(shè)退出值;
[0016] 所述函數(shù)判斷單元,判斷信號(hào)處理函數(shù)是否為預(yù)設(shè)退出值,如果是,則不向所述配 置請(qǐng)求處理單元發(fā)送啟動(dòng)指令;否則,向所述配置請(qǐng)求處理單元發(fā)送啟動(dòng)指令;
[0017] 所述配置請(qǐng)求處理單元,接收來(lái)自所述函數(shù)判斷單元的啟動(dòng)指令,確定接收到來(lái) 自待配置服務(wù)器的配置請(qǐng)求,向所述寫入處理單元發(fā)送寫入指令;
[0018] 所述寫入處理單元,接收來(lái)自所述配置請(qǐng)求處理單元的寫入指令后,從本地共享 內(nèi)存獲取寫鎖,從數(shù)據(jù)庫(kù)獲取配置信息,寫入共享內(nèi)存中,釋放寫鎖,向所述讀取處理單元 發(fā)送讀取指令;若在獲取寫鎖與釋放寫鎖之間接收退出信號(hào),則向所述設(shè)置單元發(fā)送設(shè)置 指令;
[0019] 所述讀取處理單元,接收來(lái)自所述寫入處理單元的讀取指令,從共享內(nèi)存獲取讀 鎖,從共享內(nèi)存中讀取配置信息,將讀取的配置信息發(fā)送給待配置服務(wù)器,釋放讀鎖;若在 獲取讀鎖與釋放讀鎖之間接收退出信號(hào),則向所述設(shè)置單元發(fā)送設(shè)置指令。
[0020] 從上述方案可以看出,本發(fā)明中,先對(duì)信號(hào)處理函數(shù)進(jìn)行判斷,如果信號(hào)處理函數(shù) 不為預(yù)設(shè)退出值,且接收到來(lái)自待配置服務(wù)器的配置請(qǐng)求,則從共享內(nèi)存獲取寫鎖,從數(shù)據(jù) 庫(kù)獲取配置信息,寫入共享內(nèi)存中,釋放寫鎖;若在獲取寫鎖與釋放寫鎖之間接收退出信 號(hào),則將信號(hào)處理函數(shù)設(shè)置為預(yù)設(shè)退出值;然后,從共享內(nèi)存獲取讀鎖,從共享內(nèi)存中讀取 配置信息,將讀取的配置信息發(fā)送給待配置服務(wù)器,釋放讀鎖,返回執(zhí)行所述判斷信號(hào)處理 函數(shù)是否為預(yù)設(shè)退出值的步驟;若在獲取讀鎖與釋放讀鎖之間接收退出信號(hào),則將信號(hào)處 理函數(shù)設(shè)置為預(yù)設(shè)退出值。對(duì)于在寫鎖和釋放寫鎖之間,以及讀鎖和釋放讀鎖之間接收到 退出信號(hào)的情況,本發(fā)明結(jié)合信號(hào)處理函數(shù),在釋放完寫鎖和讀鎖之后才執(zhí)行退出信號(hào),避 免了因異常退出而導(dǎo)致的死鎖,實(shí)現(xiàn)了將配置信息成功下發(fā)給待配置服務(wù)器。

【專利附圖】

【附圖說(shuō)明】
[0021] 圖1為本發(fā)明對(duì)服務(wù)器集群進(jìn)行配置的方法示意性流程圖;
[0022] 圖2為本發(fā)明對(duì)服務(wù)器集群進(jìn)行配置的方法流程圖實(shí)例;
[0023] 圖3為本發(fā)明對(duì)服務(wù)器集群進(jìn)行配置的配置中心服務(wù)器的結(jié)構(gòu)示意圖。

【具體實(shí)施方式】
[0024] 為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下面結(jié)合實(shí)施例和附圖,對(duì)本 發(fā)明進(jìn)一步詳細(xì)說(shuō)明。
[0025] 對(duì)于在寫鎖和釋放寫鎖之間,以及讀鎖和釋放讀鎖之間接收到退出信號(hào)的情況, 本發(fā)明結(jié)合信號(hào)處理函數(shù),在釋放完寫鎖和讀鎖之后才執(zhí)行退出信號(hào),避免了因異常退出 而導(dǎo)致的死鎖。參見(jiàn)圖1,為本發(fā)明對(duì)服務(wù)器集群進(jìn)行配置的方法示意性流程圖,本發(fā)明方 法預(yù)先設(shè)置信號(hào)處理函數(shù),初始時(shí),可將信號(hào)處理函數(shù)設(shè)置默認(rèn)值,例如為〇 ;后續(xù)流程中, 如果在獲取寫鎖與釋放寫鎖之間,或者在獲取讀鎖與釋放讀鎖之間接收退出信號(hào),則將信 號(hào)處理函數(shù)設(shè)置為預(yù)設(shè)退出值,例如為1。
[0026] 圖1的流程包括以下步驟:
[0027] 步驟101,判斷信號(hào)處理函數(shù)是否為預(yù)設(shè)退出值,如果是,則退出,結(jié)束流程;否 貝1J,執(zhí)行步驟102。
[0028] 對(duì)信號(hào)處理函數(shù)的判斷可隨機(jī)執(zhí)行,也可周期性地執(zhí)行。
[0029] 步驟102,確定接收到來(lái)自待配置服務(wù)器的配置請(qǐng)求。
[0030] 判斷出信號(hào)函數(shù)不為預(yù)設(shè)退出值時(shí),如果確定出沒(méi)有接收到來(lái)自待配置服務(wù)器的 配置請(qǐng)求,可返回執(zhí)行步驟101,直到接收到來(lái)自待配置服務(wù)器的配置請(qǐng)求。
[0031] 步驟103,從共享內(nèi)存獲取寫鎖,從數(shù)據(jù)庫(kù)獲取配置信息,寫入共享內(nèi)存中,釋放寫 鎖;若在獲取寫鎖與釋放寫鎖之間接收退出信號(hào),則將信號(hào)處理函數(shù)設(shè)置為預(yù)設(shè)退出值。
[0032] 對(duì)于配置信息沒(méi)有更新,仍為舊版的情況,無(wú)需向本地的共享內(nèi)存重新寫入配置 信息,可直接執(zhí)行步驟104。為了簡(jiǎn)化流程,本步驟之前,還可具體包括:判斷配置信息是否 有更新,如果有,則執(zhí)行步驟103 ;否則,執(zhí)行步驟104。共享內(nèi)存中配置信息是否有更新可 通過(guò)標(biāo)注實(shí)現(xiàn),具體如:如果配置中心的數(shù)據(jù)庫(kù)存儲(chǔ)的配置信息進(jìn)行了更新,則向配置中心 服務(wù)器發(fā)送帶有最新版本號(hào)的更新指示,配置中心服務(wù)器接收更新指示后確定配置信息有 更新。
[0033] 步驟104,從共享內(nèi)存獲取讀鎖,從共享內(nèi)存中讀取配置信息,將讀取的配置信息 發(fā)送給待配置服務(wù)器,釋放讀鎖,返回執(zhí)行步驟101 ;若在獲取讀鎖與釋放讀鎖之間接收退 出信號(hào),則將信號(hào)處理函數(shù)設(shè)置為預(yù)設(shè)退出值。
[0034] 由于服務(wù)器集群中包含較多服務(wù)器,且配置信息容量大,每次為待配置服務(wù)器下 發(fā)配置信息將占用加大的流量資源。本發(fā)明中,為了改進(jìn)該缺陷,可在步驟102的配置請(qǐng)求 中攜帶待配置服務(wù)器當(dāng)前使用的配置信息的版本號(hào),配置中心服務(wù)器接收配置請(qǐng)求后,進(jìn) 行版本號(hào)比較,如果版本號(hào)不相同,才進(jìn)行配置信息的下發(fā);具體地,可采用下述兩種實(shí)現(xiàn) 方式:
[0035] 方式一,圖1流程的步驟104之前,該方法還包括:判斷配置請(qǐng)求包含的版本號(hào)與 共享內(nèi)存中配置信息的版本號(hào)是否相同,如果是,則向待配置服務(wù)器反饋無(wú)需更新的響應(yīng) 消息,否則,執(zhí)行步驟104。
[0036] 方式二,步驟104獲取讀鎖之后,該方法還包括:判斷配置請(qǐng)求包含的版本號(hào)與共 享內(nèi)存中配置信息的版本號(hào)是否相同,如果是,則向待配置服務(wù)器反饋無(wú)需更新的響應(yīng)消 息,釋放讀鎖,否則,執(zhí)行步驟104中所述從本地共享內(nèi)存中獲取配置信息的步驟。
[0037] 采用本發(fā)明方案,對(duì)于在寫鎖和釋放寫鎖之間,以及讀鎖和釋放讀鎖之間接收到 退出信號(hào)的情況,本發(fā)明結(jié)合信號(hào)處理函數(shù),在釋放完寫鎖和讀鎖之后才執(zhí)行退出信號(hào),避 免了因異常退出而導(dǎo)致的死鎖,實(shí)現(xiàn)了將配置信息成功下發(fā)給待配置服務(wù)器。
[0038] 下面通過(guò)圖2,對(duì)本發(fā)明為服務(wù)器集群進(jìn)行配置的方法進(jìn)行實(shí)例說(shuō)明,該實(shí)例預(yù)先 設(shè)置信號(hào)處理函數(shù),圖2的流程包括以下步驟:
[0039] 步驟201,判斷信號(hào)處理函數(shù)是否為預(yù)設(shè)退出值,如果是,則退出,結(jié)束流程;否則 執(zhí)行步驟202。
[0040] 將信號(hào)處理函數(shù)的默認(rèn)值設(shè)置為0,預(yù)設(shè)退出值設(shè)置為1。
[0041] 信號(hào)處理函數(shù)的設(shè)置與關(guān)于信號(hào)處理函數(shù)是否為預(yù)設(shè)退出值的判斷,兩者是異步 的。當(dāng)退出信號(hào)發(fā)生時(shí),會(huì)立即對(duì)信號(hào)處理函數(shù)進(jìn)行設(shè)置;而對(duì)信號(hào)處理函數(shù)是否為預(yù)設(shè)退 出值的判斷,可周期性地或隨機(jī)地執(zhí)行。具體實(shí)現(xiàn)時(shí),信號(hào)處理函數(shù)(g_iShutDown )可采用 下述配置方式:
[0042] int g_iShutDown = 0; --------將 g_iShutDown 設(shè)置為 0 void SetShutDownFlag(int signo) { if(signo == SIGQUIT) { printf("catch SIGQUIT!\n〃); g_iShutDown = 1; ]--如果捕獲到設(shè)置指令SIGQUIT,則將gJShutDown設(shè)置為1 if(signo == SIGUSR1) { printf(〃catch SIGUSR1!\n〃); g-iShutDown = 1; }--如i捕獲到設(shè)置指令SIGQUIT1,則將gJShutDown設(shè)置為1 }
[0043] 其中,SIGQUIT在為寫鎖與釋放寫鎖之間接收到退出信號(hào)時(shí)的設(shè)置指令,SIGQUIT1 為在讀鎖與釋放讀鎖之間接收到退出信號(hào)時(shí)的設(shè)置指令。
[0044] 步驟202,判斷是否接收到來(lái)自待配置服務(wù)器的配置請(qǐng)求,如果是,則執(zhí)行步驟 203 ;否則,返回執(zhí)行步驟201。
[0045] 配置請(qǐng)求中包含版本號(hào),本步驟中,如果沒(méi)有接收到配置請(qǐng)求,則繼續(xù)對(duì)信號(hào)處理 函數(shù)進(jìn)行判斷。
[0046] 步驟203,判斷配置信息是否有更新,如果是,則執(zhí)行步驟204,否則執(zhí)行步驟208。
[0047] 配置信息由工作人員錄入配置中心的數(shù)據(jù)庫(kù)中,之后工作人員可對(duì)數(shù)據(jù)庫(kù)中的配 置信息進(jìn)行更新,更新后,數(shù)據(jù)庫(kù)向配置中心服務(wù)器發(fā)送包含最新版本號(hào)的更新指示,配置 中心服務(wù)器將更新項(xiàng)設(shè)置為已更新。本步驟中,如果配置中心服務(wù)器獲知更新項(xiàng)設(shè)置為已 更新,則確定出配置信息有更新。
[0048] 步驟204,從共享內(nèi)存中獲取寫鎖。
[0049] 寫鎖和讀鎖都保存在配置中心服務(wù)器的共享內(nèi)存中。
[0050] 寫鎖和讀鎖都存儲(chǔ)在配置中心服務(wù)器的共享內(nèi)存中。讀鎖和寫鎖用于linux進(jìn)程 間的通信,讀鎖也叫做共享鎖,寫鎖也叫做獨(dú)占鎖;讀鎖和寫鎖常合稱為讀寫鎖,當(dāng)讀寫鎖 以讀模式鎖住時(shí),是以共享模式鎖住的,當(dāng)讀寫鎖以寫模式鎖住時(shí),是以獨(dú)占模式鎖住的。 也即是,多個(gè)進(jìn)程或線程,可以同時(shí)處于讀模式下的讀寫鎖,而當(dāng)處于寫模式下的讀寫鎖 時(shí),只有一個(gè)進(jìn)程是獨(dú)占的。
[0051] 步驟205,從數(shù)據(jù)庫(kù)中獲取配置信息,將獲取的配置信息寫入共享內(nèi)存。
[0052] 寫鎖進(jìn)行寫入的過(guò)程中,不能進(jìn)行讀取,避免讀取的數(shù)據(jù)不完整。將獲取的配置信 息寫入共享內(nèi)存,將覆蓋共享內(nèi)存中之前存儲(chǔ)的配置信息,以進(jìn)行更新。
[0053] 步驟206,接收退出信號(hào),將信號(hào)處理函數(shù)設(shè)置為預(yù)設(shè)退出值。
[0054] 步驟207,釋放寫鎖。
[0055] 步驟208,從共享內(nèi)存中獲取讀鎖。
[0056] 具體實(shí)踐時(shí),可采用Fork子進(jìn)程實(shí)現(xiàn)讀鎖、版本號(hào)判斷、數(shù)據(jù)讀取、數(shù)據(jù)下發(fā)以及 釋放讀鎖的步驟。
[0057] 步驟209,判斷配置請(qǐng)求包含的版本號(hào)與共享內(nèi)存中配置信息的版本號(hào)是否相同, 如果是,則向待配置服務(wù)器反饋無(wú)需更新的響應(yīng)消息,否則,從共享內(nèi)存中讀取配置信息, 將讀取的配置信息發(fā)送給待配置服務(wù)器。
[0058] 步驟210,釋放讀鎖,返回執(zhí)行步驟201。
[0059] 執(zhí)行步驟201時(shí),由于步驟206中已經(jīng)信號(hào)處理函數(shù)設(shè)置為預(yù)設(shè)退出值,則執(zhí)行退 出,結(jié)束流程。
[0060] 采用上述流程方案,如果在步驟204寫鎖和步驟207釋放寫鎖之間,步驟208讀鎖 和步驟210釋放讀鎖之間接收到退出信號(hào),將暫時(shí)不對(duì)退出信號(hào)進(jìn)行響應(yīng);將繼續(xù)執(zhí)行后 續(xù)的步驟,直到釋放完寫鎖和讀鎖之后,再執(zhí)行退出。這樣,對(duì)于在寫鎖和釋放寫鎖之間, 以及讀鎖和釋放讀鎖之間接收到退出信號(hào)的情況,可在釋放完寫鎖和讀鎖之后進(jìn)行退出, 避免了現(xiàn)有技術(shù)中在這種情況下的死鎖;并且,通過(guò)對(duì)版本號(hào)進(jìn)行比較,減少了下發(fā)的數(shù)據(jù) 量,節(jié)省了資源,簡(jiǎn)化了流程。
[0061] 配置中心包括配置中心服務(wù)器和數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)用于存儲(chǔ)配置信息,在需要時(shí),配 置中心服務(wù)器可從數(shù)據(jù)庫(kù)獲取配置信息。參見(jiàn)圖3,為本發(fā)明配置中心服務(wù)器的結(jié)構(gòu)示意 圖,其包括設(shè)置單元、函數(shù)判斷單元、配置請(qǐng)求處理單元、寫入處理單元和讀取處理單元; [0062] 所述設(shè)置單元,設(shè)置信號(hào)處理函數(shù),并接收來(lái)自所述寫入處理單元和所述讀取處 理單元的設(shè)置指令,將信號(hào)處理函數(shù)設(shè)置為預(yù)設(shè)退出值;
[0063] 所述函數(shù)判斷單元,判斷信號(hào)處理函數(shù)是否為預(yù)設(shè)退出值,如果是,則不向所述配 置請(qǐng)求處理單元發(fā)送啟動(dòng)指令;否則,向所述配置請(qǐng)求處理單元發(fā)送啟動(dòng)指令;
[0064] 所述配置請(qǐng)求處理單元,接收來(lái)自所述函數(shù)判斷單元的啟動(dòng)指令,確定接收到來(lái) 自待配置服務(wù)器的配置請(qǐng)求,向所述寫入處理單元發(fā)送寫入指令;
[0065] 所述寫入處理單元,接收來(lái)自所述配置請(qǐng)求處理單元的寫入指令后,從本地共享 內(nèi)存獲取寫鎖,從數(shù)據(jù)庫(kù)獲取配置信息,寫入共享內(nèi)存中,釋放寫鎖,向所述讀取處理單元 發(fā)送讀取指令;若在獲取寫鎖與釋放寫鎖之間接收退出信號(hào),則向所述設(shè)置單元發(fā)送設(shè)置 指令;
[0066] 所述讀取處理單元,接收來(lái)自所述寫入處理單元的讀取指令,從共享內(nèi)存獲取讀 鎖,從共享內(nèi)存中讀取配置信息,將讀取的配置信息發(fā)送給待配置服務(wù)器,釋放讀鎖;若在 獲取讀鎖與釋放讀鎖之間接收退出信號(hào),則向所述設(shè)置單元發(fā)送設(shè)置指令。
[0067] 較佳地,所述配置請(qǐng)求包含版本號(hào),所述讀取處理單元包括第一版本號(hào)判斷子單 元和第一讀取子單元;
[0068] 所述第一版本號(hào)判斷子單元,接收來(lái)自所述寫入處理單元的讀取指令,判斷來(lái)自 待配置服務(wù)器的配置請(qǐng)求包含的版本號(hào)與共享內(nèi)存中配置信息的版本號(hào)是否相同,如果 是,則向待配置服務(wù)器反饋無(wú)需更新的響應(yīng)消息;否則向所述第一讀取子單元發(fā)送啟動(dòng)指 令;
[0069] 所述第一讀取子單元,接收來(lái)自所述版本號(hào)判斷子單元的啟動(dòng)指令,從共享內(nèi)存 獲取讀鎖,從共享內(nèi)存中讀取配置信息,將讀取的配置信息發(fā)送給待配置服務(wù)器,釋放讀 鎖;若在獲取讀鎖與釋放讀鎖之間接收退出信號(hào),則向所述設(shè)置單元發(fā)送設(shè)置指令。
[0070] 較佳地,所述配置請(qǐng)求包含版本號(hào),所述讀取處理單元包括第二版本號(hào)判斷子單 元和第二讀取子單元;
[0071] 所述第二讀取子單元,接收來(lái)自所述寫入處理單元的讀取指令,從共享內(nèi)存獲取 讀鎖,向所述第二版本號(hào)判斷子單元發(fā)送版本號(hào)判斷指令;接收來(lái)自所述第二版本號(hào)判斷 子單元的配置信息讀取指令,從共享內(nèi)存中讀取配置信息,將讀取的配置信息發(fā)送給待配 置服務(wù)器,釋放讀鎖;若在獲取讀鎖與釋放讀鎖之間接收退出信號(hào),則向所述設(shè)置單元發(fā)送 設(shè)置指令;
[0072] 所述第二版本號(hào)判斷子單元,接收來(lái)自所述第二讀取子單元的版本號(hào)判斷指令, 判斷來(lái)自待配置服務(wù)器的配置請(qǐng)求包含的版本號(hào)與共享內(nèi)存中配置信息的版本號(hào)是否相 同,如果是,則向待配置服務(wù)器反饋無(wú)需更新的響應(yīng)消息,釋放讀鎖;否則向所述第二讀取 子單元發(fā)送配置信息讀取指令。
[0073] 較佳地,所述寫入處理單元包括更新判斷子單元和寫入子單元;
[0074] 所述更新判斷子單元,接收來(lái)自所述配置請(qǐng)求處理單元的寫入指令后,判斷配置 信息是否有更新,如果有,則向所述寫入子單元發(fā)送啟動(dòng)指令,否則,向所述讀取處理單元 發(fā)送讀取指令;
[0075] 所述寫入子單元,接收來(lái)自所述更新判斷子單元的啟動(dòng)指令,從共享內(nèi)存獲取寫 鎖,從數(shù)據(jù)庫(kù)獲取配置信息,寫入共享內(nèi)存中,釋放寫鎖,向所述讀取處理單元發(fā)送讀取指 令;若在獲取寫鎖與釋放寫鎖之間接收退出信號(hào),則向所述設(shè)置單元發(fā)送設(shè)置指令。
[0076] 以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精 神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
【權(quán)利要求】
1. 一種對(duì)服務(wù)器集群進(jìn)行配置的方法,其特征在于,設(shè)置信號(hào)處理函數(shù),該方法包括: 判斷信號(hào)處理函數(shù)是否為預(yù)設(shè)退出值,如果是,則退出,結(jié)束流程;否則: 確定接收到來(lái)自待配置服務(wù)器的配置請(qǐng)求; 從共享內(nèi)存獲取寫鎖,從數(shù)據(jù)庫(kù)獲取配置信息,寫入共享內(nèi)存中,釋放寫鎖;若在獲取 寫鎖與釋放寫鎖之間接收退出信號(hào),則將信號(hào)處理函數(shù)設(shè)置為預(yù)設(shè)退出值; 從共享內(nèi)存獲取讀鎖,從共享內(nèi)存中讀取配置信息,將讀取的配置信息發(fā)送給待配置 服務(wù)器,釋放讀鎖,返回執(zhí)行所述判斷信號(hào)處理函數(shù)是否為預(yù)設(shè)退出值的步驟;若在獲取讀 鎖與釋放讀鎖之間接收退出信號(hào),則將信號(hào)處理函數(shù)設(shè)置為預(yù)設(shè)退出值。
2. 如權(quán)利要求1所述的方法,其特征在于,所述配置請(qǐng)求包含版本號(hào),所述獲取讀鎖之 前,該方法還包括: 判斷配置請(qǐng)求包含的版本號(hào)與共享內(nèi)存中配置信息的版本號(hào)是否相同,如果是,則向 待配置服務(wù)器反饋無(wú)需更新的響應(yīng)消息,否則,執(zhí)行所述獲取讀鎖的步驟。
3. 如權(quán)利要求1所述的方法,其特征在于,所述配置請(qǐng)求包含版本號(hào),所述獲取讀鎖之 后,該方法還包括: 判斷配置請(qǐng)求包含的版本號(hào)與共享內(nèi)存中配置信息的版本號(hào)是否相同,如果是,則向 待配置服務(wù)器反饋無(wú)需更新的響應(yīng)消息,釋放讀鎖,否則,執(zhí)行所述從本地共享內(nèi)存中獲取 配置信息的步驟。
4. 如權(quán)利要求1所述的方法,其特征在于,所述獲取寫鎖之前,該方法還包括:判斷配 置信息是否有更新,如果有,則執(zhí)行所述獲取寫鎖的步驟;否則,執(zhí)行所述獲取讀鎖的步驟。
5. 如權(quán)利要求1所述的方法,其特征在于,所述判斷信號(hào)處理函數(shù)是否為預(yù)設(shè)退出值 為:周期性地判斷信號(hào)處理函數(shù)是否為預(yù)設(shè)退出值。
6. 如權(quán)利要求1至5中任一項(xiàng)所述的方法,其特征在于,判斷出信號(hào)函數(shù)不為預(yù)設(shè)退出 值時(shí),如果確定出沒(méi)有接收到來(lái)自待配置服務(wù)器的配置請(qǐng)求,則返回執(zhí)行所述判斷信號(hào)函 數(shù)是否為預(yù)設(shè)退出值的步驟。
7. -種對(duì)服務(wù)器集群進(jìn)行配置的配置中心服務(wù)器,其特征在于,該配置中心服務(wù)器包 括設(shè)置單元、函數(shù)判斷單元、配置請(qǐng)求處理單元、寫入處理單元和讀取處理單元; 所述設(shè)置單元,設(shè)置信號(hào)處理函數(shù),并接收來(lái)自所述寫入處理單元和所述讀取處理單 元的設(shè)置指令,將信號(hào)處理函數(shù)設(shè)置為預(yù)設(shè)退出值; 所述函數(shù)判斷單元,判斷信號(hào)處理函數(shù)是否為預(yù)設(shè)退出值,如果是,則不向所述配置請(qǐng) 求處理單元發(fā)送啟動(dòng)指令;否則,向所述配置請(qǐng)求處理單元發(fā)送啟動(dòng)指令; 所述配置請(qǐng)求處理單元,接收來(lái)自所述函數(shù)判斷單元的啟動(dòng)指令,確定接收到來(lái)自待 配置服務(wù)器的配置請(qǐng)求,向所述寫入處理單元發(fā)送寫入指令; 所述寫入處理單元,接收來(lái)自所述配置請(qǐng)求處理單元的寫入指令后,從本地共享內(nèi)存 獲取寫鎖,從數(shù)據(jù)庫(kù)獲取配置信息,寫入共享內(nèi)存中,釋放寫鎖,向所述讀取處理單元發(fā)送 讀取指令;若在獲取寫鎖與釋放寫鎖之間接收退出信號(hào),則向所述設(shè)置單元發(fā)送設(shè)置指 令; 所述讀取處理單元,接收來(lái)自所述寫入處理單元的讀取指令,從共享內(nèi)存獲取讀鎖,從 共享內(nèi)存中讀取配置信息,將讀取的配置信息發(fā)送給待配置服務(wù)器,釋放讀鎖;若在獲取讀 鎖與釋放讀鎖之間接收退出信號(hào),則向所述設(shè)置單元發(fā)送設(shè)置指令。
8. 如權(quán)利要求7所述的配置中心服務(wù)器,其特征在于,所述配置請(qǐng)求包含版本號(hào),所述 讀取處理單元包括第一版本號(hào)判斷子單元和第一讀取子單元; 所述第一版本號(hào)判斷子單元,接收來(lái)自所述寫入處理單元的讀取指令,判斷來(lái)自待配 置服務(wù)器的配置請(qǐng)求包含的版本號(hào)與共享內(nèi)存中配置信息的版本號(hào)是否相同,如果是,則 向待配置服務(wù)器反饋無(wú)需更新的響應(yīng)消息;否則向所述第一讀取子單元發(fā)送啟動(dòng)指令; 所述第一讀取子單元,接收來(lái)自所述版本號(hào)判斷子單元的啟動(dòng)指令,從共享內(nèi)存獲取 讀鎖,從共享內(nèi)存中讀取配置信息,將讀取的配置信息發(fā)送給待配置服務(wù)器,釋放讀鎖;若 在獲取讀鎖與釋放讀鎖之間接收退出信號(hào),則向所述設(shè)置單元發(fā)送設(shè)置指令。
9. 如權(quán)利要求7所述的配置中心服務(wù)器,其特征在于,所述配置請(qǐng)求包含版本號(hào),所述 讀取處理單元包括第二版本號(hào)判斷子單元和第二讀取子單元; 所述第二讀取子單元,接收來(lái)自所述寫入處理單元的讀取指令,從共享內(nèi)存獲取讀鎖, 向所述第二版本號(hào)判斷子單元發(fā)送版本號(hào)判斷指令;接收來(lái)自所述第二版本號(hào)判斷子單元 的配置信息讀取指令,從共享內(nèi)存中讀取配置信息,將讀取的配置信息發(fā)送給待配置服務(wù) 器,釋放讀鎖;若在獲取讀鎖與釋放讀鎖之間接收退出信號(hào),則向所述設(shè)置單元發(fā)送設(shè)置指 令; 所述第二版本號(hào)判斷子單元,接收來(lái)自所述第二讀取子單元的版本號(hào)判斷指令,判斷 來(lái)自待配置服務(wù)器的配置請(qǐng)求包含的版本號(hào)與共享內(nèi)存中配置信息的版本號(hào)是否相同,如 果是,則向待配置服務(wù)器反饋無(wú)需更新的響應(yīng)消息,釋放讀鎖;否則向所述第二讀取子單元 發(fā)送配置信息讀取指令。
10. 如權(quán)利要求7、8或9所述的配置中心服務(wù)器,其特征在于,所述寫入處理單元包括 更新判斷子單元和寫入子單元; 所述更新判斷子單元,接收來(lái)自所述配置請(qǐng)求處理單元的寫入指令后,判斷配置信息 是否有更新,如果有,則向所述寫入子單元發(fā)送啟動(dòng)指令,否則,向所述讀取處理單元發(fā)送 讀取指令; 所述寫入子單元,接收來(lái)自所述更新判斷子單元的啟動(dòng)指令,從共享內(nèi)存獲取寫鎖,從 數(shù)據(jù)庫(kù)獲取配置信息,寫入共享內(nèi)存中,釋放寫鎖,向所述讀取處理單元發(fā)送讀取指令;若 在獲取寫鎖與釋放寫鎖之間接收退出信號(hào),則向所述設(shè)置單元發(fā)送設(shè)置指令。
【文檔編號(hào)】G06F15/177GK104063355SQ201310091366
【公開(kāi)日】2014年9月24日 申請(qǐng)日期:2013年3月21日 優(yōu)先權(quán)日:2013年3月21日
【發(fā)明者】邢玉東 申請(qǐng)人:騰訊科技(北京)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
图片| 庆云县| 柳林县| 伊宁市| 惠来县| 兴宁市| 株洲市| 霍邱县| 荔浦县| 定结县| 长武县| 洛扎县| 安康市| 益阳市| 上高县| 崇明县| 晋城| 新和县| 拜城县| 进贤县| 永昌县| 乌鲁木齐市| 徐汇区| 合作市| 南开区| 兴和县| 陵川县| 舟曲县| 新乡县| 江源县| 沙坪坝区| 盐亭县| 武城县| 沛县| 恩施市| 谢通门县| 兴山县| 丹巴县| 长治市| 客服| 浏阳市|