本發(fā)明涉及互聯(lián)網(wǎng)應(yīng)用技術(shù)領(lǐng)域,特別涉及一種實現(xiàn)業(yè)務(wù)動態(tài)配置的方法和系統(tǒng)。
背景技術(shù):
隨著互聯(lián)網(wǎng)應(yīng)用的迅猛發(fā)展,在后臺服務(wù)端的配合下為客戶端實現(xiàn)了各種業(yè)務(wù),進而通過業(yè)務(wù)邏輯的執(zhí)行而實現(xiàn)各種功能和服務(wù)。
后臺服務(wù)端中業(yè)務(wù)邏輯的執(zhí)行,往往可能出現(xiàn)各種狀況,或者根據(jù)業(yè)務(wù)的運行而存在著各種配置調(diào)整需求,因此,時常需要對后臺服務(wù)器中業(yè)務(wù)的配置進行變更調(diào)整。
為業(yè)務(wù)所實現(xiàn)的配置變更調(diào)整,包括以下三種方式:一是后臺服務(wù)端停機變更配置;二是發(fā)布客戶端補丁包,用戶需要下載客戶端補丁包安裝修復;三是暫停相應(yīng)的業(yè)務(wù)模塊,以對此業(yè)務(wù)模塊進行更新修改。
在為此業(yè)務(wù)而進行的現(xiàn)有實現(xiàn)中,無論采用何種方式,對于用戶而言均是有感知的,并且對于第一種方式而言,由于需要停機而必然產(chǎn)生技術(shù)實現(xiàn)成本,發(fā)布客戶端補丁包的方式,則需要用戶進行額外操作下載,用戶操作成本高且由于用戶操作的介入而使得業(yè)務(wù)是否被成功配置是不可控的;暫停業(yè)務(wù)模塊進行配置更新修改的方式,則會導致相應(yīng)的功能不可用。
因此,無論采用何種方式,都將會存在著業(yè)務(wù)配置的變更成本過高的缺陷。
技術(shù)實現(xiàn)要素:
為了解決業(yè)務(wù)配置的變更調(diào)整中用戶有感知且變更成本過高的技術(shù)問題,本發(fā)明提供了一種實現(xiàn)業(yè)務(wù)動態(tài)配置的方法和系統(tǒng)。
一種實現(xiàn)業(yè)務(wù)動態(tài)配置的方法,所述方法包括:
通過執(zhí)行業(yè)務(wù)邏輯而在客戶端實現(xiàn)服務(wù)時,根據(jù)業(yè)務(wù)邏輯中配置項的更新指令,獲得執(zhí)行業(yè)務(wù)配置操作的配置指令和對應(yīng)于所述業(yè)務(wù)配置操作的配置信息;
通過所述配置信息和配置指令為所述業(yè)務(wù)執(zhí)行所述業(yè)務(wù)配置操作,向業(yè)務(wù)服務(wù)器再次執(zhí)行的業(yè)務(wù)邏輯預配置對應(yīng)于配置項的配置信息,所述業(yè)務(wù)服務(wù)器為在客戶端實現(xiàn)服務(wù)而執(zhí)行的業(yè)務(wù)邏輯被保留配置;
所述業(yè)務(wù)服務(wù)器為請求所述服務(wù)的其它客戶端在執(zhí)行的所述業(yè)務(wù)邏輯中啟用配置項所預配置的配置信息。
一種實現(xiàn)業(yè)務(wù)動態(tài)配置的系統(tǒng),所述系統(tǒng)包括:
更新指令處理模塊,用于通過執(zhí)行業(yè)務(wù)邏輯而在客戶端實現(xiàn)服務(wù)時,根據(jù)業(yè)務(wù)邏輯中配置項的更新指令,獲得執(zhí)行業(yè)務(wù)配置操作的配置指令和對應(yīng)于所述業(yè)務(wù)配置操作的配置信息;
預配置模塊,用于通過所述配置信息和配置指令為所述業(yè)務(wù)執(zhí)行所述業(yè)務(wù)配置操作,向業(yè)務(wù)服務(wù)器再次執(zhí)行的業(yè)務(wù)邏輯預配置對應(yīng)于配置項的配置信息,所述業(yè)務(wù)服務(wù)器為在客戶端實現(xiàn)服務(wù)而執(zhí)行的業(yè)務(wù)邏輯被保留配置;
預配置啟用模塊,用于所述業(yè)務(wù)服務(wù)器為請求所述服務(wù)的其它客戶端在執(zhí)行的所述業(yè)務(wù)邏輯中啟用配置項所預配置的配置信息。
本發(fā)明的實施例提供的技術(shù)方案可以包括以下有益效果:
對于所部署的業(yè)務(wù),由于其業(yè)務(wù)邏輯的執(zhí)行是為客戶端實現(xiàn)相應(yīng)服務(wù)的,因此隨時都存在著為請求此服務(wù)的客戶端執(zhí)行業(yè)務(wù)邏輯的過程,通過執(zhí)行業(yè)務(wù)邏輯而在客戶端實現(xiàn)服務(wù)時,如需要變更調(diào)整其業(yè)務(wù)配置,則根據(jù)業(yè)務(wù)邏輯中配置項的更新指令,獲得執(zhí)行業(yè)務(wù)配置操作的配置指令和對應(yīng)于業(yè)務(wù)配置操作的配置信息,通過配置信息和配置指令為業(yè)務(wù)執(zhí)行業(yè)務(wù)配置操作,向業(yè)務(wù)服務(wù)器再次執(zhí)行的業(yè)務(wù)邏輯預配置對應(yīng)于配置項的配置信息,業(yè)務(wù)服務(wù)器為在客戶端實現(xiàn)服務(wù)而執(zhí)行的業(yè)務(wù)邏輯被保留配置,業(yè)務(wù)服務(wù)器為請求服務(wù)的其它客戶端在執(zhí)行的業(yè)務(wù)邏輯中啟用配置項所預配置的配置信息,由此,相對于即將為請求的服務(wù)執(zhí)行業(yè)務(wù)邏輯的過程,為業(yè)務(wù)邏輯完成的預配置而使得即便發(fā)生了業(yè)務(wù)配置的更新,用戶仍然是無感知的,并且不需要停機或者相應(yīng)業(yè)務(wù)模塊的暫停,也不需要用戶額外下載客戶端補丁包,避免了技術(shù)實現(xiàn)成本和用戶操作成本,以及業(yè)務(wù)配置不可控的缺陷,能夠在需要時及時的實現(xiàn)業(yè)務(wù)配置的變更調(diào)整,保證了時效性,實現(xiàn)了業(yè)務(wù)的動態(tài)配置。
應(yīng)當理解的是,以上的一般描述和后文的細節(jié)描述僅是示例性的,并不能限制本發(fā)明。
附圖說明
此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本發(fā)明的實施例,并于說明書一起用于解釋本發(fā)明的原理。
圖1是根據(jù)本發(fā)明所涉及的實施環(huán)境的示意圖;
圖2是根據(jù)一示例性實施例示出的一種裝置的框圖;
圖3是根據(jù)一示例性實施例示出的一種實現(xiàn)業(yè)務(wù)動態(tài)配置的方法的流程圖;
圖4是根據(jù)圖3對應(yīng)實施例示出的步驟330的細節(jié)進行進一步描述的流程圖;
圖5是根據(jù)一示例性實施例示出的對將配置信息和配置指令發(fā)送到業(yè)務(wù)的配置服務(wù)器步驟的細節(jié)進行描述的流程圖;
圖6是根據(jù)另一示例性實施例示出的實現(xiàn)業(yè)務(wù)動態(tài)配置的方法的流程圖;
圖7是根據(jù)圖6對應(yīng)實施例示出的對保存下發(fā)的配置信息,并等待業(yè)務(wù)邏輯實現(xiàn)的服務(wù)被其它客戶端請求步驟的細節(jié)進行描述的流程圖;
圖8是根據(jù)圖3對應(yīng)實施例示出的對業(yè)務(wù)服務(wù)器為請求該服務(wù)的其它客戶端在執(zhí)行的業(yè)務(wù)邏輯中啟用配置項所預配置的配置信息步驟的細節(jié)進行描述的流程圖;
圖9是根據(jù)一示例性實施例示出的一種實現(xiàn)業(yè)務(wù)動態(tài)配置的服務(wù)器拓撲圖;
圖10是根據(jù)一示例性實施例示出的一種實現(xiàn)業(yè)務(wù)動態(tài)配置的系統(tǒng)的框圖;
圖11是根據(jù)圖10對應(yīng)實施例示出的對預配置模塊的細節(jié)進行描述的框圖;
圖12是根據(jù)另一示例性實施例示出的一種實現(xiàn)業(yè)務(wù)動態(tài)配置的系統(tǒng)的框圖;
圖13是根據(jù)圖10對應(yīng)實施例示出的對預配置啟用模塊的細節(jié)進行描述的框圖。
具體實施方式
這里將詳細地對示例性實施例執(zhí)行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本發(fā)明相一致的所有實施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。
圖1是根據(jù)本發(fā)明所涉及的實施環(huán)境的示意圖。該實施環(huán)境包括:業(yè)務(wù)服務(wù)器110和配置控制端130。
業(yè)務(wù)服務(wù)器110中部署了業(yè)務(wù),將按照所部署業(yè)務(wù)的業(yè)務(wù)邏輯實現(xiàn)各種功能和服務(wù),為保證業(yè)務(wù)的順暢實現(xiàn),會對業(yè)務(wù)進行各種配置。
配置控制端130用于對業(yè)務(wù)服務(wù)器110中部署的業(yè)務(wù)實現(xiàn)各種配置,即通過本發(fā)明所提供的方法來最終實現(xiàn)業(yè)務(wù)服務(wù)器110中業(yè)務(wù)的動態(tài)配置。
圖2是根據(jù)一示例性實施例示出的一種裝置的框圖。裝置200可以是服務(wù)器,例如,在一示例性實施例中,可以是圖1所示實施環(huán)境的業(yè)務(wù)服務(wù)器110,而配置控制端130,也可通過服務(wù)器實現(xiàn)其部署。
參見圖2,該裝置200可因配置或性能不同而產(chǎn)生比較大的差異,可以包括一個或一個以上中央處理器(centralprocessingunits,cpu)222(例如,一個或一個以上處理器)和存儲器232,一個或一個以上存儲應(yīng)用程序242或數(shù)據(jù)244的存儲介質(zhì)230(例如一個或一個以上海量存儲設(shè)備)。其中,存儲器232和存儲介質(zhì)230可以是短暫存儲或持久存儲。存儲在存儲介質(zhì)230的程序可以包括一個或一個以上模塊(圖示未示出),每個模塊可以包括對裝置200中的一系列指令操作。更進一步地,中央處理器222可以設(shè)置為與存儲介質(zhì)230通信,在裝置200上執(zhí)行存儲介質(zhì)230中的一系列指令操作。裝置200還可以包括一個或一個以上電源226,一個或一個以上有線或無線網(wǎng)絡(luò)接口250,一個或一個以上輸入輸出接口258,和/或,一個或一個以上操作系統(tǒng)241,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。上述圖3、圖4、圖5、圖6、圖7和圖8所示實施例中執(zhí)行的步驟可以基于該圖2所示的裝置結(jié)構(gòu)。
圖3是根據(jù)一示例性實施例示出的一種實現(xiàn)業(yè)務(wù)動態(tài)配置的方法的流程圖。該實現(xiàn)業(yè)務(wù)動態(tài)配置的方法在一個示例性實施例中可以由圖2所示的裝置執(zhí)行,如圖3所示,可以包括以下步驟。
在步驟310中,通過執(zhí)行業(yè)務(wù)邏輯而在客戶端實現(xiàn)服務(wù)時,根據(jù)業(yè)務(wù)邏輯中配置項的更新指令,獲得執(zhí)行業(yè)務(wù)配置操作的配置指令和對應(yīng)于配置指令的配置信息。
其中,業(yè)務(wù)邏輯是指所部署的業(yè)務(wù)實現(xiàn)其各種服務(wù)而需要執(zhí)行的各種邏輯。業(yè)務(wù)邏輯是隨著業(yè)務(wù)的部署而被配置于業(yè)務(wù)服務(wù)器中??梢岳斫?,業(yè)務(wù)邏輯一方面指示了實現(xiàn)各種功能所需要執(zhí)行的操作以及方法調(diào)用,另一方面也為其執(zhí)行過程設(shè)定了各種參數(shù)、屬性等配置項,使得業(yè)務(wù)邏輯的執(zhí)行是與設(shè)定的配置項相匹配的。
在客戶端向部署業(yè)務(wù)邏輯的業(yè)務(wù)服務(wù)器請求獲得服務(wù)之后,業(yè)務(wù)服務(wù)器執(zhí)行業(yè)務(wù)邏輯,并與客戶端進行數(shù)據(jù)交互,進而在客戶端實現(xiàn)服務(wù)。也就是說,在此所指的服務(wù),是網(wǎng)絡(luò)服務(wù),客戶端在業(yè)務(wù)服務(wù)器的控制下實現(xiàn)了具備業(yè)務(wù)邏輯所對應(yīng)服務(wù)的網(wǎng)絡(luò)應(yīng)用。
例如,所部署的業(yè)務(wù)可以是一游戲業(yè)務(wù),因此,對應(yīng)的業(yè)務(wù)邏輯即為游戲邏輯,為客戶端所實現(xiàn)的服務(wù)是游戲?qū)址?wù)。應(yīng)當理解的,游戲邏輯將指示了一局游戲的實現(xiàn)過程,并且對于游戲內(nèi)涉及的各種參數(shù),便是對應(yīng)于相應(yīng)配置項的。比如,游戲內(nèi)一虛擬角色的初始生命值即為相應(yīng)配置項中指示的數(shù)值。
可以理解的,業(yè)務(wù)邏輯的部署是為海量客戶端各自實現(xiàn)服務(wù)的。在正常運營下,隨時都存在著業(yè)務(wù)邏輯的執(zhí)行,例如,任何時刻都會有客戶端請求服務(wù),至此,將不得不為請求服務(wù)的客戶端執(zhí)行業(yè)務(wù)邏輯。在此情況下,進行業(yè)務(wù)邏輯中配置項的更新必然是在執(zhí)行業(yè)務(wù)邏輯而在客戶端實現(xiàn)服務(wù)的過程中發(fā)生的。執(zhí)行業(yè)務(wù)邏輯而在客戶端實現(xiàn)服務(wù),是指業(yè)務(wù)服務(wù)器當前正為某些客戶端執(zhí)行業(yè)務(wù)邏輯,以為這些客戶端返回其所請求的服務(wù)。業(yè)務(wù)邏輯中配置項的更新指令用于觸發(fā)進行業(yè)務(wù)邏輯中相應(yīng)配置項的調(diào)整變更,即發(fā)起執(zhí)行業(yè)務(wù)配置操作。具體而言,業(yè)務(wù)邏輯中配置項的更新指令指示了業(yè)務(wù)邏輯中進行調(diào)整變更的配置項。此更新指令可以是相應(yīng)人員為業(yè)務(wù)上傳新配置,例如,對某一配置項的修改等觸發(fā)的。更新指令也可以是針對某一業(yè)務(wù)模塊而觸發(fā)的,以便于實現(xiàn)業(yè)務(wù)中此業(yè)務(wù)模塊的動態(tài)配置。
根據(jù)此更新指令而獲得相應(yīng)的配置指令和對應(yīng)的配置信息。配置信息即為動態(tài)調(diào)整變更指定配置項的各種參數(shù)或者其它內(nèi)容,并且為此配置信息所對應(yīng)配置過程的執(zhí)行而獲得相應(yīng)配置指令。
在一個示例性實施例的具體實現(xiàn)中,配置指令和配置信息,是以可執(zhí)行的腳本形式存在。也就是說,在觸發(fā)進行業(yè)務(wù)邏輯中配置項的更新之后,便隨之配置實現(xiàn)配置信息在業(yè)務(wù)邏輯中配置的腳本,該腳本攜帶了配置信息和配置指令。
在此應(yīng)當補充說明的是,對于業(yè)務(wù)配置操作,即為對業(yè)務(wù)的配置實現(xiàn)各種變更調(diào)整的操作,其是通過配置指令的執(zhí)行而實現(xiàn)的,此配置指令的執(zhí)行中,配置信息被傳入,進而使得配置信息的執(zhí)行能夠?qū)⑴渲眯畔⑴渲玫綐I(yè)務(wù)中。
在一個示例性實施例的具體現(xiàn)實現(xiàn)中,更新指令,可以是相關(guān)人員觸發(fā)配置變更并上傳相應(yīng)配置信息而觸發(fā)產(chǎn)生的,此過程可以通過部署svn服務(wù)器實現(xiàn),svn服務(wù)器用于進行業(yè)務(wù)的版本控制,以控制進行業(yè)務(wù)中的各種迭代更新。
也就是說,圖1所示實施環(huán)境的配置控制端包括svn服務(wù)器,進而為業(yè)務(wù)服務(wù)器中部署的業(yè)務(wù)進行迭代更新。
在步驟330中,通過配置信息和配置指令為業(yè)務(wù)執(zhí)行業(yè)務(wù)配置操作,向業(yè)務(wù)服務(wù)器再次執(zhí)行的業(yè)務(wù)邏輯預配置對應(yīng)于配置項的配置信息,業(yè)務(wù)服務(wù)器為在客戶端實現(xiàn)服務(wù)而執(zhí)行的業(yè)務(wù)邏輯被保留配置。
其中,如前所述的,在所獲得配置信息和配置指令的作用下即可實現(xiàn)業(yè)務(wù)配置操作的執(zhí)行。應(yīng)當理解,向業(yè)務(wù)服務(wù)器進行業(yè)務(wù)的配置便是對業(yè)務(wù)原本所具備的各配置項進行變更調(diào)整的過程。一般而言,在完成業(yè)務(wù)的配置之后便啟用,以生效業(yè)務(wù)的配置。
而業(yè)務(wù)的預配置,是相對后續(xù)業(yè)務(wù)邏輯的再次執(zhí)行而言的。業(yè)務(wù)的預配置是指預先將指定的配置信息配置到部署此業(yè)務(wù)的業(yè)務(wù)服務(wù)器,但并不啟用使之生效。進行了業(yè)務(wù)的預配置之后,對于正在執(zhí)行的業(yè)務(wù)邏輯而言,將保留其原本的配置,直至執(zhí)行完畢。也就是說,即便發(fā)生了業(yè)務(wù)邏輯中配置項的更新,但對于客戶端所正在實現(xiàn)的服務(wù)而言,例如,正在進行的游戲?qū)址?wù),將繼續(xù)其服務(wù)過程,而不受到任何影響。
在此應(yīng)當補充說明的是,針對一服務(wù),無論是對于正在為客戶端中服務(wù)的實現(xiàn)而執(zhí)行的業(yè)務(wù)邏輯,還是后續(xù)其它客戶端請求服務(wù)時執(zhí)行的業(yè)務(wù)邏輯,均為部署于業(yè)務(wù)服務(wù)器的相同實現(xiàn)邏輯,并且是針對于相同的服務(wù)實現(xiàn)的。二者之間的區(qū)別僅僅在于所更新配置項的配置信息是否被啟用生效。
通過在業(yè)務(wù)用戶器中為業(yè)務(wù)進行的預配置,一方面使得業(yè)務(wù)的運行過程中一旦發(fā)現(xiàn)bug,或者需要進行一些緊急的平衡性數(shù)值調(diào)整,都可隨即觸發(fā)業(yè)務(wù)邏輯中相應(yīng)配置項的更新指令,進而將指定的配置信息預先配置到業(yè)務(wù)服務(wù)器中,業(yè)務(wù)運行的配置變更調(diào)整任務(wù)得以完成;另一方面,也避免了停機變更的發(fā)生,例如,不需要停服幾個小時,使得用戶無法進入業(yè)務(wù)。
由此,業(yè)務(wù)的配置能夠動態(tài)實施,易于修改業(yè)務(wù)邏輯中的各種配置項,變更速度快。
應(yīng)當理解的,由于業(yè)務(wù)被部署于業(yè)務(wù)服務(wù)器中,必然導致了業(yè)務(wù)的預配置實質(zhì)是將新的配置信息通過配置指令的執(zhí)行而預先配置到業(yè)務(wù)服務(wù)器的過程。
在步驟350中,業(yè)務(wù)服務(wù)器為請求該服務(wù)的其它客戶端在執(zhí)行的業(yè)務(wù)邏輯中啟用配置項所預配置的配置信息。
其中,如前所述的,業(yè)務(wù)服務(wù)器中存在著預配置的各種配置信息,其是對應(yīng)于業(yè)務(wù)中的配置項的。在業(yè)務(wù)邏輯的執(zhí)行中,此預配置將不會生效,而等待業(yè)務(wù)邏輯被再次執(zhí)行時方可啟用生效。
具體而言,業(yè)務(wù)服務(wù)器在執(zhí)行業(yè)務(wù)邏輯而為客戶端實現(xiàn)服務(wù)的過程中,也會接收到其它客戶端發(fā)起的服務(wù)請求,此時,也將為其它客戶端執(zhí)行此業(yè)務(wù)邏輯,進而響應(yīng)其發(fā)起的服務(wù)請求。
在為其它客戶端執(zhí)行業(yè)務(wù)邏輯的過程中,便可以啟用配置項所預配置的配置信息,由此即可使得業(yè)務(wù)服務(wù)器的服務(wù)實現(xiàn)是完成了業(yè)務(wù)的動態(tài)配置更新的。
通過如上所述的示例性實施例,便實現(xiàn)了業(yè)務(wù)服務(wù)器中業(yè)務(wù)的動態(tài)配置,業(yè)務(wù)配置操作能夠隨意執(zhí)行,而不再需要特別的停機,更不需要停止相應(yīng)的業(yè)務(wù)模塊,使得此業(yè)務(wù)模塊對應(yīng)的功能不可用,對于用戶而言更是無感知的。
在一個示例性實施例中,步驟330包括:通過配置指令的執(zhí)行而按照預先指定的時間間隔向業(yè)務(wù)服務(wù)器下發(fā)配置信息,為業(yè)務(wù)服務(wù)器中再次執(zhí)行的業(yè)務(wù)邏輯完成配置項所對應(yīng)配置信息的預先配置。
其中,時間間隔是預先所指定的,例如,其可以是若干秒,即使得每隔幾秒便向業(yè)務(wù)服務(wù)器下發(fā)最新的配置信息,進而保證將變更后的配置實時動態(tài)更新到業(yè)務(wù)服務(wù)器中新執(zhí)行的業(yè)務(wù)邏輯中,不會影響到已經(jīng)執(zhí)行的業(yè)務(wù)邏輯,并且避免變更后的配置存在滯后性。
在一個示例性實施例的具體實現(xiàn)中,可以為業(yè)務(wù)部署配置服務(wù)器,并且根據(jù)需要所部署的配置服務(wù)器可以以集群的形式存在。由此,配置服務(wù)器便于前述所指的svn服務(wù)器共同構(gòu)成了配置控制端,進而配置服務(wù)器接入業(yè)務(wù)服務(wù)器中部署的業(yè)務(wù),在svn服務(wù)器的控制下為實現(xiàn)配置的動態(tài)變更。
業(yè)務(wù)邏輯中配置項所對應(yīng)配置信息的預先配置,是相對于后續(xù)業(yè)務(wù)邏輯的執(zhí)行而言的。在時間上,由于業(yè)務(wù)邏輯中配置項所對應(yīng)配置信息的更新,相對于其后的業(yè)務(wù)邏輯執(zhí)行而言,是先行實現(xiàn)的,因此,是為其后的業(yè)務(wù)邏輯執(zhí)行而預先進行的配置。
此外,對于業(yè)務(wù)邏輯的更新而言,所更新的配置信息是為后續(xù)的業(yè)務(wù)邏輯執(zhí)行而預先準備的,故在業(yè)務(wù)邏輯的執(zhí)行上,其也是預先進行的配置。
圖4是根據(jù)圖3對應(yīng)實施例示出的步驟330的細節(jié)進行進一步描述的流程圖。服務(wù)為游戲?qū)址?wù),該步驟330中,通過配置指令的執(zhí)行而按照預先指定的時間間隔向業(yè)務(wù)服務(wù)器下發(fā)配置信息,為業(yè)務(wù)服務(wù)器中再次執(zhí)行的業(yè)務(wù)邏輯完成配置項所對應(yīng)配置信息的預先配置步驟,進一步包括:
在步驟331中,業(yè)務(wù)服務(wù)器中游戲?qū)址?wù)在客戶端實現(xiàn),使客戶端處于游戲?qū)謭鼍暗倪^程中,觸發(fā)執(zhí)行配置指令。
其中,隨著客戶端向業(yè)務(wù)服務(wù)器發(fā)起游戲?qū)址?wù)請求,業(yè)務(wù)服務(wù)器將為此客戶端執(zhí)行業(yè)務(wù)邏輯,進而控制客戶端跳轉(zhuǎn)進入游戲?qū)謭鼍?。無論何時觸發(fā)業(yè)務(wù)邏輯中配置項所對應(yīng)配置信息的更新,都存在客戶端正處于游戲?qū)謭鼍扒闆r。
在步驟333中,通過配置指令的執(zhí)行而按照預先指定的時間間隔向業(yè)務(wù)服務(wù)器下發(fā)配置信息,使業(yè)務(wù)服務(wù)器中再次被執(zhí)行的業(yè)務(wù)邏輯完成其中配置項所對應(yīng)配置信息的預先配置。
通過如上所述的示例性實施例,對于玩家而言,游戲所發(fā)生的配置變更將不會影響其正在進行的游戲?qū)郑鵁o論哪一玩家,其后續(xù)所進行的游戲?qū)侄紝?zhí)行完成配置更新的業(yè)務(wù)邏輯,由此,游戲所發(fā)生的配置變更順暢實現(xiàn),并未使得全天候運營的游戲受到影響。
進一步的,在另一個示例性實施例中,通過配置指令的執(zhí)行而按照預先指定的時間間隔向業(yè)務(wù)服務(wù)器下發(fā)配置信息,為業(yè)務(wù)服務(wù)器中再次執(zhí)行的業(yè)務(wù)邏輯完成配置項所對應(yīng)配置信息的預先配置之前,該步驟330還包括:
將配置信息和配置指令發(fā)送到業(yè)務(wù)的配置服務(wù)器。
其中,如前所述的,為業(yè)務(wù)服務(wù)器部署配置服務(wù)器,配置服務(wù)器用于為業(yè)務(wù)服務(wù)器中部署的業(yè)務(wù)執(zhí)行各種配置項的動態(tài)變更。
基于此,在獲得執(zhí)行業(yè)務(wù)配置操作的配置指令和配置信息之后,需要將配置信息和配置指令發(fā)送至業(yè)務(wù)的配置服務(wù)器中,以便于在配置服務(wù)器的控制下實現(xiàn)業(yè)務(wù)配置操作的執(zhí)行。
換而言之,將在svn服務(wù)器為業(yè)務(wù)觸發(fā)配置的動態(tài)更新,以觸發(fā)配置指令并將相應(yīng)人員所提交的配置信息上傳到svn服務(wù)器,配置信息和配置指令經(jīng)由svn服務(wù)器發(fā)送至配置服務(wù)器。
圖5是根據(jù)一示例性實施例示出的對將配置信息和配置指令發(fā)送到業(yè)務(wù)的配置服務(wù)器步驟的細節(jié)進行描述的流程圖。該步驟如圖4所示,可以包括以下步驟。
在步驟401中,根據(jù)配置信息和配置指令對應(yīng)的業(yè)務(wù)模塊,獲取業(yè)務(wù)模塊對應(yīng)配置服務(wù)器的網(wǎng)絡(luò)地址。
其中,業(yè)務(wù)的實現(xiàn)往往配置了多種功能,每一功能都有其所唯一對應(yīng)的業(yè)務(wù)模塊,功能的觸發(fā)便使得其所唯一對應(yīng)的業(yè)務(wù)模塊被運行。與之相對應(yīng)的,對業(yè)務(wù)中某一功能的配置,以及配置變更調(diào)整,也是對業(yè)務(wù)模塊進行的。
可部署多個配置服務(wù)器,每一業(yè)務(wù)模塊均有與之對應(yīng)的配置服務(wù)器。在觸發(fā)進行業(yè)務(wù)邏輯中配置項的更新之后,確定進行業(yè)務(wù)動態(tài)配置所對應(yīng)的業(yè)務(wù)模塊,進而獲得此業(yè)務(wù)模塊對應(yīng)配置服務(wù)器的網(wǎng)絡(luò)地址,由此將通過此業(yè)務(wù)模塊對應(yīng)配置服務(wù)器而與業(yè)務(wù)服務(wù)器交互。
在步驟403中,按照業(yè)務(wù)模塊對應(yīng)配置服務(wù)器的網(wǎng)絡(luò)地址,進行配置信息和配置指令的發(fā)送,通過配置指令的發(fā)送而觸發(fā)對應(yīng)配置服務(wù)器執(zhí)行配置指令。
其中,隨著配置信息和配置指令被發(fā)送至業(yè)務(wù)模塊對應(yīng)的配置服務(wù)器,被配置服務(wù)器所接收的配置指令便被觸發(fā)執(zhí)行,進而通過配置指令的執(zhí)行而使得配置信息被迅速下發(fā)至業(yè)務(wù)服務(wù)器。
通過如上所述的示例性實施例,使得業(yè)務(wù)邏輯復雜的業(yè)務(wù)能夠針對各業(yè)務(wù)模塊而有序的實現(xiàn)業(yè)務(wù)動態(tài)配置,保證了業(yè)務(wù)動態(tài)配置的可控性和針對性。
圖6是根據(jù)另一示例性實施例示出的實現(xiàn)業(yè)務(wù)動態(tài)配置的方法的流程圖。該實現(xiàn)業(yè)務(wù)動態(tài)配置的方法,在步驟350之前,如圖6所示,還可以包括以下步驟。
在步驟510中,業(yè)務(wù)服務(wù)器接收為業(yè)務(wù)邏輯進行預配置而下發(fā)的配置信息。
其中,如前所述的,配置信息的下發(fā),由配置控制端執(zhí)行,具體而言,可以由配置控制端中部署的配置服務(wù)器執(zhí)行。
在步驟530中,保存下發(fā)的配置信息,并等待業(yè)務(wù)邏輯實現(xiàn)的服務(wù)被其它客戶端請求。
其中,業(yè)務(wù)服務(wù)器在接收到為業(yè)務(wù)進行預配置而下發(fā)的配置信息之后,便保存此配置信息,此時如果業(yè)務(wù)服務(wù)器正在為客戶端執(zhí)行自身的業(yè)務(wù)邏輯,則不會為此客戶端的業(yè)務(wù)邏輯啟用對業(yè)務(wù)服務(wù)器中為業(yè)務(wù)進行的預配置,進而等待業(yè)務(wù)服務(wù)器再次執(zhí)行自身的業(yè)務(wù)邏輯,即接收到其它客戶端的服務(wù)請求而再次執(zhí)行的業(yè)務(wù)邏輯。
由此,將避免由于業(yè)務(wù)的配置變更調(diào)整導致當前執(zhí)行的業(yè)務(wù)邏輯受到影響而無法正常執(zhí)行,也避免后續(xù)業(yè)務(wù)邏輯的執(zhí)行無法正常進行。
圖7是根據(jù)圖6對應(yīng)實施例示出的對步驟530的細節(jié)進行描述的流程圖。該步驟530,如圖7所示,可以包括以下步驟。
在步驟531中,進行業(yè)務(wù)服務(wù)器中配置信息的保存。
其中,業(yè)務(wù)服務(wù)器中配置信息的保存,是區(qū)別于原有配置信息的保存,以避免不會覆蓋原有配置信息,進而保證現(xiàn)有業(yè)務(wù)邏輯執(zhí)行過程的最終完成。
在步驟533中,在完成配置信息保存之后,等待業(yè)務(wù)服務(wù)器中業(yè)務(wù)邏輯實現(xiàn)的游戲?qū)址?wù)被其它客戶端請求,其它客戶端通過游戲?qū)謭鼍暗奶D(zhuǎn)進入而發(fā)起游戲?qū)?yīng)服務(wù)請求。
其中,隨著客戶端中游戲?qū)謭鼍暗某掷m(xù)進行,業(yè)務(wù)服務(wù)器在其執(zhí)行業(yè)務(wù)邏輯的同時,也會進行業(yè)務(wù)邏輯中配置項所對應(yīng)配置信息的更新,還會接收到其它客戶端發(fā)起的游戲?qū)址?wù)請求。
此時在業(yè)務(wù)服務(wù)器為其它客戶端發(fā)起的游戲?qū)址?wù)請求而進行響應(yīng)的過程中,即可啟用生效預配置的配置信息。
圖8是根據(jù)圖3對應(yīng)實施例示出的對步驟350的細節(jié)進行描述的流程圖。該步驟350,如圖8所示,可以包括以下步驟。
在步驟351中,在配置信息被業(yè)務(wù)服務(wù)器保存之后,接收游戲?qū)址?wù)請求。
其中,游戲?qū)址?wù)請求的發(fā)起是通過玩家操控客戶端發(fā)起或響應(yīng)游戲?qū)侄鴮崿F(xiàn)的。
在步驟353中,響應(yīng)游戲?qū)址?wù)請求而為請求游戲?qū)址?wù)的客戶端執(zhí)行業(yè)務(wù)邏輯,業(yè)務(wù)邏輯中配置項所預配置的配置信息被啟用。
其中,由于通過前述示例性實施例,業(yè)務(wù)服務(wù)器已完成了業(yè)務(wù)邏輯中配置項所對應(yīng)配置信息的預配置,因此,隨后所進行的業(yè)務(wù)邏輯執(zhí)行中,即可啟用此配置信息,進而最終完成游戲?qū)址?wù)的更新。
通過如上所述的示例性實施例,使得任何時刻都需要保障其正常運行的游戲業(yè)務(wù)即便需要進行配置信息的變更,也能夠維持其正常的游戲過程,為游戲業(yè)務(wù)提供了可靠且能夠及時進行的游戲業(yè)務(wù)動態(tài)配置過程。
如上所述的示例性實施例,能夠應(yīng)用于多區(qū)多服應(yīng)用中,進而實現(xiàn)大區(qū)或者各個分區(qū)下屬游戲服務(wù)器中的配置變更,適應(yīng)于各種游戲場景。
圖9是根據(jù)一示例性實施例示出的一種實現(xiàn)業(yè)務(wù)動態(tài)配置的服務(wù)器拓撲圖。以業(yè)務(wù)是游戲業(yè)務(wù)為例進行說明,對于此游戲業(yè)務(wù)而言,前述所指的業(yè)務(wù)服務(wù)器即為圖9所示的游戲服務(wù)器610,游戲服務(wù)器610按照為游戲所進行的配置而執(zhí)行部署的游戲邏輯,進而實現(xiàn)每一局游戲。
在游戲服務(wù)器610的運行中,如果發(fā)現(xiàn)bug,或需要對一些緊急的平穩(wěn)性數(shù)值進行調(diào)整,則可通過svn服務(wù)器630完成所對應(yīng)配置項中所變更的具體值填寫,并提交后,即可在svn服務(wù)器630獲得配置信息和配置指令,并隨之發(fā)送至配置服務(wù)器650。
配置服務(wù)器650以集群的形式存在,執(zhí)行配置指令,向游戲服務(wù)器610每隔幾秒進行一次配置信息的下發(fā),以使得游戲服務(wù)器610及時獲得變更的配置。
游戲服務(wù)器610在執(zhí)行其游戲邏輯時就可以生效所變更的配置。
至此,便實現(xiàn)了游戲內(nèi)配置的動態(tài)變更調(diào)整,并且能夠應(yīng)用于多區(qū)多服的游戲業(yè)務(wù)中,只需要進行一次配置的提交即可。在啟用時僅需要一次修改一個或者若干個配置。變更后的配置實時動態(tài)更新到新開啟的對局游戲,不會影響到已開對局,玩家無任何感知。
可以理解的,游戲邏輯和配置的屬性等是完全獨立的,變更前后并不會影響到每一次游戲邏輯的執(zhí)行,保證了游戲運行的公平性,全部實現(xiàn)動態(tài)在線變更。
下述為本發(fā)明裝置實施例,可以用于執(zhí)行本發(fā)明上述實現(xiàn)業(yè)務(wù)動態(tài)配置的方法實施例。對于本發(fā)明裝置實施例中未披露的細節(jié),請參照本發(fā)明實現(xiàn)業(yè)務(wù)動態(tài)配置的方法實施例。
圖10是根據(jù)一示例性實施例示出的一種實現(xiàn)業(yè)務(wù)動態(tài)配置的系統(tǒng)的框圖。該實現(xiàn)業(yè)務(wù)動態(tài)配置的系統(tǒng),如圖10所示,該系統(tǒng)可以包括但不限于:更新指令處理模塊710、預配置模塊730和預配置啟用模塊750。
更新指令處理模塊710,用于通過執(zhí)行業(yè)務(wù)邏輯而在客戶端實現(xiàn)服務(wù)時,根據(jù)業(yè)務(wù)邏輯中配置項的更新指令,獲得執(zhí)行業(yè)務(wù)配置操作的配置指令和對應(yīng)于業(yè)務(wù)配置操作的配置信息。
預配置模塊730,用于通過配置信息和配置指令為業(yè)務(wù)執(zhí)行業(yè)務(wù)配置操作,向業(yè)務(wù)服務(wù)器再次執(zhí)行的業(yè)務(wù)邏輯預配置對應(yīng)于配置項的配置信息,業(yè)務(wù)服務(wù)器為在客戶端實現(xiàn)服務(wù)而執(zhí)行的業(yè)務(wù)邏輯被保留配置。
預配置啟用模塊750,用于業(yè)務(wù)服務(wù)器為請求服務(wù)的其它客戶端在執(zhí)行的業(yè)務(wù)邏輯中啟用配置項所預配置的配置信息。
在一示例性實施例中,預配置模塊730進一步用于通過配置指令的執(zhí)行而按照預先指定的時間間隔向業(yè)務(wù)服務(wù)器下發(fā)配置信息,為所述業(yè)務(wù)服務(wù)器中再次執(zhí)行的所述業(yè)務(wù)邏輯完成所述配置項所對應(yīng)配置信息的預先配置。
圖11是根據(jù)圖10對應(yīng)實施例示出的對預配置模塊的細節(jié)進行描述的框圖。前述服務(wù)為游戲?qū)址?wù),該預配置模塊730,如圖11所示,可以包括但不限于:配置觸發(fā)執(zhí)行單元731和下發(fā)執(zhí)行單元733。
配置觸發(fā)執(zhí)行單元731,用于業(yè)務(wù)服務(wù)器中游戲?qū)址?wù)在客戶端實現(xiàn),使客戶端處于游戲?qū)謭鼍暗倪^程中,觸發(fā)執(zhí)行配置指令。
下發(fā)執(zhí)行單元733,用于通過配置指令的執(zhí)行而按照預先指定的時間間隔向業(yè)務(wù)服務(wù)器下發(fā)配置信息,使業(yè)務(wù)服務(wù)器中再次被執(zhí)行的業(yè)務(wù)邏輯完成其中配置項所對應(yīng)配置信息的預先配置。
進一步的,在另一示例性實施例中,預配置模塊730還用于將配置信息和配置指令發(fā)送到業(yè)務(wù)的配置服務(wù)器。
圖12是根據(jù)另一示例性實施例示出的一種實現(xiàn)業(yè)務(wù)動態(tài)配置的系統(tǒng)的框圖。該系統(tǒng)如圖12所示,還包括配置于業(yè)務(wù)服務(wù)器中的配置信息接收模塊810和執(zhí)行等待模塊830。
配置信息接收模塊810,用于接收為業(yè)務(wù)邏輯進行預配置而下發(fā)的配置信息。
執(zhí)行等待模塊830,用于保存下發(fā)的配置信息,并等待業(yè)務(wù)邏輯實現(xiàn)的服務(wù)被其它客戶端請求。
圖13是根據(jù)圖10對應(yīng)實施例示出的對預配置啟用模塊的細節(jié)進行描述的框圖。該預配置啟用模塊750,如圖13所示,可以包括但不限于:請求接收單元751和請求響應(yīng)單元753。
請求接收單元751,用于在配置信息被業(yè)務(wù)服務(wù)器保存之后,接收游戲?qū)址?wù)請求。
請求響應(yīng)單元753,用于響應(yīng)游戲?qū)址?wù)請求而為請求游戲?qū)址?wù)的客戶端執(zhí)行業(yè)務(wù)邏輯,業(yè)務(wù)邏輯中配置項所預配置的配置信息被啟用。
可選的,本發(fā)明還提供一種服務(wù)器,執(zhí)行圖3、圖4、圖5、圖6、圖7和圖8任一所示的實現(xiàn)業(yè)務(wù)動態(tài)配置的方法的全部或者部分步驟,所述裝置包括:
處理器;
用于存儲處理器可執(zhí)行指令的存儲器;
其中,所述處理器被配置為執(zhí)行:
通過執(zhí)行業(yè)務(wù)邏輯而在客戶端實現(xiàn)服務(wù)時,根據(jù)業(yè)務(wù)邏輯中配置項的更新指令,獲得執(zhí)行業(yè)務(wù)配置操作的配置指令和對應(yīng)于所述業(yè)務(wù)配置操作的配置信息;
通過所述配置信息和配置指令為所述業(yè)務(wù)執(zhí)行所述業(yè)務(wù)配置操作,向業(yè)務(wù)服務(wù)器再次執(zhí)行的業(yè)務(wù)邏輯預配置對應(yīng)于配置項的配置信息,所述業(yè)務(wù)服務(wù)器為在客戶端實現(xiàn)服務(wù)而執(zhí)行的業(yè)務(wù)邏輯被保留配置;
所述業(yè)務(wù)服務(wù)器為請求所述服務(wù)的其它客戶端在執(zhí)行的所述業(yè)務(wù)邏輯中啟用配置項所預配置的配置信息。
該實施例中的裝置的處理器執(zhí)行操作的具體方式已經(jīng)在有關(guān)該實現(xiàn)業(yè)務(wù)動態(tài)配置的方法的實施例中執(zhí)行了詳細描述,此處將不做詳細闡述說明。
應(yīng)當理解的是,本發(fā)明并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍執(zhí)行各種修改和改變。本發(fā)明的范圍僅由所附的權(quán)利要求來限制。