本發(fā)明屬于電網(wǎng)調(diào)度自動化領(lǐng)域,具體涉及一種基于zookeeper的電力系統(tǒng)設(shè)備模型關(guān)鍵字生成方法。
背景技術(shù):
現(xiàn)如今,國民經(jīng)濟高速發(fā)展,電力供給需求呈現(xiàn)幾何級數(shù)增長,電力系統(tǒng)結(jié)構(gòu)越來越復(fù)雜,調(diào)度自動化業(yè)務(wù)不斷拓展,運行方式變化越來越頻繁,因而電網(wǎng)運行安全監(jiān)控手段也越來越受到廣泛的應(yīng)用。
設(shè)備模型是電網(wǎng)運行的基礎(chǔ),設(shè)備模型數(shù)據(jù)的準(zhǔn)確性直接影響到電網(wǎng)運行的安全性,設(shè)備模型數(shù)據(jù)維護的效率直接影響到電網(wǎng)運行的效率。zookeeper技術(shù)在多線程并發(fā)控制中有良好的性能及穩(wěn)定性表現(xiàn),基于zookeeper的電力系統(tǒng)設(shè)備模型關(guān)鍵字生成方法能夠?qū)υO(shè)備模型的插入操作時關(guān)鍵字生成效率有顯著提升,是電網(wǎng)自動化設(shè)備模型維護的創(chuàng)新實踐,將為實現(xiàn)調(diào)度智能化提供一個很好的基礎(chǔ),因此具有十分廣闊的應(yīng)用前景。
技術(shù)實現(xiàn)要素:
為了實現(xiàn)上述目的,本發(fā)明提出一種基于zookeeper的電力系統(tǒng)設(shè)備模型關(guān)鍵字生成方法,該方法能夠有效的提升電網(wǎng)設(shè)備模型的維護效率,具有通用性和有效性。
實現(xiàn)上述技術(shù)目的,達到上述技術(shù)效果,本發(fā)明通過以下技術(shù)方案實現(xiàn):
一種基于zookeeper的電力系統(tǒng)設(shè)備模型關(guān)鍵字生成方法,包括:
對各模型服務(wù)和zookeeper進行初始化;
模型服務(wù)a響應(yīng)并解析客戶端發(fā)送的請求報文,判讀電力系統(tǒng)中是否同時有模型服務(wù)b響應(yīng)對應(yīng)設(shè)備類型的設(shè)備模型插入操作;
根據(jù)判斷結(jié)果,模型服務(wù)a執(zhí)行設(shè)定的對應(yīng)操作,直至完成對應(yīng)設(shè)備類型的設(shè)備模型插入操作。
進一步地,所述對各模型服務(wù)和zookeeper進行初始化,具體為:
對電力系統(tǒng)中的服務(wù)器內(nèi)的模型服務(wù)進行初始化,同時在zookeeper中建立包括設(shè)備類型、地區(qū)編碼、設(shè)備最大id記錄號三層永久節(jié)點的數(shù)據(jù)目錄結(jié)構(gòu)。
進一步地,所述設(shè)備類型、地區(qū)編碼、設(shè)備最大id記錄號中的初始數(shù)據(jù)均為電力系統(tǒng)數(shù)據(jù)庫中原始存儲的設(shè)備類型、地區(qū)編碼、設(shè)備最大id記錄號。
進一步地,所述根據(jù)判斷結(jié)果,模型服務(wù)a執(zhí)行設(shè)定的對應(yīng)操作,直至完成對應(yīng)設(shè)備類型的設(shè)備模型插入操作,具體為:
若存在模型服務(wù)b響應(yīng)對應(yīng)設(shè)備類型的設(shè)備模型插入操作,則模型服務(wù)a不進行對應(yīng)設(shè)備類型的設(shè)備模型插入操作,直至模型服務(wù)b的響應(yīng)操作結(jié)束,模型服務(wù)a在zookeeper中對應(yīng)設(shè)備類型節(jié)點下添加模型服務(wù)a所在服務(wù)器ip臨時節(jié)點;當(dāng)模型服務(wù)a完成對應(yīng)設(shè)備類型的設(shè)備模型插入操作后,刪除對應(yīng)的服務(wù)器ip臨時節(jié)點,此時zookeeper中設(shè)備最大id記錄號節(jié)點中的值加1。
進一步地,所述的一種基于zookeeper的電力系統(tǒng)設(shè)備模型關(guān)鍵字生成方法,還包括:若不存在模型服務(wù)b響應(yīng)對應(yīng)設(shè)備類型的設(shè)備模型插入操作,則模型服務(wù)a在zookeeper中對應(yīng)設(shè)備類型節(jié)點下添加模型服務(wù)a所在服務(wù)器ip臨時節(jié)點;當(dāng)模型服務(wù)a完成對應(yīng)設(shè)備類型的設(shè)備模型插入操作后,刪除對應(yīng)的服務(wù)器ip臨時節(jié)點,此時zookeeper中設(shè)備最大id記錄號節(jié)點中的值加1。
進一步地,所述模型服務(wù)a不進行對應(yīng)設(shè)備類型的設(shè)備模型插入操作,直至模型服務(wù)b的響應(yīng)操作結(jié)束,具體為:模型服務(wù)a與zookeeper的watcher模塊配合,實現(xiàn)服務(wù)請求等待。
進一步地,所述客戶端發(fā)送的請求報文中包含設(shè)備類型信息、設(shè)備模型的操作類型、設(shè)備模型參數(shù)信息。
進一步地,所述設(shè)備模型的操作類型包括:更新、插入和刪除。
本發(fā)明的有益效果:
本發(fā)明的基于zookeeper的電力系統(tǒng)設(shè)備模型關(guān)鍵字生成方法,對電網(wǎng)設(shè)備模型維護效率有顯著提升,縮短了設(shè)備模型維護時間,同時,保障了電網(wǎng)安全穩(wěn)定運行。
附圖說明
圖1為本發(fā)明的設(shè)備模型維護流程示意圖;
圖2為zookeeperid生成中心數(shù)據(jù)目錄圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
下面結(jié)合附圖對本發(fā)明的應(yīng)用原理作詳細的描述。
電力系統(tǒng)中存在很多服務(wù)器,在每臺服務(wù)器里都會安裝電力系統(tǒng)設(shè)備模型維護服務(wù)程序(以下簡稱模型服務(wù))。圖1中的“數(shù)據(jù)操作”框指的設(shè)備模型的操作類型為“更新”。
本發(fā)明提出一種基于zookeeper的電力系統(tǒng)設(shè)備模型關(guān)鍵字生成方法,該方法能夠有效的提升電網(wǎng)設(shè)備模型的維護效率,具有通用性和有效性;如圖1所示,具體包括以下步驟:
s1:對各模型服務(wù)和zookeeper進行初始化;
前述的所述對各模型服務(wù)和zookeeper進行初始化,具體為:
對電力系統(tǒng)中的服務(wù)器內(nèi)的模型服務(wù)進行初始化,同時在zookeeper中建立包括設(shè)備類型、地區(qū)編碼、設(shè)備最大id記錄號三層永久節(jié)點的數(shù)據(jù)目錄結(jié)構(gòu),利用zookeeper永久節(jié)點的特性,可保證設(shè)備記錄鍵字(設(shè)備類型、地區(qū)編碼、設(shè)備最大id記錄號,設(shè)備最大id記錄號用于代表新插入的設(shè)備的編碼)的完整性;前述的在zookeeper中建立三層永久節(jié)點的數(shù)據(jù)目錄結(jié)構(gòu)采用現(xiàn)有的zookeeper分布式鎖技術(shù)來實現(xiàn),此處不贅述。
其中,所述設(shè)備類型、地區(qū)編碼、設(shè)備最大id記錄號中的初始數(shù)據(jù)均為電力系統(tǒng)數(shù)據(jù)庫中原始存儲的設(shè)備類型、地區(qū)編碼、設(shè)備最大id記錄號。
本發(fā)明中所述的設(shè)備類型用于標(biāo)識設(shè)備所屬歸類(如:斷路器),地區(qū)編碼用于標(biāo)識設(shè)備所屬地區(qū)(如:江蘇),設(shè)備最大id記錄號用于設(shè)備的編號(如:9999)。
利用zookeeper中設(shè)備類型、地區(qū)編碼、設(shè)備最大id記錄號三層永久節(jié)點的數(shù)據(jù)目錄結(jié)構(gòu),可以實現(xiàn):(a)模型服務(wù)的負載均衡;(b)不同表號的設(shè)備模型插入操作的并發(fā),提升設(shè)備模型維護效率。
s2:模型服務(wù)a響應(yīng)并解析客戶端發(fā)送的請求報文,判讀電力系統(tǒng)中是否同時有模型服務(wù)b響應(yīng)對應(yīng)設(shè)備類型的設(shè)備模型插入操作;
所述客戶端發(fā)送的請求報文中包含設(shè)備類型信息、設(shè)備模型的操作類型、設(shè)備模型參數(shù)信息。優(yōu)選地,所述設(shè)備模型的操作類型包括:更新、插入和刪除;只有當(dāng)設(shè)備模型的操作類型為插入時,才需要生成關(guān)鍵字;當(dāng)設(shè)備模型的操作類型為更新和刪除時,不需要生成關(guān)鍵字;
所述判讀電力系統(tǒng)中是否同時有模型服務(wù)b響應(yīng)對應(yīng)設(shè)備類型的設(shè)備模型插入操作是通過判斷zookeeper中是否有模型服務(wù)進行對應(yīng)設(shè)備類型的設(shè)備模型插入操作。
s3:根據(jù)判斷結(jié)果,模型服務(wù)a執(zhí)行設(shè)定的對應(yīng)操作,直至完成對應(yīng)設(shè)備類型的設(shè)備模型插入操作。
步驟s3具體包括以下步驟:
s301:若存在模型服務(wù)b響應(yīng)對應(yīng)設(shè)備類型的設(shè)備模型插入操作,則模型服務(wù)a不進行對應(yīng)設(shè)備類型的設(shè)備模型插入操作,直至模型服務(wù)b的響應(yīng)操作結(jié)束,模型服務(wù)a在zookeeper中對應(yīng)設(shè)備類型節(jié)點下添加模型服務(wù)a所在服務(wù)器ip臨時節(jié)點;當(dāng)模型服務(wù)a完成對應(yīng)設(shè)備類型的設(shè)備模型插入操作后,刪除對應(yīng)的服務(wù)器ip臨時節(jié)點,此時zookeeper中設(shè)備最大id記錄號節(jié)點中的值加1。
其中,所述模型服務(wù)a不進行對應(yīng)設(shè)備類型的設(shè)備模型插入操作,直至模型服務(wù)b的響應(yīng)操作結(jié)束,具體為:模型服務(wù)a與zookeeper的watcher模塊配合,實現(xiàn)服務(wù)請求等待。
s302:所述的一種基于zookeeper的電力系統(tǒng)設(shè)備模型關(guān)鍵字生成方法,還包括:若不存在模型服務(wù)b響應(yīng)對應(yīng)設(shè)備類型的設(shè)備模型插入操作,則模型服務(wù)a在zookeeper中對應(yīng)設(shè)備類型節(jié)點下添加模型服務(wù)a所在服務(wù)器ip臨時節(jié)點;當(dāng)模型服務(wù)a完成對應(yīng)設(shè)備類型的設(shè)備模型插入操作后,刪除對應(yīng)的服務(wù)器ip臨時節(jié)點,此時zookeeper中設(shè)備最大id記錄號節(jié)點中的值加1。
上述方案中,利用服務(wù)器ip臨時節(jié)點,可以解決:(a)同一設(shè)備類型的設(shè)備模型插入操作并發(fā)問題;(b)模型服務(wù)異常情況下帶來的系統(tǒng)死鎖等待問題;
上述方案中,通過模型服務(wù)增加設(shè)備模型,更換zookeeper三層永久節(jié)點中設(shè)備最大id記錄號;再次增加設(shè)備模型時利用zookeeper三層永久節(jié)點中設(shè)備最大id記錄號信息,可以解決設(shè)備模型編號重復(fù)使用的問題。
綜上所述:
本發(fā)明的基于zookeeper的電力系統(tǒng)設(shè)備模型關(guān)鍵字生成方法,對電網(wǎng)設(shè)備模型維護效率有顯著提升,縮短了設(shè)備模型維護時間,同時,保障了電網(wǎng)安全穩(wěn)定運行。
以上顯示和描述了本發(fā)明的基本原理和主要特征和本發(fā)明的優(yōu)點。本行業(yè)的技術(shù)人員應(yīng)該了解,本發(fā)明不受上述實施例的限制,上述實施例和說明書中描述的只是說明本發(fā)明的原理,在不脫離本發(fā)明精神和范圍的前提下,本發(fā)明還會有各種變化和改進,這些變化和改進都落入要求保護的本發(fā)明范圍內(nèi)。本發(fā)明要求保護范圍由所附的權(quán)利要求書及其等效物界定。