• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    高可用高并發高性能分布式遠程抄表采集服務器解決方法技術

    技術編號:21167174 閱讀:51 留言:0更新日期:2019-05-22 09:40
    本發明專利技術公開了高可用高并發高性能分布式遠程抄表采集服務器解決方法,多個采集服務器使用orleans組成一個集群;同一時刻所有在運行的采集服務器進程中只有一個任務分發者:Master服務器Master服務器定期生成抄表記錄到t_running表,定期到t_running表根據優先級高低順和已經到時間需要執行的任務序獲取到內存中,每次只獲取部分任務;從數據庫獲取到的任務存在內存一個隊列中;本發明專利技術還公開了其他的一些技術特征。本發明專利技術增加整個采集系統的穩定性、高可用性,在集群中某臺或者某幾臺機器宕機后不影響整個系統的運行;均衡的分布式處理方式使得集群中每臺機器都處理相對均勻的任務,使整體資源得到更合理的利用,避免某些服務器任務過載某些服務器無任務處理。

    Solution of Distributed Remote Meter Reading Server with High Availability, High Concurrency and High Performance

    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電表的所有任務也只能同時在一個地方被處理,一次只能處理該塊表眾多任務之一否則會沖突·所有任務,包括抄讀電表數據、遠程拉合閘等所有任務需要分優先級,優先級高的任務優先處理,同一個電表同時有很多任務需要處理時優先處理,對于給定的某個電表同一時刻只處理一個任務·如果是抄讀凍結數據優先級相同的情況下需要先執行距離當前時間最近的任務,其余任務按時間先后執行·對于需要遠程充值的預付費電表系統,要求實時完成一半用戶的同時遠程充費操作·采集服務器不能超過15臺(包括虛擬機和防掛備用機)對于類似這種大批量相對實時的數據采集系統目前一般的解決辦法為選定其中一臺服務器作為任務分發處理中心,通過rpc(遠程過程調用,它是一種通過網絡從遠程計算機程序上請求服務,而不需要了解底層網絡技術的協議)將排序后的任務分發到其它采集服務器,其它服務器接收到任務后訪問終端智能設備最后將結果(成功或者失敗的結果)返回到任務分發者。這些解決方案都存在或多或少的缺陷,有的缺陷甚至是致命的。·指定的任務分發者服務器掛掉后整個系統的任務處理都停滯了·其它任務接收服務器短時間內如果接收到大量任務比如20萬個任務難以做到如此高的并發處理,傳統的做法是對每個任務分配一個線程去處理但分配的線程數達到一定數量后整個系統將會變得非常卡頓甚至進程掛掉。比較好的處理方式是使用異步處理方式訪問終端設備使用異步等待等技術,但存在如何有效的管理如此大量的異步IO請求也是非常困難的稍有不慎也會是整個系統崩潰·任務分發者需要和其它服務器保持心跳以便檢測其它服務器是否存活,如果該服務器存活則分派任務否則不分派任務到該服務器·任務處理服務器需要和任務分發者服務器保持心跳,以便在任務處理結束后通知任務處理結果·任務分發者如何做到均衡不沖突的分發任務到其它服務器也是一大難題,傳統解決方法需要任務分發者記錄當前哪些設備已經有任務正在被處理,哪些任務被分派到了哪臺服務器,每臺服務器當前被分派了多少個任務;收到其它服務器返回的任務處理結果時要同步更新分派的任務數,并且需要設定超時檢測功能以便檢測分派到其它服務器的任務如果沒有反饋將任務重新分派等等·如果任務分發者服務器掛機如何讓其它存活的服務器接管任務分配,如何將掛機時刻任務分發者的各種任務分配信息移交到新的任務分發者等等以上只是列舉了一些傳統解決方案的不足或者缺陷,不難看出使用傳統解決方案系統復雜性非常高、易出錯,出了問題難以查找問題原因難以做到高可用、高并發、高性能等。
    技術實現思路
    針對傳統大量智能電表設備數據采集方案存在的技術不足,本專利技術主要解決的技術問題是提供一種數據采集方案,其特征是高可用、高并發、高性能、分布式、實時性,該方案能夠解決以上傳統做法的各種缺陷和不足。本專利技術的目的是通過以下技術方案來實現的:高可用高并發高性能分布式遠程抄表采集服務器解決方法,多個采集服務器使用orleans組成一個集群;同一時刻所有在運行的采集服務器進程中只有一個任務分發者:Master服務器;Master服務器定期生成抄表記錄到t_running表,定期到t_running表根據優先級高低順和已經到時間需要執行的任務序獲取到內存中,每次只獲取部分任務;從數據庫獲取到的任務存在內存一個隊列中;另外單獨有一個線程每隔若干毫秒檢測這個隊列,如果發現隊列有數據則對隊列中的任務再次根據時間優先級排序和設備id進行分組,對當前空閑的設備挑選出其設備下的任務,并通過orleans客戶端發送任務到集群中;發送任務時以設備id作為grain的identity,以任務的具體信息作為請求內容發送,orleans集群自動實例化和管理每個grain的生命周期。作為優選方式,Master服務器由以下方式產生:a.首先設計數據表t_Master和t_running,分別用于記錄當前Master服務器的信息和任務信息,其中t_Master表字段Mastermark需要設定唯一約束;b.每個采集服務器(Master服務器也屬于采集服務器)進程啟動后開啟一個后臺線程,該線程每隔0-180秒內的隨機時間檢測數據庫表t_Master里面的記錄,如果該表沒記錄則把自己作為Master服務器添加進去,如果添加成功則該進程成為Master服務器并開始履行Master服務器的職責;每個采集器服務器需要更新t_Master表記錄時使用相同的Mastermark值,這樣通過數據庫的唯一約束防止多個采集服務器同時更新該表,起到加鎖的功能,保證只有一個采集服務器能更新成功,更新成功的采集器成為Master角色;c.一旦一個采集服務器成為Master服務器后除非進程崩潰、掉電、機器重啟、強行關閉、連接不上數據庫,否則該角色會一直扮演下去;d.Master服務器定期(默認間隔20秒)更新t_Master的在線時間;e.其它非Master采集服務器(采集服務器包括Master服務器和非Master采集服務器)定期檢測t_Master運行情況,如果發現Master記錄的在線時間超過120秒則認為系統當前沒有健康的Master服務器存在,然后把t_Master中舊的記錄刪除,如果刪除成功則把自己作為Master添加進去,如果添加成功則開始履行Master服務器的職責;新的Master服務器會重新到t_running表加載任務,由于切換Master服務器的時間間隔比訪問一次前端設備的時間要長,所以新的Master服務器接管任務分派職責后在t_running表中的任務全都是未做或者做失敗的任務。作為優選方式,Master服務器定期從redis中獲取分出去的任務執行結果并根據結果清理自己在本文檔來自技高網
    ...

    【技術保護點】
    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

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 精品无码av无码专区| 国产在线精品无码二区| 无码专区久久综合久中文字幕| 国产强伦姧在线观看无码| 亚洲中文字幕在线无码一区二区| 亚洲va成无码人在线观看| 久久ZYZ资源站无码中文动漫| 免费无码中文字幕A级毛片| av大片在线无码免费| 久久精品aⅴ无码中文字字幕不卡| 超清纯白嫩大学生无码网站| 无码A级毛片日韩精品| 一本之道高清无码视频| 自拍中文精品无码| 无码人妻丰满熟妇区五十路| 免费A级毛片无码A∨男男| 亚洲成A人片在线观看无码3D| 红桃AV一区二区三区在线无码AV| 国产日韩AV免费无码一区二区 | 国产成人精品一区二区三区无码| 国产成人午夜无码电影在线观看| 无码久久精品国产亚洲Av影片| 亚洲精品无码久久久久YW| 久久影院午夜理论片无码| 精品人妻无码区二区三区| 国产高新无码在线观看| 亚洲av无码久久忘忧草| 好硬~好爽~别进去~动态图, 69式真人无码视频免 | 乱人伦中文无码视频在线观看| 精品人妻中文无码AV在线| 日韩国产精品无码一区二区三区| 亚洲精品无码久久久| 成人毛片无码一区二区| 亚洲久热无码av中文字幕| 久久亚洲AV成人无码电影| 无码av免费一区二区三区| 国产激情无码一区二区| 久久亚洲精品中文字幕无码| 无码人妻丰满熟妇区五十路百度| 亚洲Av无码乱码在线观看性色 | 亚洲日韩VA无码中文字幕|