999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

新能源監(jiān)控系統(tǒng)海量終端接入技術(shù)研究

2018-11-21 08:37:20馮利虎易永輝陳海龍張玉寶
自動(dòng)化儀表 2018年11期
關(guān)鍵詞:管理

馮利虎,易永輝,時(shí) 誼,陳海龍,張玉寶,張 倩,王 剛

(許繼集團(tuán)有限公司,河南 許昌 461000)

0 引言

隨著傳統(tǒng)石化能源危機(jī)和環(huán)境污染兩大問題日益嚴(yán)重,大力發(fā)展清潔、可再生新能源已成為世界各國共識。風(fēng)電、光伏作為新型綠色無污染的能源也越來越受到人們的青睞,裝機(jī)規(guī)模及占比在不斷增大[1-4]。

新能源電站建設(shè)規(guī)模不斷擴(kuò)大,特別是大型光伏、分布式光伏電站加速發(fā)展,接入新能源監(jiān)控/集控系統(tǒng)的數(shù)據(jù)量及終端數(shù)量也在不斷增多[5]。如100 MW大型地面光伏電站考慮到光伏區(qū)匯流箱設(shè)備的通信接入,全站設(shè)備數(shù)量將超過2 000臺;同樣監(jiān)控?cái)?shù)百個(gè)分布式光伏站點(diǎn)的遠(yuǎn)程監(jiān)控/集控中心,終端設(shè)備的數(shù)量也數(shù)以千計(jì)。常規(guī)監(jiān)控系統(tǒng)的容量及架構(gòu)設(shè)計(jì)已無法滿足新能源領(lǐng)域大量終端的接入需求。

本文介紹了監(jiān)控系統(tǒng)海量終端接入的關(guān)鍵技術(shù),并給出了具體的實(shí)現(xiàn)方案。

1 海量終端接入關(guān)鍵技術(shù)

針對新能源監(jiān)控系統(tǒng)海量終端接入的需求,必須解決以下兩個(gè)關(guān)鍵問題。

①海量終端接入系統(tǒng)的網(wǎng)絡(luò)負(fù)載均衡策略[6-8]。

為了更好地解決因海量終端接入而帶來的一系列高并發(fā)、潮涌式堵塞等問題,需要一種新的網(wǎng)絡(luò)負(fù)載均衡算法處理網(wǎng)絡(luò)連接問題。在前置服務(wù)器上搭建EPOLL模型,對交互數(shù)據(jù)進(jìn)行處理[9-10];增加前置機(jī)調(diào)度模塊,負(fù)責(zé)前置機(jī)和后臺應(yīng)用的數(shù)據(jù)處理。

②海量終端通信連接管理方法研究。

為了更好地解決目前大量終端接入而帶來的通信連接管理和前置機(jī)模塊資源消耗等問題,研究采用一種新的Socket管理方法。在通信管理機(jī)模塊上采用多線程管理終端以及業(yè)務(wù)服務(wù)器連接,線程內(nèi)以循環(huán)方式管理多個(gè)Socket。

2 實(shí)現(xiàn)方案

2.1 海量終端接入系統(tǒng)的網(wǎng)絡(luò)負(fù)載均衡策略

利用現(xiàn)有的集群服務(wù)器技術(shù),修改針對網(wǎng)絡(luò)連接的網(wǎng)絡(luò)負(fù)載均衡算法,對并發(fā)連接進(jìn)行合適的分流,在網(wǎng)絡(luò)負(fù)載均衡器上增加客戶端連接的遷移算法,實(shí)現(xiàn)前置機(jī)服務(wù)器的故障遷移和柔性擴(kuò)容;增加前置機(jī)調(diào)度模塊完成報(bào)文準(zhǔn)確下發(fā)到終端,分擔(dān)和緩解前置機(jī)服務(wù)器負(fù)載;在前置機(jī)服務(wù)器搭建EPOLL模塊進(jìn)行數(shù)據(jù)流處理。該方案可解決海量終端連接時(shí)的高并發(fā)和擁堵的“瓶頸”。

①前置機(jī)調(diào)度模塊。該模塊用于連接后臺應(yīng)用模塊和前置機(jī)集群,主要作用是把前置機(jī)的解析數(shù)據(jù)發(fā)送到相應(yīng)的后臺應(yīng)用模塊中;同時(shí)根據(jù)關(guān)聯(lián)關(guān)系,把下行數(shù)據(jù)準(zhǔn)確發(fā)送至終端。在本模塊中,保存終端網(wǎng)絡(luò)信息和前置機(jī)服務(wù)器網(wǎng)絡(luò)信息的關(guān)聯(lián)結(jié)構(gòu)圖,并響應(yīng)前置機(jī)的關(guān)聯(lián)修改請求。

