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