云通訊網(wǎng)絡企業(yè)短信群發(fā)通知平臺超高速下發(fā)的解決方案
來源:原創(chuàng) 時間:2018-03-03 瀏覽:0 次本文通過對目前云通訊平臺短信提醍平臺進行升級優(yōu)化,從系統(tǒng)架構(gòu)調(diào)整和業(yè)務邏輯控制兩方面進行改造:引入隊列和線程池,提高接口處理效率,同時進行短信流量閥值控制,減少中間環(huán)節(jié)和數(shù)據(jù)協(xié)議轉(zhuǎn)換過程,實現(xiàn)了大容量短信的超高速下發(fā)
現(xiàn)狀說明
目前云通訊平臺短信系統(tǒng)的業(yè)務處理流程為:來自各外部系統(tǒng)的短信教據(jù)提交至短信提醒平臺后,散列到磁盤相應目錄中,然后由數(shù)據(jù)處理程序掃描相應磁盤目錄下的待發(fā)送數(shù)
據(jù),按照cmpp協(xié)議堤交短信網(wǎng)關四進行發(fā)送。在上逑流程中,系統(tǒng)處理性能的瓶頸主要集中在兩點:磁盤和數(shù)據(jù)處理程序。
解決方案
為提升目前云通訊平臺短信提醒平臺的整體性能,本文主要從系統(tǒng)架構(gòu)調(diào)整和業(yè)務邏控制兩方面進行系統(tǒng)優(yōu)化。
系統(tǒng)架構(gòu)調(diào)整
(1)使用本地數(shù)據(jù)庫做為程序之間交互的介質(zhì),可以發(fā)揮數(shù)據(jù)庫穩(wěn)定、高效、方便的優(yōu)點,磁盤放到了次要的位置做廷遲信息的保存和故障處理使用;
(2)在具體的接口處理層引入隊列和處理線程池,程序?qū)呙璧降臄?shù)據(jù)首先放入隊列,由處理線程池中的線程讀取隊列中數(shù)據(jù)進行驗證、封裝、入庫,以提高前端的處理效率;同時沒一個掃描線程對應一張數(shù)據(jù)庫表進行數(shù)據(jù)讀取,讀取的數(shù)據(jù)寫入到隊列中由發(fā)送線程進行處理提交短館網(wǎng)關進行短信發(fā)送
數(shù)據(jù)耬收層設計
數(shù)據(jù)接收程序在接收到各系統(tǒng)的數(shù)據(jù)后首先放到隊列中,由分析程序處理,這樣保證外圍系統(tǒng)不積壓數(shù)據(jù);程序內(nèi)部使用線程池技術,將數(shù)據(jù)驗證程序運行在單獨的線程中,線程不斷的讀取隊列里數(shù)據(jù)進行分析處理,并保持到本地中間表中;同時為了達到中間表的數(shù)據(jù)均衡性,路由算法根據(jù)手機尾號對應到10張數(shù)據(jù)分表中。
②信息推送層設計說明
信息推送程序啟動單獨的進程掃描匯聚到本地數(shù)據(jù)庫表中的數(shù)據(jù),這樣充分利用數(shù)據(jù)庫的查詢效率,提供系統(tǒng)吞吐量;根據(jù)實際測試效果 oracle數(shù)據(jù)庫可以實現(xiàn)以6000條/s的效率掃描數(shù)據(jù),如果硬件資源有限,可以在接口掃描程序中配置將數(shù)據(jù)保存到其他主機的數(shù)據(jù)庫實例中,方便實現(xiàn)系統(tǒng)擴容;信息送程序中與網(wǎng)美的連接采用連接線程池的方式,每個線程獨自運行數(shù)據(jù)發(fā)送程序?qū)年犃兄腥〉玫臄?shù)據(jù)發(fā)送給
短信網(wǎng)關均
業(yè)務邏輯控制
在上述現(xiàn)狀分析中,與短信網(wǎng)關的交互為系統(tǒng)處理的瓶頸,針對此問題對數(shù)據(jù)處理程序進行改造,設置短信網(wǎng)關接收閥值控制,對于超出閥值的數(shù)據(jù)自動直連短信中心進行數(shù)據(jù)的提交、發(fā)送。具體改造說明如下:
(1)對業(yè)務平臺提文短信網(wǎng)關的程序進行改造,對于提交速度超過其閥值的情況能夠反饋給業(yè)務平臺;
(2)業(yè)務系統(tǒng)接收到短信網(wǎng)美容量飽和的通知后,能主動和短信中心建立開通文件傳接口,將剩余的發(fā)送數(shù)據(jù)通過該接口直接推送給短信中心;
(3)短信中心利用現(xiàn)有的處理與協(xié)議,對業(yè)務系純直接推送過來的數(shù)據(jù)進行封裝并且轉(zhuǎn)發(fā)通過上逑改造,增加一條業(yè)務系統(tǒng)和短信中心直連的鏈路,通過該鏈路可以實現(xiàn)業(yè)務數(shù)據(jù)超過閥值的數(shù)據(jù)直接傳遞短信中心,減少了中間環(huán)節(jié)提升發(fā)送效率。
經(jīng)驗總結(jié)
公司在此次對云通訊平臺短信提醒平臺系統(tǒng)處理性能改造優(yōu)化的項具實施中,總結(jié)了兩點主要經(jīng)驗:多線程業(yè)務處理和短信網(wǎng)關閥值拉制。
多線程業(yè)務處理
短信提醒平臺到短信網(wǎng)關的多線程路由設計:利用手機尾號將待下發(fā)數(shù)據(jù)平均分配至多個待發(fā)送數(shù)據(jù)表,啟動多進程分別處理每個待發(fā)送數(shù)據(jù)表數(shù)據(jù),每個進程在啟動多線程和網(wǎng)關建立連接,充分利用網(wǎng)關提供的連接數(shù),實現(xiàn)短信提醒平臺到短信網(wǎng)關推送效率的最大化。
短信網(wǎng)關閥值控制
短信提醒平臺根據(jù)短信網(wǎng)關的處理閥值速度,提交待發(fā)送數(shù)搢至短信中心:在短信網(wǎng)關推送速度和效率達到最大時待發(fā)送數(shù)表出現(xiàn)積壓待發(fā)送數(shù)播超過一定閾值時,將其余數(shù)據(jù)直接推送至短信中心,減少中間環(huán)節(jié)處理,提升發(fā)送效率。