②前置機(jī)集群。它由N臺相互獨(dú)立、通過高速網(wǎng)絡(luò)互聯(lián)的計(jì)算機(jī)構(gòu)成一個(gè)組,并對單一系統(tǒng)模式加以管理,可以提高服務(wù)器性能、降低成本、提高可擴(kuò)展性、增強(qiáng)可靠性。本方案中采用的是負(fù)載均衡集群。

③網(wǎng)絡(luò)負(fù)載均衡器。網(wǎng)絡(luò)負(fù)載均衡器對終端連接按現(xiàn)有前置機(jī)集群的處理能力進(jìn)行分流,負(fù)載均衡策略按照“閾值輪循+動(dòng)態(tài)負(fù)載反饋”的方法,擴(kuò)展網(wǎng)絡(luò)連接吞吐量,加強(qiáng)前置機(jī)數(shù)據(jù)處理能力。在本方案中,網(wǎng)絡(luò)負(fù)載均衡器中運(yùn)行狀態(tài)機(jī)和前置機(jī)服務(wù)器的狀態(tài)機(jī)進(jìn)行呼應(yīng);處理故障時(shí),Socket的遷移及擴(kuò)容時(shí)前置機(jī)服務(wù)器的負(fù)載分流。

終端數(shù)據(jù)連接如圖1所示。

圖1 終端數(shù)據(jù)連接圖

本方案涉及以下三個(gè)關(guān)鍵點(diǎn)。

其一,網(wǎng)絡(luò)負(fù)載均衡器的實(shí)現(xiàn)算法。針對客戶端連接分流均衡算法,先設(shè)定前置服務(wù)器上可連接的客戶端個(gè)數(shù),將連接請求依次順序循環(huán)地連接到每個(gè)允許連接的服務(wù)器上;當(dāng)連接數(shù)達(dá)到設(shè)定的閾值時(shí),根據(jù)各個(gè)前置服務(wù)器的實(shí)時(shí)負(fù)載情況進(jìn)行適當(dāng)?shù)姆峙?。前置服?wù)器的實(shí)時(shí)負(fù)載由位于前置服務(wù)器的性能監(jiān)測軟件經(jīng)過集群間的“心跳”專用線傳輸。另外,采用一定的算法處理故障遷移和擴(kuò)容時(shí)的負(fù)載均衡。

其二,前置服務(wù)器的數(shù)據(jù)處理算法。在前置機(jī)對數(shù)據(jù)流進(jìn)行處理時(shí),采用EPOLL模型。EPOLL模型主要負(fù)責(zé)對大量并發(fā)用戶的請求進(jìn)行及時(shí)處理,完成服務(wù)器與客戶端的數(shù)據(jù)交互。其具體的實(shí)現(xiàn)步驟如下。

①使用EPOLL_create()函數(shù)創(chuàng)建文件描述,設(shè)定可管理的最大Socket描述符數(shù)目。

②創(chuàng)建與EPOLL關(guān)聯(lián)的接收線程,應(yīng)用程序可以創(chuàng)建多個(gè)接收線程來處理Epoll上的讀通知事件,線程的數(shù)量依賴于程序的具體需要和設(shè)備環(huán)境。

③創(chuàng)建一個(gè)偵聽Socket描述符ListenSock;將該描述符設(shè)定為非阻塞模式,調(diào)用Listen()函數(shù)在套接字上偵聽有無新的連接請求。在 epoll_event結(jié)構(gòu)中設(shè)置要處理的事件類型EPOLLIN,工作方式為epoll_ET,以提高工作效率,同時(shí)使用epoll_ctl()注冊事件,最后啟動(dòng)網(wǎng)絡(luò)監(jiān)視線程。

④創(chuàng)建本地文件,對數(shù)據(jù)接收鏈表溢出數(shù)據(jù)進(jìn)行本地緩存。

⑤網(wǎng)絡(luò)監(jiān)視線程啟動(dòng)循環(huán),epoll_wait()等待epoll事件發(fā)生。

⑥如果Epoll事件表明有新的連接請求,則調(diào)用accept()函數(shù),將客戶端Socket描述符添加到epoll_data聯(lián)合體,同時(shí)設(shè)定該描述符為非阻塞,并在epoll_event結(jié)構(gòu)中設(shè)置要處理的事件類型為讀和寫,工作方式為epoll_ET。

