雲接入控制器處理告警信息的方法和裝置與流程
2023-04-28 10:53:31
本發明實施方式涉及通訊技術領域,尤其涉及一種雲接入控制器處理告警信息的方法和裝置。
背景技術:
雲接入控制器(Access Controller,AC)系統往往通過超文本標記語言(HyperText Markup Language,HTML)呈現系統的功能接口,用戶可以通過瀏覽器連接雲接入控制器系統,進行各種操作。
雲接入控制器需要管理大量的接入點設備,這些接入點設備在運行時,會產生大量的設備告警信息。為了處理這些告警信息,單臺告警伺服器已經不能滿足性能上的要求,雲接入控制器為了能及時準確的處理接入點告警信息,使用由多臺伺服器組成的分布式環境對告警信息進行並發處理。
例如在並發處理告警時,伺服器-1中的告警處理進程在t0時刻獲取設備01的下線告警通知,由於伺服器-1當前資源不充足,在t2時刻下線告警可能還沒有處理完成,設備01下線狀態還沒有加入雲接入控制器資料庫中。在t1時刻,伺服器-2中的告警處理進程獲取設備01的上線通知,由於服務-2中的當前資源充足,告警進程很快完告警的處理。伺服器-2在處理時,在資料庫中沒有發現設備01的下線狀態,告警對設備狀態不做結束。在t3時刻,伺服器1的告警處理進程處理完成設備01下線告警,改變設備01的工作狀態為下線。此刻對雲接入控制器來說,設備01為下線狀態,但實際上設備01已經恢復正常工作。
在實施本發明的過程中,發明人發現現有技術至少存在如下問題:
雲接入控制器處理接入點設備告警信息時,在大量接入點設備接入雲接入控制器時,雲接入控制器採用多臺伺服器分布式方式對告警進行處理,由於每臺伺服器可獲取資源和每條告警的業務複雜度都不一樣,造成在一個時刻內每臺伺服器處理告警的速率不同,從而造成告警不能按照發生的時序進行處理,造成設備狀態信息不準確。
應該注意,上面對技術背景的介紹只是為了方便對本發明的技術方案進行清楚、完整的說明,並方便本領域技術人員的理解而闡述的。不能僅僅因為這些方案在本發明的背景技術部分進行了闡述而認為上述技術方案為本領域技術人員所公知。
技術實現要素:
針對上述問題,本發明實施方式的目的在於提供一種雲接入控制器處理告警信息的方法和裝置,能夠提高雲接入控制器處理告警信息的實時性和準確性。
為實現上述目的,本發明實施方式提供一種雲接入控制器處理告警信息的方法,包括:接收預設接入點設備發來的告警信息,並將所述告警信息存儲至所述預設接入點設備對應的消息中間件中;所述消息中間件中按照告警信息的生成時間對告警信息進行排序;讀取所述消息中間件中的告警信息列表,並將所述告警信息列表中的第一個告警信息與當前處理線程中的告警信息進行對比;當所述告警信息列表中的第一個告警信息與所述當前處理線程中的告警信息相同時,對所述告警信息列表中的第一個告警信息進行處理;在所述當前處理線程處理完所述告警信息列表中的第一個告警信息後,在所述告警信息列表中將第一個告警信息刪除,並向其它線程推送處理完成提示信息。
進一步地,所述消息中間件中的告警信息列表按照redis資料庫的list類型進行構建;相應地,將所述告警信息存儲至所述預設接入點設備對應的消息中間件中包括:將所述告警信息插入所述消息中間件中告警信息列表的末端。
進一步地,所述對所述告警信息列表中的第一個告警信息進行處理,包括:
在所述消息中間件中查詢是否存在所述預設接入點設備的主鍵;當不存在時,在所述消息中間件中設置所述預設接入點設備的主鍵,並處理所述告警信息列表中的第一個告警信息;在所述當前處理線程處理完所述告警信息列表中的第一個告警信息後,從所述消息中間件中刪除所述預設接入點設備的主鍵。
進一步地,在所述消息中間件中設置所述預設接入點設備的主鍵之後,還包括:為所述預設接入點設備的主鍵設置生效期限;當預設伺服器處理所述告警信息列表中的第一個告警信息的時間達到所述生效期限時,所述消息中間件刪除所述預設接入點設備的主鍵並向其它伺服器發送主鍵過期提示信息。
進一步地,所述方法還包括:當其它伺服器接收到所述主鍵過期提示信息後,讀取所述消息中間件中的告警信息列表,並重新建立處理線程,以處理所述告警信息列表中的第一個告警信息。
進一步地,所述方法還包括:當所述告警信息列表中的第一個告警信息與所述當前處理線程中的告警信息不相同時,所述當前處理線程監聽其它線程發來的處理完成提示信息。
進一步地,所述方法還包括:當所述當前處理線程中的告警信息不存在於所述告警信息列表中時,刪除所述當前處理線程中的告警信息。
為實現上述目的,本發明實施方式還提供一種雲接入控制器,包括:告警信息排序單元,用於接收預設接入點設備發來的告警信息,並將所述告警信息存儲至所述預設接入點設備對應的消息中間件中;所述消息中間件中按照告警信息的生成時間對告警信息進行排序;告警信息對比單元,用於讀取所述消息中間件中的告警信息列表,並將所述告警信息列表中的第一個告警信息與當前處理線程中的告警信息進行對比;告警信息處理單元,用於當所述告警信息列表中的第一個告警信息與所述當前處理線程中的告警信息相同時,對所述告警信息列表中的第一個告警信息進行處理;處理完成推送單元,用於在所述當前處理線程處理完所述告警信息列表中的第一個告警信息後,在所述告警信息列表中將第一個告警信息刪除,並向其它線程推送處理完成提示信息。
由上可見,本發明實施方式提供的一種雲接入控制器處理告警信息的方法和裝置,將接入點設備發來的告警信息按照生成時間進行排序,從而保證能夠按照時序處理各個告警信息,避免了因時序混亂而導致的雲AC中AP設備狀態錯誤的情況。進一步地,通過設置主鍵的生效期限,從而可以在處理告警信息的伺服器異常時,由其它伺服器繼續處理告警信息,保證了告警信息能夠被正常處理,從而進一步保證了AP設備狀態能夠被及時更新。
附圖說明
為了更清楚地說明本發明實施方式或現有技術中的技術方案,下面將對實施方式或現有技術描述中所需要使用的附圖逐一簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施方式,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明實施方式中雲接入控制器處理告警信息的方法流程圖;
圖2為本發明實施方式中雲接入控制器的功能模塊圖。
具體實施方式
為使本發明實施方式的目的、技術方案和優點更加清楚,下面將結合本發明實施方式中的附圖,對本發明實施方式中的技術方案進行清楚、完整地描述,顯然,所描述的實施方式是本發明一部分實施方式,而不是全部的實施方式。基於本發明中的實施方式,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施方式,都屬於本發明保護的範圍。
本發明實施方式提供一種雲接入控制器處理告警信息的方法。請參閱圖1,包括以下步驟:
S1:接收預設接入點設備發來的告警信息,並將所述告警信息存儲至所述預設接入點設備對應的消息中間件中;所述消息中間件中按照告警信息的生成時間對告警信息進行排序。
在本實施方式中,可以基於redis實現在分布式環境下按時序處理告警信息。具體地,在雲AC中,可以通過告警接收進程進行告警信息的接收。當雲AC接收到預設AP設備發來的告警信息時,可以將該告警信息包裝為告警事件,並將該告警事件寫入消息中間件的告警信息列表中。
在本實施方式中,所述告警信息列表可以按照redis資料庫的list類型進行構建。List類型是按照插入順序排序的字符串鍊表。和數據結構中的普通鍊表一樣,可以在其頭部(left)和末端(right)添加新的元素。從元素插入和刪除的效率視角來看,如果是在鍊表的兩頭插入或刪除元素,這將會是非常高效的操作。
因此,在本實施方式中,可以將接收到的告警信息插入所述告警信息列表的末端。這樣,越晚生成的告警信息,在告警信息列表中的位置就越靠右。
S2:讀取所述消息中間件中的告警信息列表,並將所述告警信息列表中的第一個告警信息與當前處理線程中的告警信息進行對比。
在本實施方式中,由於雲AC中的伺服器呈分布式架構,可以通過多個伺服器按照時序處理所述告警信息列表中的告警信息。
在本實施方式中,可以通過告警處理進程,對告警信息列表中的告警信息進行處理。雲AC中的伺服器在處理告警信息時,可以讀取所述告警信息列表中的告警信息。然後將所述告警信息列表中的第一個告警信息與當前處理線程中的告警信息進行對比。將第一個告警信息與當前處理線程中的告警信息進行對比的意義在於,如果兩者相同,則表明當前處理線程就是準備處理第一個告警信息。而如果兩者不相同,則表明第一個告警信息正在被別的線程進行處理。
S3:當所述告警信息列表中的第一個告警信息與所述當前處理線程中的告警信息相同時,對所述告警信息列表中的第一個告警信息進行處理。
在本實施方式中,當所述告警信息列表中的第一個告警信息與所述當前處理線程中的告警信息相同時,則可以由所述當前處理線程對所述第一個告警信息進行處理。
具體地,在處理第一個告警信息前,當前處理線程可以在所述消息中間件中查詢是否存在所述預設接入點設備的主鍵。如果存在,則表明當前有其它線程正在處理所述預設接入點設備的告警信息,需要等待其它線程處理完之後才可以開始處理。如果不存在時,則可以在所述消息中間件中設置所述預設接入點設備的主鍵,所述主鍵中可以包括所述預設接入點設備的標識。所述標識例如可以是所述預設接入點設備的MAC地址。那麼該主鍵的格式就可以是「AP設備MAC地址:task」。在設置了主鍵之後,當前處理線程便可以對第一個告警信息進行處理。
在本實施方式中,考慮到在伺服器出現異常時,可能導致第一個告警信息始終無法處理完成,這樣後續的告警信息也將無法被處理,從而導致AP設備的狀態無法得到更新。鑑於此,在本實施方式中可以為所述預設接入點設備的主鍵設置生效期限,該生效期限可以作為主鍵持續的時間上限。例如,伺服器處理一個告警信息正常的時間通常在100ms,那麼可以將所述生效期限設置為5s。這樣,當預設伺服器處理所述告警信息列表中的第一個告警信息的時間達到所述生效期限時,則表明該伺服器處於異常狀態,無法正常處理告警信息。此時,所述消息中間件中的redis可以刪除所述預設接入點設備的主鍵並向其它伺服器發送主鍵過期提示信息。
這樣,當其它伺服器接收到所述主鍵過期提示信息後,可以讀取所述消息中間件中的告警信息列表,並重新建立處理線程,以處理所述告警信息列表中的第一個告警信息。其它伺服器處理所述第一個告警信息的過程與上述步驟類似,這裡便不再贅述。
在本實施方式中,當所述告警信息列表中的第一個告警信息與所述當前處理線程中的告警信息不相同時,所述當前處理線程可以監聽其它線程發來的處理完成提示信息。當監聽到其它線程發來的處理完成提示信息後,可以繼續將當前告警信息列表中的第一個告警信息與自身的告警信息進行對比。
在本實施方式中,當所述當前處理線程中的告警信息不存在於所述告警信息列表中時,則表明當前處理線程中的告警信息已經被處理完畢,那麼就無需進行再次處理,從而可以刪除所述當前處理線程中的告警信息。
S4:在所述當前處理線程處理完所述告警信息列表中的第一個告警信息後,在所述告警信息列表中將第一個告警信息刪除,並向其它線程推送處理完成提示信息。
在本實施方式中,當所述當前處理線程處理完所述告警信息列表中的第一個告警信息後,可以在所述告警信息列表中將第一個告警信息刪除,從而使得原本處於第二位的告警信息成為當前的第一個告警信息。同時,當前處理線程還可以向其它線程推送處理完成提示信息,以便於其它線程開始按照上述步驟對本地的告警信息進行處理。具體地,可以通過redis中的pub/sub(Publish/Subscribe,發布及訂閱)功能,向其它線程推送處理完成提示信息。
在本實施方式中,在所述當前處理線程處理完所述告警信息列表中的第一個告警信息後,可以從所述消息中間件中刪除所述預設接入點設備的主鍵。這樣,其它線程從而可以在所述消息中間件中建立所述預設接入點設備的主鍵。
請參閱圖2,本發明實施方式還提供一種雲接入控制器,包括:
告警信息排序單元100,用於接收預設接入點設備發來的告警信息,並將所述告警信息存儲至所述預設接入點設備對應的消息中間件中;所述消息中間件中按照告警信息的生成時間對告警信息進行排序;
告警信息對比單元200,用於讀取所述消息中間件中的告警信息列表,並將所述告警信息列表中的第一個告警信息與當前處理線程中的告警信息進行對比;
告警信息處理單元300,用於當所述告警信息列表中的第一個告警信息與所述當前處理線程中的告警信息相同時,對所述告警信息列表中的第一個告警信息進行處理;
處理完成推送單元400,用於在所述當前處理線程處理完所述告警信息列表中的第一個告警信息後,在所述告警信息列表中將第一個告警信息刪除,並向其它線程推送處理完成提示信息。
在本發明一個實施方式中,所述消息中間件中的告警信息列表按照redis資料庫的list類型進行構建;相應地,所述告警信息排序單元100包括:
信息插入模塊,用於將所述告警信息插入所述消息中間件中告警信息列表的末端。
在本發明一個實施方式中,所述告警信息處理單元300包括:
主鍵查詢模塊,用於在所述消息中間件中查詢是否存在所述預設接入點設備的主鍵;
主鍵設置模塊,用於當不存在時,在所述消息中間件中設置所述預設接入點設備的主鍵,並處理所述告警信息列表中的第一個告警信息;
主鍵刪除模塊,用於在所述當前處理線程處理完所述告警信息列表中的第一個告警信息後,從所述消息中間件中刪除所述預設接入點設備的主鍵。
需要說明的是,上述各個功能模塊的具體實現方式,與步驟S1至S4中的描述一致,這裡便不再贅述。
由上可見,本發明實施方式提供的一種雲接入控制器處理告警信息的方法和裝置,將接入點設備發來的告警信息按照生成時間進行排序,從而保證能夠按照時序處理各個告警信息,避免了因時序混亂而導致的雲AC中AP設備狀態錯誤的情況。進一步地,通過設置主鍵的生效期限,從而可以在處理告警信息的伺服器異常時,由其它伺服器繼續處理告警信息,保證了告警信息能夠被正常處理,從而進一步保證了AP設備狀態能夠被及時更新。
本說明書中的各個實施方式均採用遞進的方式描述,各個實施方式之間相同相似的部分互相參見即可,每個實施方式重點說明的都是與其他實施方式的不同之處。
最後應說明的是:上面對本發明的各種實施方式的描述以描述的目的提供給本領域技術人員。其不旨在是窮舉的、或者不旨在將本發明限制於單個公開的實施方式。如上所述,本發明的各種替代和變化對於上述技術所屬領域技術人員而言將是顯而易見的。因此,雖然已經具體討論了一些另選的實施方式,但是其它實施方式將是顯而易見的,或者本領域技術人員相對容易得出。本發明旨在包括在此已經討論過的本發明的所有替代、修改、和變化,以及落在上述申請的精神和範圍內的其它實施方式。