本發(fā)明涉及客戶端故障處理領(lǐng)域,具體涉及一種基于插樁方式快速屏蔽客戶端故障的方法及系統(tǒng)。
背景技術(shù):
CS(Client/Server,客戶端/服務(wù)器端)架構(gòu)的軟件開(kāi)發(fā)過(guò)程通常是一個(gè)迭代更新的過(guò)程,每次迭代和更新的過(guò)程或多或少都會(huì)引入一些新的功能或者新的特性。這些新功能和新特性在版本發(fā)布前雖然經(jīng)過(guò)了詳細(xì)的測(cè)試,但是在發(fā)布后依舊無(wú)法避免的存在一些未知的bug,bug用于指代客戶端程序中潛在的在運(yùn)行時(shí)將會(huì)出現(xiàn)的故障或錯(cuò)誤。
當(dāng)客戶端出現(xiàn)bug時(shí),一般只能通過(guò)升級(jí)客戶端來(lái)修改該bug文件的問(wèn)題。然而,通過(guò)升級(jí)客戶端的方式修復(fù)bug的成本比較高,且時(shí)間周期長(zhǎng),因?yàn)椴豢赡芤驗(yàn)橐粋€(gè)bug就將整個(gè)客戶端進(jìn)行更新,通常是等多個(gè)bug反饋后統(tǒng)一更新。如果客戶端只是一個(gè)很小的bug,但是產(chǎn)生的后果比較嚴(yán)重的情況下,這個(gè)時(shí)候往往修改的地方很少,但是卻要經(jīng)歷客戶端更新這一個(gè)非常復(fù)雜的一個(gè)過(guò)程,這種設(shè)計(jì)方案雖然是可以解決問(wèn)題,但是時(shí)間成本,用戶流量等成本都會(huì)大大增加。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是為了克服上述背景技術(shù)的不足,提供一種基于插樁方式快速屏蔽客戶端故障的方法及系統(tǒng),該方法能夠快速對(duì)客戶端的新功能進(jìn)行關(guān)閉操作,屏蔽因?yàn)樾鹿δ芤氲墓收?,保證客戶端的正常使用。
本發(fā)明提供一種基于插樁方式快速屏蔽客戶端故障的方法,包括以下步驟:
往客戶端中插入用于控制功能的功能插樁點(diǎn)和用于控制函數(shù)的函數(shù)插樁點(diǎn),當(dāng)發(fā)現(xiàn)客戶端的功能或函數(shù)出現(xiàn)故障時(shí),將出現(xiàn)故障的功能或函數(shù)名稱輸入服務(wù)器端,服務(wù)器端根據(jù)出現(xiàn)故障的功能生成功能配置信息,根據(jù)出現(xiàn)故障的函數(shù)生成函數(shù)配置信息,所述功能配置信息用于關(guān)閉出現(xiàn)故障的功能,所述函數(shù)配置信息用于關(guān)閉出現(xiàn)故障的函數(shù);
客戶端啟動(dòng)時(shí),自動(dòng)向服務(wù)器端獲取已經(jīng)生成的功能配置信息、函數(shù)配置信息,進(jìn)行解析,將解析后的配置信息保存在鍵值對(duì)集合中;
當(dāng)客戶端查詢到鍵值對(duì)集合中存在功能配置信息時(shí),關(guān)閉與該功能配置信息對(duì)應(yīng)的功能插樁點(diǎn),從而關(guān)閉對(duì)應(yīng)的功能;
若客戶端查詢到鍵值對(duì)集合中存在函數(shù)配置信息,待客戶端執(zhí)行到與該函數(shù)配置信息對(duì)應(yīng)的函數(shù)插樁點(diǎn)處時(shí),關(guān)閉與該函數(shù)配置信息對(duì)應(yīng)的函數(shù)插樁點(diǎn),從而關(guān)閉對(duì)應(yīng)的函數(shù),客戶端跳過(guò)該函數(shù)繼續(xù)執(zhí)行其它函數(shù)。
在上述技術(shù)方案的基礎(chǔ)上,所述鍵值對(duì)集合包括功能集合、函數(shù)集合,所述功能配置信息保存在功能集合中,所述函數(shù)配置信息保存在函數(shù)集合中。
在上述技術(shù)方案的基礎(chǔ)上,所述功能配置信息、函數(shù)配置信息的數(shù)據(jù)格式均為JSON格式、GSON格式或者文本格式。
一種基于插樁方式快速屏蔽客戶端故障的系統(tǒng),該系統(tǒng)包括客戶端、服務(wù)器端,該系統(tǒng)還包括插樁點(diǎn)編輯模塊、故障輸入模塊,所述客戶端包括配置獲取模塊、功能處理模塊、函數(shù)處理模塊,其中,
所述插樁點(diǎn)編輯模塊用于:往客戶端中插入用于控制功能的功能插樁點(diǎn)和用于控制函數(shù)的函數(shù)插樁點(diǎn);
所述故障輸入模塊用于:當(dāng)發(fā)現(xiàn)客戶端的功能或函數(shù)出現(xiàn)故障時(shí),將出現(xiàn)故障的功能或函數(shù)名稱輸入服務(wù)器端;
所述服務(wù)器端用于:根據(jù)出現(xiàn)故障的功能生成功能配置信息,根據(jù)出現(xiàn)故障的函數(shù)生成函數(shù)配置信息,所述功能配置信息用于關(guān)閉出現(xiàn)故障的功能,所述函數(shù)配置信息用于關(guān)閉出現(xiàn)故障的函數(shù);
所述配置獲取模塊用于:客戶端啟動(dòng)時(shí),自動(dòng)向服務(wù)器端獲取已經(jīng)生成的功能配置信息、函數(shù)配置信息,進(jìn)行解析,將解析后的配置信息保存在鍵值對(duì)集合中;
所述功能處理模塊用于:當(dāng)客戶端查詢到鍵值對(duì)集合中存在功能配置信息時(shí),關(guān)閉與該功能配置信息對(duì)應(yīng)的功能插樁點(diǎn),從而關(guān)閉對(duì)應(yīng)的功能;
所述函數(shù)處理模塊用于:若客戶端查詢到鍵值對(duì)集合中存在函數(shù)配置信息,待客戶端執(zhí)行到與該函數(shù)配置信息對(duì)應(yīng)的函數(shù)插樁點(diǎn)處時(shí),關(guān)閉與該函數(shù)配置信息對(duì)應(yīng)的函數(shù)插樁點(diǎn),從而關(guān)閉對(duì)應(yīng)的函數(shù),客戶端跳過(guò)該函數(shù)繼續(xù)執(zhí)行其它函數(shù)。
在上述技術(shù)方案的基礎(chǔ)上,所述鍵值對(duì)集合包括功能集合、函數(shù)集合,所述功能配置信息保存在功能集合中,所述函數(shù)配置信息保存在函數(shù)集合中。
在上述技術(shù)方案的基礎(chǔ)上,所述功能配置信息、函數(shù)配置信息的數(shù)據(jù)格式均為JSON格式、GSON格式或者文本格式。
與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)如下:
1、本發(fā)明中的客戶端程序代碼中插入有功能插樁點(diǎn)和函數(shù)插樁點(diǎn),服務(wù)器端能夠遠(yuǎn)程控制這些插樁點(diǎn)的執(zhí)行流程邏輯,通過(guò)插樁點(diǎn)對(duì)客戶端中增加的實(shí)現(xiàn)新功能和新特性的異常函數(shù)進(jìn)行關(guān)閉操作,屏蔽因?yàn)樾鹿δ芤氲墓收?,解決客戶端不可用的問(wèn)題,保證客戶端的正常使用。
2、本發(fā)明通過(guò)函數(shù)插樁點(diǎn)能夠動(dòng)態(tài)的改變函數(shù)流程,當(dāng)某一個(gè)函數(shù)流程出現(xiàn)明顯異常時(shí),可以通過(guò)函數(shù)插樁點(diǎn)動(dòng)態(tài)跳過(guò)異常函數(shù)的執(zhí)行流程,從而快速屏蔽重大問(wèn)題點(diǎn)的出現(xiàn)。
3、本發(fā)明不用通過(guò)客戶端升級(jí)去解決重大問(wèn)題點(diǎn),直接通過(guò)服務(wù)器端下發(fā)插樁點(diǎn)配置信息,動(dòng)態(tài)控制插樁點(diǎn)的執(zhí)行流程。服務(wù)器端一旦更改,所有與服務(wù)器端網(wǎng)絡(luò)連接的客戶端都會(huì)跟著改變,從而快速修復(fù)所有與服務(wù)器端網(wǎng)絡(luò)連接的客戶端。
附圖說(shuō)明
圖1是本發(fā)明實(shí)施例中基于插樁方式快速屏蔽客戶端故障的方法的流程圖。
具體實(shí)施方式
下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)描述。
參見(jiàn)圖1所示,本發(fā)明實(shí)施例提供一種基于插樁方式快速屏蔽客戶端故障的方法,包括以下步驟:
S1、往客戶端中插入用于控制功能的功能插樁點(diǎn)和用于控制函數(shù)的函數(shù)插樁點(diǎn),當(dāng)發(fā)現(xiàn)客戶端的功能或函數(shù)出現(xiàn)故障時(shí),將出現(xiàn)故障的功能或函數(shù)名稱輸入服務(wù)器端,服務(wù)器端根據(jù)出現(xiàn)故障的功能生成功能配置信息,根據(jù)出現(xiàn)故障的函數(shù)生成函數(shù)配置信息,所述功能配置信息用于關(guān)閉出現(xiàn)故障的功能,所述函數(shù)配置信息用于關(guān)閉出現(xiàn)故障的函數(shù);
S2、客戶端啟動(dòng)時(shí),自動(dòng)向服務(wù)器端獲取已經(jīng)生成的功能配置信息、函數(shù)配置信息,進(jìn)行解析,將解析后的配置信息保存在鍵值對(duì)集合中;
S3、當(dāng)客戶端查詢到鍵值對(duì)集合中存在功能配置信息時(shí),關(guān)閉與該功能配置信息對(duì)應(yīng)的功能插樁點(diǎn),從而關(guān)閉對(duì)應(yīng)的功能;若客戶端查詢到鍵值對(duì)集合中存在函數(shù)配置信息,待客戶端執(zhí)行到與該函數(shù)配置信息對(duì)應(yīng)的函數(shù)插樁點(diǎn)處時(shí),關(guān)閉與該函數(shù)配置信息對(duì)應(yīng)的函數(shù)插樁點(diǎn),從而關(guān)閉對(duì)應(yīng)的函數(shù),客戶端跳過(guò)該函數(shù)繼續(xù)執(zhí)行其它函數(shù)。
上述方法中,鍵值對(duì)集合包括功能集合、函數(shù)集合,功能配置信息保存在功能集合中,所述函數(shù)配置信息保存在函數(shù)集合中。功能配置信息、函數(shù)配置信息的數(shù)據(jù)格式均可以為JSON格式、GSON格式或者文本格式,功能配置信息、函數(shù)配置信息均可以通過(guò)HTTP協(xié)議從服務(wù)器端傳輸?shù)娇蛻舳恕?/p>
本發(fā)明實(shí)施例還提供一種基于插樁方式快速屏蔽客戶端故障的系統(tǒng),該系統(tǒng)包括客戶端、服務(wù)器端、插樁點(diǎn)編輯模塊、故障輸入模塊,所述客戶端包括配置獲取模塊、功能處理模塊、函數(shù)處理模塊,其中,
插樁點(diǎn)編輯模塊用于:往客戶端中插入用于控制功能的功能插樁點(diǎn)和用于控制函數(shù)的函數(shù)插樁點(diǎn);
故障輸入模塊用于:當(dāng)發(fā)現(xiàn)客戶端的功能或函數(shù)出現(xiàn)故障時(shí),將出現(xiàn)故障的功能或函數(shù)名稱輸入服務(wù)器端;
服務(wù)器端用于:根據(jù)出現(xiàn)故障的功能生成功能配置信息,根據(jù)出現(xiàn)故障的函數(shù)生成函數(shù)配置信息,功能配置信息用于關(guān)閉出現(xiàn)故障的功能,函數(shù)配置信息用于關(guān)閉出現(xiàn)故障的函數(shù);
配置獲取模塊用于:客戶端啟動(dòng)時(shí),自動(dòng)向服務(wù)器端獲取已經(jīng)生成的功能配置信息、函數(shù)配置信息,進(jìn)行解析,將解析后的配置信息保存在鍵值對(duì)集合中;
功能處理模塊用于:當(dāng)客戶端查詢到鍵值對(duì)集合中存在功能配置信息時(shí),關(guān)閉與該功能配置信息對(duì)應(yīng)的功能插樁點(diǎn),從而關(guān)閉對(duì)應(yīng)的功能;
函數(shù)處理模塊用于:若客戶端查詢到鍵值對(duì)集合中存在函數(shù)配置信息,待客戶端執(zhí)行到與該函數(shù)配置信息對(duì)應(yīng)的函數(shù)插樁點(diǎn)處時(shí),關(guān)閉與該函數(shù)配置信息對(duì)應(yīng)的函數(shù)插樁點(diǎn),從而關(guān)閉對(duì)應(yīng)的函數(shù),客戶端跳過(guò)該函數(shù)繼續(xù)執(zhí)行其它函數(shù)。
上述系統(tǒng)中,鍵值對(duì)集合包括功能集合、函數(shù)集合,功能配置信息保存在功能集合中,所述函數(shù)配置信息保存在函數(shù)集合中。功能配置信息、函數(shù)配置信息的數(shù)據(jù)格式均可以為JSON格式、GSON格式或者文本格式,功能配置信息、函數(shù)配置信息均可以通過(guò)HTTP協(xié)議從服務(wù)器端傳輸?shù)脚渲毛@取模塊。
本發(fā)明中出現(xiàn)的名詞解釋如下:
CS:Client/Server架構(gòu),即客戶端/服務(wù)器端架構(gòu)。是大家熟知的客戶端系統(tǒng)體系結(jié)構(gòu),通過(guò)將任務(wù)合理分配到客戶端和服務(wù)器端,降低了系統(tǒng)的通訊開(kāi)銷,需要安裝客戶端才可進(jìn)行管理操作。
插樁點(diǎn):指的是一種開(kāi)關(guān)函數(shù),能夠在服務(wù)器端的控制下進(jìn)行動(dòng)態(tài)的開(kāi)啟或者關(guān)閉。插樁點(diǎn)是在編寫代碼的時(shí)候在每個(gè)函數(shù)里面進(jìn)行添加處理的,是在客戶端開(kāi)發(fā)階段進(jìn)行插入的。插樁點(diǎn)包括功能插樁點(diǎn)和函數(shù)插樁點(diǎn)。
功能插樁點(diǎn):功能插樁點(diǎn)用于控制功能界面的開(kāi)關(guān),數(shù)據(jù)形式是(功能標(biāo)示符:功能名稱:開(kāi)關(guān)狀態(tài),例如:{ope:soubo:false},ope為功能標(biāo)示符,soubo為功能名稱,false為該功能名稱所對(duì)應(yīng)的開(kāi)關(guān)狀態(tài),false表示函數(shù)需要關(guān)閉,ture表示函數(shù)需要開(kāi)啟),主要作用是對(duì)功能界面進(jìn)行開(kāi)啟或者關(guān)閉。
函數(shù)插樁點(diǎn):函數(shù)插樁點(diǎn)用于控制具體函數(shù)的開(kāi)關(guān),數(shù)據(jù)形式是(函數(shù)標(biāo)示符:函數(shù)名稱:開(kāi)關(guān)狀態(tài),例如{fun:setNumber:false},其中fun是函數(shù)標(biāo)示符,setNumber是函數(shù)名稱,false是表示函數(shù)需要關(guān)閉,如果該位為true表示函數(shù)需要開(kāi)啟),主要作用是對(duì)具體函數(shù)進(jìn)行開(kāi)啟或者關(guān)閉。
鍵值對(duì):可以理解為鍵和值組合在一起成一對(duì),鍵是唯一標(biāo)示符,是函數(shù)的名稱,用于快速索引到該鍵所對(duì)應(yīng)的數(shù)據(jù),值是鍵所對(duì)應(yīng)的數(shù)據(jù),即該函數(shù)的開(kāi)關(guān)信息。
HTTP:超文本傳輸協(xié)議(HTTP,Hyper Text Transfer Protocol)是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議。所有的WWW文件都必須遵守這個(gè)標(biāo)準(zhǔn)。設(shè)計(jì)HTTP最初的目的是為了提供一種發(fā)布和接收HTML頁(yè)面的方法。
JSON:JSON(JavaScript Object Notation)是一種輕量級(jí)的數(shù)據(jù)交換格式。它基于ECMAScript的一個(gè)子集。JSON采用完全獨(dú)立于語(yǔ)言的文本格式,但是也使用了類似于C語(yǔ)言家族的習(xí)慣(包括C、C++、C#、Java、JavaScript、Perl、Python等)。
本發(fā)明的原理闡述如下:
本發(fā)明通過(guò)插樁點(diǎn)來(lái)動(dòng)態(tài)控制客戶端的執(zhí)行流程,當(dāng)客戶端出現(xiàn)重大bug的時(shí)候,服務(wù)器端可以通過(guò)HTTP來(lái)下發(fā)關(guān)閉插樁點(diǎn)的配置信息給客戶端,從而對(duì)插樁點(diǎn)進(jìn)行控制。插樁點(diǎn)接收到服務(wù)器端傳遞過(guò)來(lái)的信息后,動(dòng)態(tài)的調(diào)整插樁點(diǎn)的開(kāi)關(guān)狀態(tài),從而實(shí)現(xiàn)動(dòng)態(tài)調(diào)整函數(shù)執(zhí)行流程的順序,將有異常信息的函數(shù)繞過(guò),從而達(dá)到快速補(bǔ)救重大bug,同時(shí)又不對(duì)整個(gè)程序產(chǎn)生重大影響。
客戶端啟動(dòng)時(shí),會(huì)向服務(wù)器端主動(dòng)請(qǐng)求插樁點(diǎn)的配置信息,服務(wù)器端收到客戶端的請(qǐng)求后,服務(wù)器端返回的配置信息保存在JSON格式的數(shù)據(jù)中,通過(guò)HTTP協(xié)議將JSON數(shù)據(jù)傳輸?shù)娇蛻舳?。JSON格式里面有2種類型的數(shù)據(jù),第一種是功能插樁點(diǎn)的配置信息,即功能配置信息,第二種是函數(shù)插樁點(diǎn)的配置信息,即函數(shù)配置信息。
JSON解析就是將這種通用的數(shù)據(jù)格式里面的數(shù)據(jù)獲取出來(lái),并存儲(chǔ)在其他變量中??蛻舳送ㄟ^(guò)解析JSON數(shù)據(jù),得到配置信息,并將配置信息保存在鍵值對(duì)集合中。這一步中主要通過(guò)解析JSON數(shù)據(jù),將JSON數(shù)據(jù)中的插樁點(diǎn)配置信息保存在靜態(tài)內(nèi)存中。之所以保存在靜態(tài)內(nèi)存中,是為了能夠方便且快速的去查詢這些開(kāi)關(guān)信息,提高訪問(wèn)的便捷性。靜態(tài)內(nèi)存中的數(shù)據(jù)在整個(gè)客戶端全局任何一個(gè)地方都是可以獲取到的。
同時(shí),功能插樁點(diǎn)配置信息是保存在功能集合listOpe(listOpe是一個(gè)集合容器,其中用于存放功能插樁點(diǎn)信息)中的,函數(shù)插樁點(diǎn)配置信息是保存在函數(shù)集合listFunc(listFunc是一個(gè)集合容器,其中用于存放函數(shù)插樁點(diǎn)配置信息)中的,將其分開(kāi)保存主要目的是為了后期方便查詢功能集合和函數(shù)集合,快速找到插樁點(diǎn)配置信息,提高查詢效率。由于鍵值對(duì)是通過(guò)鍵來(lái)獲取值的,鍵又是函數(shù)名來(lái)進(jìn)行存儲(chǔ)的,所以就可以直接通過(guò)函數(shù)名這個(gè)鍵來(lái)獲取該函數(shù)的開(kāi)關(guān)信息。如果從集合中獲取到該函數(shù)的值為false,表明關(guān)閉,true表明打開(kāi)。功能插樁點(diǎn)的鍵是根據(jù)功能名稱提前定義好的,并且與服務(wù)器端協(xié)商好具體的值。插樁點(diǎn)功能很單一,就是在對(duì)應(yīng)的集合中獲取鍵值對(duì)的值,根據(jù)對(duì)應(yīng)值的不同采取不同的操作。
當(dāng)客戶或者管理人員在使用過(guò)程中發(fā)現(xiàn)客戶端中的某一個(gè)功能有導(dǎo)致應(yīng)用不能正常使用等嚴(yán)重問(wèn)題的時(shí)候,服務(wù)器端這個(gè)時(shí)候會(huì)下發(fā)給客戶端關(guān)閉該功能的配置信息,功能插樁點(diǎn)如果發(fā)現(xiàn)有功能集合中有關(guān)閉功能的配置信息,則會(huì)將該信息通過(guò)消息的形式通知給界面處理邏輯,界面處理邏輯接受到關(guān)閉某個(gè)功能的配置信息,界面處理邏輯會(huì)將需要關(guān)閉的功能界面進(jìn)行隱藏然后刷新界面。如果功能集合中有打開(kāi)功能的配置信息,則會(huì)將該信息通過(guò)消息的形式通知給界面處理邏輯,界面處理邏輯接收到打開(kāi)某個(gè)功能的配置信息,界面處理邏輯將需要打開(kāi)的功能界面進(jìn)行顯示然后刷新界面。這樣,通過(guò)服務(wù)器端下發(fā)的功能配置信息就能夠動(dòng)態(tài)控制界面上的功能顯示和關(guān)閉的效果了。當(dāng)界面上某個(gè)功能會(huì)導(dǎo)致應(yīng)用退出等嚴(yán)重問(wèn)題時(shí),服務(wù)器端可以通過(guò)下發(fā)關(guān)閉該功能的配置信息進(jìn)行應(yīng)急解決,即通過(guò)屏蔽部分功能從而達(dá)到解決非常嚴(yán)重的問(wèn)題的目的,確保客戶端其他功能可用。這樣就留有足夠的時(shí)間給開(kāi)發(fā)人員緊急處理掉嚴(yán)重的問(wèn)題,然后進(jìn)行升級(jí)處理。
當(dāng)管理人員在使用過(guò)程中發(fā)現(xiàn)某一個(gè)具體的函數(shù)出現(xiàn)了導(dǎo)致應(yīng)用程序不能正常使用的嚴(yán)重問(wèn)題時(shí),服務(wù)器端會(huì)下發(fā)給客戶端關(guān)閉該函數(shù)的配置信息??蛻舳送ㄟ^(guò)解析到關(guān)閉該函數(shù)的配置信息后對(duì)函數(shù)進(jìn)行屏蔽,具體實(shí)施流程為:如果發(fā)現(xiàn)函數(shù)插樁點(diǎn)是需要關(guān)閉的,當(dāng)客戶端執(zhí)行到插樁點(diǎn)處的時(shí)候,函數(shù)插樁點(diǎn)通過(guò)遍歷函數(shù)插樁點(diǎn)集合,發(fā)現(xiàn)該函數(shù)需要關(guān)閉。那么函數(shù)插樁點(diǎn)將會(huì)立即通過(guò)返回語(yǔ)句返回空,因?yàn)樵摵瘮?shù)已經(jīng)返回了,所以該函數(shù)剩余部分將不會(huì)再被執(zhí)行了,客戶端跳過(guò)異常函數(shù)繼續(xù)執(zhí)行。如果發(fā)現(xiàn)函數(shù)插樁點(diǎn)是需要打開(kāi)的,這個(gè)時(shí)后執(zhí)行到插樁點(diǎn)處的時(shí)候,函數(shù)插樁點(diǎn)通過(guò)遍歷函數(shù)插樁點(diǎn)集合,發(fā)現(xiàn)該函數(shù)需要打開(kāi)。那么函數(shù)插樁點(diǎn)將不會(huì)做任何處理,讓該函數(shù)能夠正常流程執(zhí)行下去,因?yàn)楹瘮?shù)插樁點(diǎn)沒(méi)有做任何其他處理,所以該函數(shù)能夠按照原來(lái)邏輯進(jìn)行正常處理。
客戶端每次升級(jí),都會(huì)添加一些新功能,這些新功能可能具有潛在的bug。默認(rèn)狀態(tài)下,所有的功能插樁點(diǎn)和函數(shù)插樁點(diǎn)都是打開(kāi)的。服務(wù)器端也可以下發(fā)打開(kāi)功能插樁點(diǎn)和函數(shù)插樁點(diǎn)的配置信息,但是,為了快速使因新功能bug導(dǎo)致不能使用的客戶端恢復(fù)正常,服務(wù)器端一般下發(fā)的是關(guān)閉功能插樁點(diǎn)和函數(shù)插樁點(diǎn)的配置信息,用于屏蔽出現(xiàn)故障的函數(shù),達(dá)到使客戶端恢復(fù)正常使用的效果。此時(shí)客戶端中的新功能bug依然存在,只是由于插樁點(diǎn)關(guān)閉而沒(méi)有執(zhí)行,保證客戶端能夠正常使用??蛻舳顺绦驁?zhí)行的時(shí)候會(huì)去存儲(chǔ)鍵值對(duì)集合的靜態(tài)內(nèi)存區(qū)域中去查詢,并跳過(guò)需要關(guān)閉的代碼塊,從而達(dá)到根據(jù)配置信息進(jìn)行動(dòng)態(tài)執(zhí)行的目的。由于服務(wù)器端是通過(guò)網(wǎng)絡(luò)下發(fā)插樁點(diǎn)的配置信息,所以能夠通過(guò)網(wǎng)絡(luò)快速對(duì)插樁點(diǎn)進(jìn)行動(dòng)態(tài)調(diào)整。這樣就能夠保證當(dāng)客戶端中一個(gè)功能模塊出現(xiàn)嚴(yán)重故障的時(shí)候,該故障能夠快速屏蔽,同時(shí)保證其他功能模塊的正常運(yùn)行。
本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明實(shí)施例進(jìn)行各種修改和變型,倘若這些修改和變型在本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則這些修改和變型也在本發(fā)明的保護(hù)范圍之內(nèi)。
說(shuō)明書中未詳細(xì)描述的內(nèi)容為本領(lǐng)域技術(shù)人員公知的現(xiàn)有技術(shù)。