⑦如果Epoll事件表明Socket描述符上有數(shù)據(jù)可讀,則將該Socket描述符加入可讀隊(duì)列,通知接收線程讀入數(shù)據(jù),并將接收到的數(shù)據(jù)放入到接收數(shù)據(jù)的鏈表中。經(jīng)邏輯處理后,將反饋的數(shù)據(jù)包放入到發(fā)送數(shù)據(jù)鏈表中,等待由發(fā)送線程發(fā)送。

其三,前置機(jī)調(diào)度模塊。前置機(jī)調(diào)度模塊保存前置機(jī)攜帶終端IP信息和本機(jī)IP地址的注冊關(guān)聯(lián)表,在下行數(shù)據(jù)傳輸時(shí),前置機(jī)調(diào)度模塊根據(jù)終端信息,在注冊關(guān)聯(lián)表中找到對應(yīng)的前置服務(wù)器,并把下行數(shù)據(jù)傳輸?shù)皆撉爸梅?wù)器上進(jìn)行報(bào)文組裝和下發(fā)。當(dāng)發(fā)生Socket遷移時(shí),前置機(jī)調(diào)度模塊接收上行的更改命令對注冊關(guān)聯(lián)表進(jìn)行修改。 基于IP的終端設(shè)備發(fā)起連接請求到網(wǎng)絡(luò)負(fù)載均衡器,由網(wǎng)絡(luò)負(fù)載均衡器根據(jù)“閾值輪循+動(dòng)態(tài)負(fù)載反饋”算法將所有的連接請求分發(fā)到前置集群中的各個(gè)前置服務(wù)器,客戶端TCP連接至前置機(jī)分配如圖2所示。

圖2 客戶端TCP連接至前置機(jī)分配圖

分發(fā)的原則是依據(jù)前置服務(wù)器的連接數(shù)據(jù)和實(shí)時(shí)負(fù)載情況,并由各個(gè)前置服務(wù)器和終端建立通信鏈路。Socket客戶端建立后的數(shù)據(jù)流如圖3所示。此時(shí),網(wǎng)絡(luò)負(fù)載均衡器保存各個(gè)終端的連接信息,并只對鏈路的連接情況進(jìn)行監(jiān)測。

前置服務(wù)器每建立一個(gè)客戶端請求連接,則要在前置機(jī)調(diào)度模塊上注冊相應(yīng)的連接信息。假如終端IP地址為10.100.100.202,經(jīng)網(wǎng)絡(luò)負(fù)載均衡器分配到IP地址為10.100.100.104的前置服務(wù)器上。在連接請求建立后,前置服務(wù)器把連接信息注冊到前置機(jī)調(diào)度模塊上,即在前置機(jī)調(diào)度模塊上新增IP地址為10.100.100.104和10.100.100.202的關(guān)系對。當(dāng)有上行數(shù)據(jù)傳輸時(shí),經(jīng)前置服務(wù)器解析處理后直接上傳到后臺應(yīng)用模塊;當(dāng)有下行數(shù)據(jù)時(shí)傳輸,由后臺應(yīng)用模塊把待發(fā)送的數(shù)據(jù)和終端信息發(fā)送到前置機(jī)調(diào)度模塊。前置機(jī)調(diào)度模塊根據(jù)終端信息查找到該終端通信的前置服務(wù)器,并經(jīng)由查找到的前置服務(wù)器對數(shù)據(jù)組裝格式化后下發(fā)到相應(yīng)終端。

圖3 客戶端SOCKET建立后的數(shù)據(jù)流向圖

前置服務(wù)器處理連接和數(shù)據(jù)流的具體步驟如下。

①在前置服務(wù)器上建立一定數(shù)量的線程,并由線程池統(tǒng)一管理。

②當(dāng)客戶端進(jìn)行連接時(shí),由主線程對此連接建立通信并把該客戶端加入到EPOLL監(jiān)視事件中。

③當(dāng)EPOLL監(jiān)測到某連接有可讀事件時(shí),通知接收線程進(jìn)行數(shù)據(jù)讀取,并判斷數(shù)據(jù)接收鏈表長度是否到達(dá)最大值。如果未達(dá)到最大值,把讀到的數(shù)據(jù)插入到鏈表中;否則把讀到的數(shù)據(jù)以本地文件的形式進(jìn)行緩存,并等待文件操作線程處理本地文件。

④數(shù)據(jù)處理線程不斷地從數(shù)據(jù)接收鏈表中取出數(shù)據(jù)進(jìn)行解析、處理;當(dāng)有下行數(shù)據(jù)命令時(shí),數(shù)據(jù)處理線程直接把數(shù)據(jù)保存到數(shù)據(jù)發(fā)送鏈表中等待處理。

