The invention discloses a solution of high availability, high concurrency and high performance distributed remote meter reading acquisition server, in which multiple acquisition servers use Orleans to form a cluster; at the same time, there is only one task distributor in the process of running the acquisition server: Master server Master server generates meter reading records regularly to t_running table, and regularly to t_running table according to priority level. The sequential tasks that need to be executed when the time is up are acquired into memory, only part of the tasks are acquired at a time; the tasks acquired from the database exist in a memory queue; the invention also discloses some other technical features. The invention increases the stability and high availability of the whole acquisition system, does not affect the operation of the whole system when one or several machines in the cluster go down; the balanced distributed processing mode enables each machine in the cluster to handle relatively uniform tasks, makes the overall resources more reasonable utilization, and avoids some server tasks overloading and some servers processing without tasks.
【技術實現步驟摘要】
高可用高并發高性能分布式遠程抄表采集服務器解決方法
本專利技術涉及計算機軟件系統中與智能電表、集中器或者網關的數據采集、數據交互的服務器端系統架構、系統設計的解決方案。尤其涉及大批量、實時性要求較高的智能電表的數據采集和數據交互系統,特別涉及一種高可用高并發高性能分布式遠程抄表采集服務器解決方法。
技術介紹
隨著電子技術的發展出現越來越多的用到小型智能終端設備如各類傳感器、智能手機、智能電表、網絡攝像機等等,這是一個物聯網的時代;光有智能設備不足以滿足人類的要求,智能設備被安裝后人們要求對每個角落的每塊設備進行遠程訪問控制,尤其是需要實時的采集到這些智能設備的各種數據并對這些數據進行加工處理。本專利技術不涉及對大數據的加工處理和分析,本專利技術只針對如何遠程實時高效的與智能電表交互數據。其中終端智能電表可通過GPRS、以太網接入到主站服務器,也可以通過plc或者RF連接到集中器或者網關,再由集中器或者網關連接到主站。比如現在需要采集一個超大城市的所有智能電表數據(如實時采集每15分鐘的電能負荷曲線),有如下一系列需求或前提條件:·這個城市可能安裝了超過500萬只智能電表·要求30分鐘內采集完所有500萬只電表數據·有的電表是通過網關或者集中器連接到主站服務器,一個網關下可能連接幾百塊plc電表,并且同一時間網關只能與下面一個電表進行通訊·并且期間可能有相當部分電表還存在其它任務要處理如遠程拉合閘充費等等。·同一個集中器下的所有電表任務只能同時在一個地方被處理,一次只能處理一塊電表的眾多任務之一否則會沖突導致任務處理失敗·同一個GPRS電表的所有任務也只能同 ...
【技術保護點】
1.高可用高并發高性能分布式遠程抄表采集服務器解決方法,其特征在于:多個采集服務器使用orleans組成一個集群;同一時刻所有在運行的采集服務器進程中只有一個任務分發者:Master服務器Master服務器定期生成抄表記錄到t_running表,定期到t_running表根據優先級高低順和已經到時間需要執行的任務序獲取到內存中,每次只獲取部分任務;從數據庫獲取到的任務存在內存一個隊列中;另外單獨有一個線程每隔若干毫秒檢測這個隊列,如果發現隊列有數據則對隊列中的任務再次根據時間優先級排序和設備id進行分組,對當前空閑的設備挑選出其設備下的任務,并通過orleans客戶端發送任務到集群中;發送任務時以設備id作為grain的identity,以任務的具體信息作為請求內容發送,orleans集群自動實例化和管理每個grain的生命周期。
【技術特征摘要】
1.高可用高并發高性能分布式遠程抄表采集服務器解決方法,其特征在于:多個采集服務器使用orleans組成一個集群;同一時刻所有在運行的采集服務器進程中只有一個任務分發者:Master服務器Master服務器定期生成抄表記錄到t_running表,定期到t_running表根據優先級高低順和已經到時間需要執行的任務序獲取到內存中,每次只獲取部分任務;從數據庫獲取到的任務存在內存一個隊列中;另外單獨有一個線程每隔若干毫秒檢測這個隊列,如果發現隊列有數據則對隊列中的任務再次根據時間優先級排序和設備id進行分組,對當前空閑的設備挑選出其設備下的任務,并通過orleans客戶端發送任務到集群中;發送任務時以設備id作為grain的identity,以任務的具體信息作為請求內容發送,orleans集群自動實例化和管理每個grain的生命周期。2.根據權利要求1所述的高可用高并發高性能分布式遠程抄表采集服務器解決方法,其特征在于,Master服務器由以下方式產生:a.首先設計數據表t_Master和t_running,分別用于記錄當前Master服務器的信息和任務信息,其中t_Master表字段Mastermark需要設定唯一約束;b.每個采集服務器進程啟動后開啟一個后臺線程,該線程每隔0-180秒內的隨機時間檢測數據庫表t_Master里面的記錄,如果該表沒記錄則把自己作為Master服務器添加進去,如果添加成功則該進程成為Master服務器并開始履行Master服務器的職責;每個采集器服務器需要更新t_Master表記錄時使用相同的Mastermark值,這樣通過數據庫的唯一約束防止多個采集服務器同時更新該表,起到加鎖的功能,保證只有一個采集服務器能更新成功,更新成功的采集器成為Master角色;c.一旦一個采集服務器成為Master服務器后除非進程崩潰、掉電、機器重啟、強行關閉、連接不上數據庫,否則該角色會一直扮演下去;d.Master服務器定期更新t_Master的在線時間;e.其它非Master采集服務器定期檢測t_Master運行情況,如果發現Master記錄的在線時間超過120秒則認為系統當前沒有健康的Master服務器存在,然后把t_Master中舊的記錄刪除,如果刪除成功則把自己作為Master添加進去,如果添加成功則開始履行Master服務器的職責;新的Master服務器會重新到t_running表加載任務,由于切換Master服務器的時間間隔比訪問一次前端設備的時間要長,所以新的Master服務器接管任務分派職責后在t_running表中的任務全都是未做或者做失敗的任務。3.根...
【專利技術屬性】
技術研發人員:劉杰,梅林,
申請(專利權)人:成都長城開發科技有限公司,
類型:發明
國別省市:四川,51
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。