System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術屬于云計算的,具體涉及一種基于消息隊列的觸發式計費方法、系統及存儲介質。
技術介紹
1、在數字化時代,消息通訊已經成為企業和個人日常溝通的重要工具。當基站收到終端的請求后,將會觸發地方機房的計費操作。由于終端用戶的數據量級大,對及時性、順序性有較高要求,體現了對計費系統的性能和可用性提出了更高的要求。然而,在傳統方式中,客戶端的請求必須等待業務處理完成后,再將結果返回。這種方式雖然保證了實時性,但在高并發情況下,會導致服務緩慢甚至宕機,造成服務的不穩定、低可用。
2、amqp,即?advanced?message?queuing?protocol(高級消息隊列協議),是一個網絡協議,是應用層協議的一個開放標準,為面向消息的中間件設計。基于此協議的客戶端與消息中間件可傳遞消息,并不受客戶端/中間件不同產品,不同的開發語言等條件的限制。消息隊列中間件包括rabbitmq,rocketmq,kafka等,用于在分布式系統中存儲轉發消息,其核心作用,就是將業務處理解耦。如圖1所示,若引入消息隊列,則調用會先進入消息隊列中排隊,無需等待業務的結束。消息隊列中間件會將消息按順序自動分配給壓力低的節點,進行業務處理。這就做到了在業務量較小時,幾乎實時;業務量較大時,稍有延遲。這樣做保證了服務整體穩定、高可用。
技術實現思路
1、本專利技術的目的在于提供一種基于消息隊列的觸發式計費方法、系統及存儲介質,旨在解決上述的問題。
2、本專利技術主要通過以下技術方案實現:
3、一種基于消息隊列的觸發式計費方法,包括以下步驟:
4、步驟s1:?采集器從采集對象中采集觸發計費事件的信息,每當采集對象觸發計費事件,便記錄計費信息并寫入采集文件中,周期性將采集文件的內容通過消息隊列發送至計費中心;
5、步驟s2:根據從消息隊列中依次接收的計費信息,計費中心依次匹配計費規則;每個計費信息經過計費規則計算之后,得到計算結果;當計費信息全部計算完畢之后,將全部計費結果通過消息隊列發送至記賬服務端;
6、步驟s3:根據從消息隊列接收的計費結果,記賬服務端進行記賬操作,所述記賬操作包括從用戶的余額扣減金額、累加用戶的本期賬單金額和記錄用戶的賬單明細;若記賬操作觸發了用戶的余額量報警或用戶的停機規則,則記賬服務端通知設備管理端,通知或禁用用戶的相關權限。
7、為了更好地實現本專利技術,進一步地,所述步驟s1包括以下步驟:
8、步驟s11:采集器啟動時,先查看是否存在還未發送的采集文件,若存在,則將采集文件的內容發送至消息隊列;
9、步驟s12:采集器啟動后,通過監聽器監控采集對象,當監聽到計費內容時,則生成一條帶有唯一標識的計費信息,并將計費信息寫入采集文件中;
10、步驟s13:定時發送任務:首先將監聽寫入的文件指向新的采集文件,并將舊的采集文件的內容發送至消息隊列中,然后刪除舊的采集文件;
11、步驟s14:通過容量監控持續監控消息隊列中文件內容的大小,若達到設定閾值,則觸發一次定時發送任務,并重置發送任務的時間。
12、為了更好地實現本專利技術,進一步地,所述步驟s2包括以下步驟:
13、步驟s21:去重、分批處理:將接收的計費信息進行去重處理,保證每條數據的全局唯一;然后對計費信息進行分組,每個分組擁有相似的匹配規則,每個分組單獨使用一個線程;
14、步驟s22:計費:對當前分組的計費信息,進行計費規則匹配;當前分組的每個計費信息根據匹配的計費規則計算得到計算結果;當所有分組的數據全部計算完畢后,則對全部計算結果進行匯總,并發到消息隊列中。
15、為了更好地實現本專利技術,進一步地,所述步驟s21中,在對計費信息去重時,首先自檢去重,然后按照消息產生的時間進行分流,對于1分鐘以內產生的數據,在redis內去重;對于距離產生時間已經超過1分鐘的數據,在es內去重;所有不重復的計費信息,都寫入es去重庫中。
16、為了更好地實現本專利技術,進一步地,所述步驟s22中,對當前分組的計費信息,首先進行第一次匹配:根據采集到的計費信息,匹配對應的規則;然后進行第二次匹配:基于第一次匹配的規則,根據計費信息的有效期、使用次數匹配不同優先級的計算公式;若匹配到計算公式,則進行計算,否則將此計費記錄記錄到異常記錄表;若第一次匹配到多個規則,并通過第二次匹配到多個計算公式,則最終的計算結果為多個公式計算結果的加和。
17、為了更好地實現本專利技術,進一步地,所述步驟s3包括以下步驟:
18、步驟s31:接收到消息隊列的消息后,將此批信息根據賬戶分組,統計每個賬戶的扣費信息,并在每個賬戶上做扣減操作;若觸發賬戶余額的警戒值,則設備管理端執行對應的權限限制操作;
19、步驟s32:賬單累加:對單個賬單內的賬戶進一步分組,找到每筆消費需要記錄的賬單;
20、步驟s33:明細記錄:將每一條消費記錄補充賬戶信息、賬單信息、對賬信息,然后進行入庫。
21、為了更好地實現本專利技術,進一步地,所述明細記錄包括并行操作的主線程和刪除線程:
22、主線程:每一批次明細數據,寫入一個明細文件中,文件名全局唯一;明細文件路徑寫入一個明細臨時表中;當一個明細臨時表正在寫入時,此時釋放表級鎖,不能執行刪除和更新;當寫入表數量到達閾值時,則寫入表將切換至刪除線程沒有正在讀取的表;
23、刪除線程:通過讀取明細臨時表獲取明細文件,然后將明細文件中的明細數據逐行寫入非關型數據庫;當一個文件內的數據完全寫入,則刪除這個文件對應的臨時表數據,并執行提交。
24、本專利技術主要通過以下技術方案實現:
25、一種基于消息隊列的觸發式計費系統,基于上述的觸發式計費方法進行,包括從前至后依次設置的采集器、計費中心和記賬服務端,所述采集器用于從采集對象中采集觸發計費事件的信息,并周期性通過消息隊列將采集的信息發送至計費中心;
26、所述計費中心用于根據消息隊列發送過來的需要計費的信息,依次匹配計費規則進行計費,批次計算完畢后,通過消息隊列將該批次的計費結果發送至記賬服務端;
27、所述記賬服務端用于根據消息隊列發送過來的計費結果進行記賬操作。
28、為了更好地實現本專利技術,進一步地,還包括設備管理端,所述設備管理端分別與記賬服務端以及若干個采集對象連接;所述設備管理端用于操縱終端設備的服務,基于接收的請求對指定終端設備或者功能進行禁用或啟用操作。
29、一種計算機可讀存儲介質,其上存儲有計算機程序,該程序被處理器執行時實現上述的觸發式計費方法。
30、本專利技術的有益效果如下:
31、(1)本專利技術建立了以消息隊列為核心的信息交互樞紐,通過采集器、計費中心、記賬服務的緊密配合,解決了高并發計費時可能出現的高時延、易出錯的問題,最終形成一個完整的高可用性解決方案。本專利技術的計費方式可本文檔來自技高網...
【技術保護點】
1.一種基于消息隊列的觸發式計費方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的一種基于消息隊列的觸發式計費方法,其特征在于,所述步驟S1包括以下步驟:
3.根據權利要求1所述的一種基于消息隊列的觸發式計費方法,其特征在于,所述步驟S2包括以下步驟:
4.根據權利要求3所述的一種基于消息隊列的觸發式計費方法,其特征在于,所述步驟S21中,在對計費信息去重時,首先自檢去重,然后按照消息產生的時間進行分流,對于1分鐘以內產生的數據,在redis內去重;對于距離產生時間已經超過1分鐘的數據,在es內去重;所有不重復的計費信息,都寫入es去重庫中。
5.根據權利要求3所述的一種基于消息隊列的觸發式計費方法,其特征在于,所述步驟S22中,對當前分組的計費信息,首先進行第一次匹配:根據采集到的計費信息,匹配對應的規則;然后進行第二次匹配:基于第一次匹配的規則,根據計費信息的有效期、使用次數匹配不同優先級的計算公式;若匹配到計算公式,則進行計算,否則將此計費記錄記錄到異常記錄表;若第一次匹配到多個規則,并通過第二次匹配到多個計算公式,則
6.根據權利要求1所述的一種基于消息隊列的觸發式計費方法,其特征在于,所述步驟S3包括以下步驟:
7.根據權利要求6所述的一種基于消息隊列的觸發式計費方法,其特征在于,所述明細記錄包括并行操作的主線程和刪除線程:
8.一種基于消息隊列的觸發式計費系統,基于權利要求1-7任一項所述的觸發式計費方法進行,其特征在于,包括從前至后依次設置的采集器、計費中心和記賬服務端,所述采集器用于從采集對象中采集觸發計費事件的信息,并周期性通過消息隊列將采集的信息發送至計費中心;
9.根據權利要求8所述的一種基于消息隊列的觸發式計費系統,其特征在于,還包括設備管理端,所述設備管理端分別與記賬服務端以及若干個采集對象連接;所述設備管理端用于操縱終端設備的服務,基于接收的請求對指定終端設備或者功能進行禁用或啟用操作。
10.一種計算機可讀存儲介質,其上存儲有計算機程序,其特征在于,該程序被處理器執行時實現權利要求1-7任一項所述的觸發式計費方法。
...【技術特征摘要】
1.一種基于消息隊列的觸發式計費方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的一種基于消息隊列的觸發式計費方法,其特征在于,所述步驟s1包括以下步驟:
3.根據權利要求1所述的一種基于消息隊列的觸發式計費方法,其特征在于,所述步驟s2包括以下步驟:
4.根據權利要求3所述的一種基于消息隊列的觸發式計費方法,其特征在于,所述步驟s21中,在對計費信息去重時,首先自檢去重,然后按照消息產生的時間進行分流,對于1分鐘以內產生的數據,在redis內去重;對于距離產生時間已經超過1分鐘的數據,在es內去重;所有不重復的計費信息,都寫入es去重庫中。
5.根據權利要求3所述的一種基于消息隊列的觸發式計費方法,其特征在于,所述步驟s22中,對當前分組的計費信息,首先進行第一次匹配:根據采集到的計費信息,匹配對應的規則;然后進行第二次匹配:基于第一次匹配的規則,根據計費信息的有效期、使用次數匹配不同優先級的計算公式;若匹配到計算公式,則進行計算,否則將此計費記錄記錄到異常記錄表;若第一次匹配到多個規則,并通過...
【專利技術屬性】
技術研發人員:佟昆,鮑衛,王軍,施俊龍,
申請(專利權)人:中通服軟件科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。