⑤數(shù)據(jù)發(fā)送線程檢測到待發(fā)送鏈表中有數(shù)據(jù)時(shí),從中取出數(shù)據(jù),經(jīng)由數(shù)據(jù)處理線程組裝格式化處理后,下發(fā)到前置機(jī)調(diào)度模塊進(jìn)行分發(fā)。

本方案針對基于IP端點(diǎn)的海量終端數(shù)據(jù)通信時(shí)的接入“瓶頸”,改進(jìn)采集系統(tǒng)的框架模塊,解決了大規(guī)模連接時(shí)的高并發(fā)和擁堵問題。

2.2 海量終端通信連接管理方法

目前,終端與主站系統(tǒng)的通信建立機(jī)制一般為:主站系統(tǒng)的前置機(jī)模塊與終端建立Socket連接,新建與之對應(yīng)的線程用于Socket的維護(hù)、管理,并處理Socket數(shù)據(jù)收發(fā);終端斷開連接時(shí),銷毀與之對應(yīng)的管理線程,回收系統(tǒng)資源。在本方案中,由于每個(gè)終端具有獨(dú)立的IP地址,應(yīng)用服務(wù)平臺和終端將進(jìn)行端到端直接通信,因此前置機(jī)模塊將面臨更大的接入壓力,前置機(jī)模塊管理海量通信鏈路連接的能力和穩(wěn)定性,將嚴(yán)重影響整個(gè)系統(tǒng)的可靠性、實(shí)時(shí)性和擴(kuò)展性。

為解決該問題,本文采用如下方案。

①終端的多線程分類管理。

通信管理機(jī)每個(gè)線程內(nèi)包含兩個(gè)動(dòng)態(tài)數(shù)組連界棧(預(yù)登陸連接棧和已登錄連接棧)。前置機(jī)模塊采用多線程方式來分類管理所接入的不同類型終端以及其他業(yè)務(wù)服務(wù)器的Socket連接。每個(gè)管理線程可以管理多個(gè)Socket連接。

②管理線程內(nèi)對Socket連接采用循環(huán)管理方式。

登錄成功的終端,依據(jù)終端類型和管理線程的負(fù)載情況分配Socket至最優(yōu)管理線程,存放于預(yù)登陸連接棧中;單個(gè)線程最多能夠管理64個(gè)Socket。若現(xiàn)有線程的Socket管理數(shù)已滿,則新建管理線程;若登錄失敗或是斷開連接,則判定為無效Socket被剔除。各管理線程把Socket信息從預(yù)登陸連接棧取出,并存入已登錄連接棧進(jìn)行處理,檢測各個(gè)Socket是否有事件(數(shù)據(jù)接收、數(shù)據(jù)發(fā)送)發(fā)生,然后循環(huán)處理各Socket的事件。其關(guān)鍵點(diǎn)在于管理線程內(nèi)循環(huán)處理各個(gè)Socket的事件。

③無效Socket的檢測和剔除。

當(dāng)終端接入時(shí),首先分配至未注冊管理線程,在規(guī)定時(shí)限內(nèi)完成登錄過程后,依據(jù)終端類型分配Socket至最優(yōu)管理線程,未能完成登錄過程的Socket則視為無效Socket被剔除;前置系統(tǒng)與Socket建立連接后,在各分類管理線程檢測已登錄連接棧中存放的Socket是否正常,剔除無效的Socket(退出登錄或斷線)。

這種連接管理方法的優(yōu)點(diǎn)如下。

①采用終端的多線程分類管理,使得后臺應(yīng)用系統(tǒng)能夠依據(jù)不同類型的終端(其數(shù)據(jù)類型、采集周期、報(bào)文數(shù)據(jù)格式等不同),采取相應(yīng)的數(shù)據(jù)處理策略,簡化后臺應(yīng)用系統(tǒng)數(shù)據(jù)處理過程。這樣便于后臺應(yīng)用系統(tǒng)的升級和改造。

②每個(gè)線程管理多個(gè)Socket,在線程內(nèi)循環(huán)處理數(shù)據(jù),相比于現(xiàn)有后臺應(yīng)用系統(tǒng)一個(gè)線程對應(yīng)一個(gè)Socket,節(jié)省了系統(tǒng)資源消耗,提升了前置機(jī)模塊在現(xiàn)有后臺應(yīng)用系統(tǒng)下的接入能力。該方法使前置機(jī)模塊更適應(yīng)由于IP通信技術(shù)的發(fā)展而產(chǎn)生的終端與前置機(jī)模塊直接相連的情況,使得前置機(jī)模塊具有海量終端接入的能力。

