管理服務(wù)配置的方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種管理服務(wù)配置的方法及系統(tǒng)。
【背景技術(shù)】
[0002]在互聯(lián)網(wǎng)領(lǐng)域中,每一個服務(wù)都作為一個應(yīng)用部署在服務(wù)器上,基本上每一個服務(wù)都有幾個或者幾十個配置項存放在XML (可擴展標記語言)配置文件中,在這些配置項被修改時,服務(wù)則需要重新發(fā)布。服務(wù)的重新發(fā)布會給開發(fā)和測試人員帶來額外的工作量,并且影響整個現(xiàn)有系統(tǒng)的穩(wěn)定。
【發(fā)明內(nèi)容】
[0003]本發(fā)明要解決的技術(shù)問題是為了克服現(xiàn)有的服務(wù)配置項存儲結(jié)構(gòu)復(fù)雜、不利于技術(shù)人員管理和維護的缺陷,提供一種新的管理服務(wù)配置的方法及系統(tǒng)。
[0004]本發(fā)明是通過以下技術(shù)方案解決上述技術(shù)問題的:
[0005]本發(fā)明提供一種管理服務(wù)配置的方法,其特點是,所述方法包括:
[0006]S1、服務(wù)引入第一模塊;
[0007]S2、所述第一模塊向動態(tài)配置服務(wù)發(fā)送查詢配置項的請求,所述請求包括被查詢的配置項的名稱;
[0008]S3、所述動態(tài)配置服務(wù)接收所述請求,檢查數(shù)據(jù)庫中是否存在與被查詢的配置項相匹配的配置項,若存在,返回在數(shù)據(jù)庫中所述相匹配的配置項的值,若不存在,添加與被查詢的配置項相匹配的配置項并設(shè)置添加的配置項的初始值,然后返回設(shè)置的初始值;
[0009]S4、所述第一模塊接收所述動態(tài)配置服務(wù)返回的配置項的值。
[0010]其中,所述第一模塊可以為dll (應(yīng)用程序拓展)模塊;數(shù)據(jù)庫中與被查詢的配置項相匹配的配置項是指與被查詢的配置項的AppID(每一個服務(wù)的唯一 ID(識別號碼))和配置項名稱均匹配的配置項;在不存在與被查詢的配置項相匹配的配置項時,\中所述第一模塊接收的所述動態(tài)配置服務(wù)返回的配置項的值為S3中添加的配置項的初始值。本技術(shù)方案通過動態(tài)配置服務(wù)將散布在各個服務(wù)中的配置項收集起來,進行集中管理,避免了原有方式管理配置項所帶來的額外工作量和對服務(wù)穩(wěn)定性的損害。
[0011]較佳地,所述方法還包括在步驟S4之后執(zhí)行以下步驟:
[0012]S5、所述第一模塊將接收到的配置項的值進行緩存。
[0013]通過本技術(shù)方案,其它的服務(wù)可以高性能地獲取配置項的值,提高系統(tǒng)效率。
[0014]較佳地,S5還包括:
[0015]設(shè)置接收到的配置項的值的緩存時間;
[0016]和/或,通過背后線程更新緩存中的配置項的值。
[0017]較佳地,所述方法還包括:通過配置項維護站點修改數(shù)據(jù)庫中配置項的值。
[0018]本技術(shù)方案中即使配置項的值被修改,服務(wù)也不需要重新發(fā)布,這是因為,本技術(shù)方案中查詢與修改配置項的值實質(zhì)是通過數(shù)據(jù)庫實現(xiàn)的,也就是查詢與修改數(shù)據(jù)庫中配置項的值,而不是直接對服務(wù)的配置項進行操作。因此,本技術(shù)方案能夠達到減少開發(fā)和測試人員的工作量,并且保證系統(tǒng)穩(wěn)定性的優(yōu)點。
[0019]較佳地,所述請求還包括被查詢的配置項的初始值。
[0020]本發(fā)明還提供一種管理服務(wù)配置的系統(tǒng),其特點是,所述系統(tǒng)包括:一接入服務(wù)的第一模塊和一動態(tài)配置服務(wù)模塊;
[0021]所述第一模塊用于向所述動態(tài)配置服務(wù)模塊發(fā)送查詢配置項的請求,所述請求包括被查詢的配置項的名稱;
[0022]所述動態(tài)配置服務(wù)模塊用于接收所述請求,檢查數(shù)據(jù)庫中是否存在與被查詢的配置項相匹配的配置項,若存在,返回在數(shù)據(jù)庫中所述相匹配的配置項的值,若不存在,添加與被查詢的配置項相匹配的配置項并設(shè)置添加的配置項的初始值,然后返回設(shè)置的初始值;
[0023]所述第一模塊還用于接收所述動態(tài)配置服務(wù)模塊返回的配置項的值。
[0024]較佳地,所述第一模塊還用于將接收到的配置項的值進行緩存。
[0025]較佳地,所述第一模塊還用于設(shè)置接收到的值的緩存時間,和/或,通過背后線程更新緩存中的配置項的值。
[0026]較佳地,所述系統(tǒng)還包括:一配置項維護站點模塊;
[0027]所述配置項維護站點模塊用于修改數(shù)據(jù)庫中配置項的值。
[0028]較佳地,所述請求還包括被查詢的配置項的初始值。
[0029]在符合本領(lǐng)域常識的基礎(chǔ)上,上述各優(yōu)選條件,可任意組合,即得本發(fā)明各較佳實例。
[0030]本發(fā)明的積極進步效果在于:本發(fā)明通過動態(tài)配置服務(wù)將散布在各個服務(wù)中的配置項收集起來,進行集中管理,避免了原有方式管理配置項所帶來的額外工作量和對服務(wù)穩(wěn)定性的損害,通過第一模塊對配置項進行查詢,通過配置項維護站點對數(shù)據(jù)庫中配置項的值進行修改,避免了重新發(fā)布服務(wù),減少了開發(fā)和測試人員的工作量,并且保證了系統(tǒng)穩(wěn)定性。
【附圖說明】
[0031]圖1為本發(fā)明實施例的管理服務(wù)配置的方法的流程圖。
[0032]圖2為本發(fā)明實施例的管理服務(wù)配置的系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實施方式】
[0033]下面通過實施例的方式進一步說明本發(fā)明,但并不因此將本發(fā)明限制在所述的實施例范圍之中。
[0034]實施例
[0035]—種管理服務(wù)配置的方法,如圖1所示,所述方法包括:
[0036]步驟101、服務(wù)引入第一模塊。所述第一模塊為dll模塊,給接入的服務(wù)或者站點提供api (應(yīng)用程序編程接口 ),技術(shù)人員通過所述第一模塊輸入想要查詢的配置項的名稱,或,名稱和初始值。
[0037]步驟102、所述第一模塊向動態(tài)配置服務(wù)發(fā)送查詢配置項的請求。其中,所述請求根據(jù)輸入的想要查詢的配置項的名稱,或,名稱和初始值生成,包括被查詢的配置項的名稱,或,名稱和初始值。
[0038]步驟103、所述動態(tài)配置服務(wù)接收所述請求,檢查數(shù)據(jù)庫中是否存在與被查詢的配置項相匹配的配置項,若存在,返回在數(shù)據(jù)庫中所述相匹配的配置項的值,若不存在,添加與被查詢的配置項相匹配的配置項并設(shè)置添加的配置項的初始值,然后返回設(shè)置的初始值。其中,所述數(shù)據(jù)庫為MySql (關(guān)系型數(shù)據(jù)庫管理系統(tǒng))數(shù)據(jù)庫。
[0039]步驟104、所述第一模塊接收所述動態(tài)配置服務(wù)返回的配置項的值。
[0040]所述返回的配置項的值可以不緩存,也可以通過步驟105緩存:
[0041]步驟105、所述第一模塊設(shè)置接收到的配置項的值的緩存時間并將接收到的值進行緩存。其中,緩存可便于其它的服務(wù)獲取配置項的值。
[0042]步驟106、所述第一模塊通過背后線程更新緩存中的配置項的值。其中,更新時可以一次性更新所有已有緩存,提高系統(tǒng)效率。