基於完成埠模型的海量集中器並發處理方法
2023-05-17 11:27:36
專利名稱:基於完成埠模型的海量集中器並發處理方法
技術領域:
本發明涉及電能表遠程集抄和分布式計算領域,利用分布式計算技術提升電能表遠程集抄系統中主站伺服器能承受的客戶端並發數,為一種用於電能信息採集的海量集中器並發處理方法。
背景技術:
符合現代化電力管理要求的遠程集中抄表系統是智能電網的重要組成部分。一般來說電錶遠程集抄系統包括主站、數據採集設備、採集點監控設備和通信網絡組成。主站是整個系統的管理核心,負責整個系統的電能信息採集、用電管理以及數據管理和數據應用等。由於我國採取「一戶一表」制,遠程集中抄表系統的數據採集設備數量多、數據量巨大,並且採集點極其分散。遠程集中抄表系統的這些特點要求主站平臺能夠高效地並發 處理大規模的客戶端,特別是必須高效管理數據採集設備的接入,避免系統出現丟包、癱瘓等問題。現有很多遠程集抄系統的前置伺服器採取的通信模型是為每個客戶端擁有一個套接字,並且為每個客戶端創建一個線程來完成數據收發的控制。這種方法的缺點是創建多個線程的開銷以及線程啟動後的上下文切換帶來的資源和時間開銷。且有以下缺點
(I)系統資源有限。伺服器的中央處理器和內存資源是有限的,不能無限制的擴充。月艮務器造成系統癱瘓。(2)系統資源珍貴。如果中央處理器在這些線程之間不停的切換,大量客戶端等待線程池分配線程,這樣就會造成系統假死或者系統癱瘓。
發明內容
由於主站平臺的前置伺服器的帶寬資源和系統資源有限,所能接入的客戶端並發數會遇到瓶頸。並且連接主站平臺的集中器數量超過一定值後,系統平臺出現阻塞或者癱瘓。本發明為了解決主站平臺的並發數少和客戶端管理低效等問題,提供一種集中器終端接入管理方法,提高主站平臺的並發處理能力。本發明的技術方案
主站是整個遠程集抄系統的管理核心,負責整個系統的電能信息採集、用電管理以及數據管理和數據應用等。整個遠程集抄系統的組成如圖I所示。前置伺服器是主站的重要組成部分,前置伺服器在主站平臺中擔負著主站平臺相關模塊與各種電能信息採集終端交互指令和數據的各項任務的調度和管理。主站平臺伺服器負責用電管理以及數據管理和數據應用等。本發明提出一種用於電能信息採集的海量集中器並發處理方法,技術方案包括以下兩方面。第一方面,前置機伺服器需要完成的工作包括
前置伺服器創建連接代理,用於接受集中器終端的連接請求。前置伺服器創建工作線程池,線程池中線程的數量為前置伺服器的中央處理器數目的兩倍,這些工作線程等待連接代理分配連接請求;前置伺服器創建伺服器端套接字和監聽埠,並將此套接字和埠綁定;前置伺服器將連接代理與伺服器端套接字綁定;前置伺服器在創建的監聽埠上監聽連接請求,等待集中器客戶端的連接請求。第二方面,集中器的通信模塊向前置伺服器發送連接請求,發送請求的目的IP位址是前置伺服器的IP位址,目的埠是第三步創建的監聽埠。集中器客戶端的通信模塊完成集中器與主站平臺的通信操作,包括連接、消息收發操作。連接代理按照連接請求先進先出的原則為每個空閒的工作線程分配連接請求。每個工作線程的輸入輸出數據由主站平臺伺服器上的數據管理程序處理,工作線程在處理完連接請求後變成空閒狀態。 這樣就避免前置伺服器為每一個集中器客戶端單獨分配系統資源,提高了資源的利用率,提高了主站平臺的前置伺服器的並發數。與現有技術相比,本發明所具有的優點
I)解決方案達到的效果根據目前的測試,支持的並發數為大於兩萬。2)系統資源利用率提高,例如中央處理器的最大佔用率顯著降低。
圖I是電錶遠程集抄系統的組成示意圖。圖2是本發明實施方案的組成示意圖。圖3是本發明實施流程示意圖。
具體實施例方式 如圖I、圖2所示,本發明主站平臺包括前置伺服器和主站平臺伺服器,它們對集中器客戶端進行通信連接、抄表數據等方面的管理。
具體實施方式
如圖3所示,包括以下九個步驟。(I)前置伺服器創建一個連接代理。連接代理用於接收和保存集中器客戶端的連接請求,形成連接請求隊列。連接代理駐留在前置伺服器上。(2)前置伺服器創建工作線程池。線程池中線程的數目為前置伺服器的中央處理器數目的兩倍。(3)前置伺服器創建伺服器端套接字和監聽埠,
(4)前置伺服器將第(3)步創建的套接字和埠綁定。(5)將第(I)步創建的連接代理與第(3)步創建的伺服器端套接字進行綁定。(6)前置伺服器在第(3)步創建的埠上監聽連接請求,等待集中器客戶端的連接。(7)集中器客戶端的通信模塊向前置伺服器發送連接請求,發送請求的目的IP位址是前置伺服器的IP位址,目的埠是第三步創建的監聽埠。如圖3中所示,集中器客戶端N的通信模塊發送連接請求給連接代理。集中器客戶端的通信模塊完成集中器與主站平臺的通信操作,包括連接、消息收發等操作。(8)連接代理接受集中器客戶端連接請求,並將連接請求分配給空閒的工作線程。如圖3中所示,連接代理將連接請求分配給工作線程池的一個空閒線程。(9)每個工作線程解析出每個數據包中的數據部分,並將數據部分交給數據管理程序處理,工作線程在處理完連接請求後變成空閒狀態。數據管理程序駐留在主站平臺伺服器上,數據管理程序按照中華人民共和國電力行業標準《電能信息採集與管理系統》實現,數據管理程序的實現不在本發明的範圍內,只按照數據管理程序的輸入輸出接口與數據管理程序進行數據交互。如圖3中所示,工作線程將解析出的數據部分輸出給數據管理程序。本發明中數據採集設備負責對個採集點電能信息的採集和監控,包括各種應用場所的電能信息採集終端。圖2中的集中器客戶端即為數據採集設備。採集點監控設備是電能信息的採集源和監控對象,包括電能表和相關測量設備、用戶配電開關、無功補償裝置以及其他現場智能設備等。通信網絡既完成主 站和數據採集設備之間的通信傳輸,也完成數據採集設備和採集點監控設備之間的通信傳輸,主站和採集點監控設備之間不直接通信。在本發明中,主站平臺的前置伺服器和數據採集設備之間的通信傳輸協議採用TCP/IP協議。本發明涉及主站平臺伺服器和前置伺服器的海量客戶端的並發處理方法,即主站平臺能並發處理海量數據採集設備。因為主站平臺的前置伺服器不可能具有無限制的帶寬資源和無限制的系統資源,也不可能為每個集中器終端創建獨立系統資源。因此本發明設計一種高效的海量集中器並發處理和線程管理方法,基於完成埠模型的海量集中器並發處理方法,解決現有主站平臺的並發數少和集中器接入管理低效等問題,使主站平臺具有大並發量連接處理的可伸縮性。
權利要求
1.基於完成埠模型的海量集中器並發處理方法,該方法具體包括以下步驟 步驟(I)前置伺服器創建一個連接代理,用於接收和保存集中器客戶端的連接請求,形成連接請求隊列; 步驟(2)前置伺服器創建工作線程池,線程池中線程的數目為前置伺服器的中央處理器數目的兩倍; 步驟(3)連接代理接受集中器客戶端連接請求,並將連接請求分配給空閒的工作線程; 步驟(4)每個工作線程解析出每個數據包中的數據部分,並將數據部分交給數據管理程序處理,工作線程在處理完連接請求後變成空閒狀態。
2.根據權利要求I所述的方法,其特徵在於,在步驟(2)和(3)之間還包括步驟A:前置伺服器創建伺服器端套接字和監聽埠,並將此套接字和埠綁定。
3.根據權利要求3所述的方法,其特徵在於,在步驟(2)和(3)之間,並且在步驟A之後還包括步驟B:前置伺服器將步驟(I)創建的連接代理與伺服器端套接字綁定。
4.根據權利要求3所述的方法,其特徵在於,在步驟(2)和(3)之間,並且在步驟B之後還包括步驟C :前置伺服器在步驟A創建的埠上監聽連接請求,等待集中器客戶端的連接。
5.根據權利要求4所述的方法,其特徵在於,在步驟(2)和(3)之間,並且在步驟C之後還包括步驟D :前置伺服器將步驟(I)創建的連接代理與步驟A創建的伺服器端套接字綁定。
6.根據權利要求5所述的方法,其特徵在於,在步驟(2)和(3)之間,並且在步驟D之後還包括步驟E :集中器客戶端的通信模塊向前置伺服器發送連接請求,發送請求的目的IP位址是前置伺服器的IP位址,目的埠是步驟A創建的監聽埠。
全文摘要
本發明為了解決電能表遠程集抄系統中主站平臺的並發數少和客戶端管理低效等問題,提供基於完成埠模型的海量集中器並發處理方法,以提高主站平臺的並發處理能力。該方法具體包括以下步驟第一步,前置伺服器創建連接代理,用於接受集中器客戶端的連接請求;第二步,前置伺服器創建工作線程池,線程池中線程的數量為前置伺服器的中央處理器數目的兩倍,這些工作線程等待連接代理分配連接請求;第三步,連接代理按照連接請求先進先出的原則為每個空閒的工作線程分配連接請求;第四步,每個工作線程的輸入輸出數據由主站平臺伺服器上的數據管理程序處理,工作線程在處理完連接請求後變成空閒狀態。
文檔編號H04L29/08GK102904964SQ201210415349
公開日2013年1月30日 申請日期2012年10月26日 優先權日2012年10月26日
發明者王軍, 程勇, 楊玲, 朱永生, 徐鈞磊, 水泱, 朱雪剛, 王正路 申請人:南京信息工程大學