在復(fù)雜和惡劣的現(xiàn)場環(huán)境下,終端經(jīng)常發(fā)生斷線等情況,導(dǎo)致Socket失效或斷開。未注冊服務(wù)器管理線程的引入能夠有效篩除無效的Socket,提升系統(tǒng)資源利用率;在終端的分類管理線程內(nèi)檢測到無效Socket需要剔除時(shí),無需銷毀管理線程,而是從線程已登錄連界棧中刪除對應(yīng)的Socket信息,釋放Socket所占用的資源。這就避免了額外的新建和銷毀管理線程所帶來的資源消耗,提高了終端管理線程的管理效率。

3 結(jié)束語

本文介紹了針對新能源監(jiān)控系統(tǒng)海量終端接入的兩項(xiàng)關(guān)鍵技術(shù),即網(wǎng)絡(luò)負(fù)載均衡策略及通信連接管理方法,并在實(shí)際項(xiàng)目中對該方法進(jìn)行了驗(yàn)證。該方法處理數(shù)千數(shù)萬級別終端接入效果很好,可解決新能源監(jiān)控/集控系統(tǒng)的需求,同時(shí)對具有類似需求的配網(wǎng)自動(dòng)化等領(lǐng)域系統(tǒng)設(shè)計(jì)具有參考價(jià)值。

猜你喜歡
管理
棗前期管理再好,后期管不好,前功盡棄
《水利建設(shè)與管理》征訂啟事
聆聽兩會(huì)
——關(guān)注自然資源管理
2020年《水利建設(shè)與管理》征稿函
運(yùn)行管理
管理就是溝通
中國制筆(2019年1期)2019-08-28 10:07:26
加強(qiáng)土木工程造價(jià)的控制與管理
如何加強(qiáng)土木工程造價(jià)的控制與管理
解秘眼健康管理
“這下管理創(chuàng)新了!等7則
雜文月刊(2016年1期)2016-02-11 10:35:51
主站蜘蛛池模板: 久久综合伊人77777| 欧美成人看片一区二区三区| 亚洲欧美h| 亚洲色欲色欲www在线观看| 国产精品无码作爱| 午夜a级毛片| 国内精品伊人久久久久7777人| 午夜视频免费一区二区在线看| 亚洲人免费视频| 亚洲首页国产精品丝袜| 91精品啪在线观看国产91九色| 久久无码免费束人妻| 欧美午夜小视频| 天天综合网亚洲网站| 偷拍久久网| 国产精品香蕉| 成人夜夜嗨| 伊人激情综合网| 欧美激情,国产精品| 国产迷奸在线看| 欧美一级黄片一区2区| 免费av一区二区三区在线| 男女男免费视频网站国产| 影音先锋丝袜制服| 欧美一区二区三区不卡免费| 91无码人妻精品一区二区蜜桃| 精品视频一区二区三区在线播| 精品无码国产自产野外拍在线| 又污又黄又无遮挡网站| 2020亚洲精品无码| 三级视频中文字幕| 亚洲91精品视频| 久久国产黑丝袜视频| 国产女人在线观看| 欧美在线观看不卡| 日韩小视频网站hq| 成人日韩精品| 国产精品天干天干在线观看| 好久久免费视频高清| 经典三级久久| 国产乱子伦手机在线| 国产精品丝袜在线| 丰满人妻久久中文字幕| 国产成人综合欧美精品久久 | 国产sm重味一区二区三区| 好吊色妇女免费视频免费| 亚洲第一黄片大全| 欧美中文字幕一区二区三区| 夜夜操天天摸| 国产成人高清精品免费| 91精品啪在线观看国产60岁 | 欧美日韩第三页| Jizz国产色系免费| 9丨情侣偷在线精品国产| 91毛片网| 国产尹人香蕉综合在线电影| 国产福利小视频在线播放观看| 国产精品久久久久久久久久久久| 色天堂无毒不卡| 国产成人h在线观看网站站| 国产高清不卡视频| 国产欧美高清| 亚洲男人在线| 国产欧美日韩在线一区| 91亚洲精品国产自在现线| 亚洲爱婷婷色69堂| 中文字幕无码电影| 999精品色在线观看| 人妻精品久久久无码区色视| 国产最新无码专区在线| 亚洲精品桃花岛av在线| 国产精品永久免费嫩草研究院| 91精品国产自产91精品资源| 亚洲AV无码乱码在线观看裸奔| 在线观看亚洲人成网站| 国产乱子伦一区二区=| 国产激爽爽爽大片在线观看| 午夜精品久久久久久久无码软件| 国产欧美在线观看精品一区污| 国产成人永久免费视频| 啪啪永久免费av| 亚洲有无码中文网|