System.ArgumentOutOfRangeException: 索引和長(zhǎng)度必須引用該字符串內(nèi)的位置。 參數(shù)名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術(shù)實(shí)現(xiàn)步驟摘要】
本專利技術(shù)涉及短信通信,更具體地說(shuō),它涉及一種基于檢測(cè)平臺(tái)的短信下發(fā)管控方法。
技術(shù)介紹
1、目前,給某個(gè)手機(jī)號(hào)發(fā)短信前,都需要對(duì)手機(jī)號(hào)做一系列檢測(cè),用于提高送達(dá)率、降低投訴率。檢測(cè)有很多方面,是否是攜號(hào)轉(zhuǎn)網(wǎng)號(hào)碼、是否是黑名單號(hào)碼、發(fā)送時(shí)間限制、發(fā)送頻次限制等。檢測(cè)結(jié)果為可以下發(fā)時(shí),才會(huì)給對(duì)應(yīng)的手機(jī)號(hào)下發(fā)短信,避免手機(jī)終端用戶投訴;攜轉(zhuǎn)功能可以有效提高送達(dá)率。
2、目前技術(shù)有以下不足:
3、1、性能差:現(xiàn)有的很多平臺(tái)功能單一,檢測(cè)手機(jī)一輪下來(lái)可能要調(diào)用幾次不同的接口,耗時(shí)多,很難應(yīng)對(duì)高并發(fā)的需求場(chǎng)景。
4、2、對(duì)接成本高:不同接口返回的參數(shù)格式、狀態(tài)碼等不相同,需要做不同處理,增加了對(duì)接的成本。
5、3、維護(hù)成本高:一旦對(duì)接的接口的地址、參數(shù)發(fā)生變化,調(diào)用方也需要做出相應(yīng)的調(diào)整,增加了維護(hù)成本。
6、4、容錯(cuò)性差:一旦資源方出現(xiàn)問(wèn)題,會(huì)導(dǎo)致調(diào)用失敗,進(jìn)而影響業(yè)務(wù)。
技術(shù)實(shí)現(xiàn)思路
1、本專利技術(shù)要解決的技術(shù)問(wèn)題是針對(duì)現(xiàn)有技術(shù)的上述不足,本專利技術(shù)的目的是提供一種基于檢測(cè)平臺(tái)的短信下發(fā)管控方法,可以有效解決現(xiàn)有的性能差、對(duì)接成本高、維護(hù)成本高、容錯(cuò)性差的問(wèn)題。
2、本專利技術(shù)的技術(shù)手段是:一種基于檢測(cè)平臺(tái)的短信下發(fā)管控方法,通過(guò)將主體業(yè)務(wù)采用比redis性能更高的本地緩存,通過(guò)合理的數(shù)據(jù)結(jié)構(gòu)和緩存模式,實(shí)現(xiàn)更高性能的信息查詢,將redis作為輔助緩存;
3、通過(guò)統(tǒng)一手機(jī)檢測(cè)入口、統(tǒng)一檢測(cè)結(jié)果格式、統(tǒng)一狀
4、通過(guò)固有緩存+刷新緩存的方式維護(hù)一個(gè)本地信息庫(kù),再由刷新組件+調(diào)度組件實(shí)現(xiàn)本地信息庫(kù)的及時(shí)刷新,保證接口地址、參數(shù)不變的同時(shí)還能有極高的準(zhǔn)確率;
5、通過(guò)維護(hù)一份高準(zhǔn)確率的本地信息庫(kù),使得在資源方或資源庫(kù)出現(xiàn)異常時(shí),不影響業(yè)務(wù)正常使用,僅需要保證本地信息庫(kù)和服務(wù)接口穩(wěn)定即可,可以降低運(yùn)維成本,提高穩(wěn)定性和容錯(cuò)性。
6、作為進(jìn)一步地改進(jìn),緩存模型為:根據(jù)需要檢測(cè)的內(nèi)容,分別創(chuàng)建多組hash?map;key按檢測(cè)類型和手機(jī)號(hào)前3位分組,value使用bit?set存儲(chǔ)對(duì)應(yīng)的手機(jī)號(hào)后8位。
7、進(jìn)一步地,bit?set內(nèi)部使用位向量來(lái)表示數(shù)據(jù),一個(gè)位就可以表示一個(gè)手機(jī)號(hào)。
8、進(jìn)一步地,bit?set內(nèi)部還提供了豐富的位操作方法,包括設(shè)置位、清除位、翻轉(zhuǎn)位、查找位。
9、進(jìn)一步地,手機(jī)檢測(cè)過(guò)程包括:
10、步驟11.接收到請(qǐng)求后,先從緩存讀取用戶配置的白名單緩存,根據(jù)手機(jī)號(hào)前3位獲取緩存的bit?set,再根據(jù)手機(jī)號(hào)后8位判斷是否在bit?set中,存在則視為白名單,執(zhí)行步驟16;否則執(zhí)行步驟12;
11、步驟12.從緩存讀取用戶配置的時(shí)間區(qū)段限制緩存,再判斷當(dāng)前時(shí)間是否在禁發(fā)時(shí)間區(qū)段內(nèi),是的話直接返回當(dāng)前不適合下發(fā)短信到該手機(jī)號(hào)的響應(yīng);否則執(zhí)行步驟13;
12、步驟13.從緩存讀取用戶配置的頻次限制,根據(jù)頻次數(shù)和手機(jī)號(hào)前3位查詢對(duì)應(yīng)的緩存,獲取緩存的bit?set,再根據(jù)手機(jī)后8位判斷當(dāng)前手機(jī)號(hào)是否在這個(gè)bit?set里,在則判斷為已超頻,返回不適合下發(fā)短信的響應(yīng);如果不在bit?set里,則查詢r(jià)edis緩存的已下發(fā)次數(shù),超頻了則返回超頻,同時(shí)將redis數(shù)據(jù)同步到各個(gè)服務(wù)器的bit?set緩存里;沒(méi)超頻則將下發(fā)次數(shù)+1,再同時(shí)刷新到redis緩存和各個(gè)服務(wù)器的bit?set緩存里,執(zhí)行步驟14;
13、步驟14.從緩存讀取公共黑名單緩存,根據(jù)手機(jī)號(hào)前3位獲取緩存的公共黑名單bit?set,再根據(jù)手機(jī)號(hào)后8位判斷是否在這個(gè)bit?set里,在的話直接返回公共黑名單限制,同時(shí)將手機(jī)號(hào)及是否黑名單推送給刷新組件和調(diào)度組件做緩存判斷更新處理;否則執(zhí)行步驟15;
14、步驟15.從緩存讀取用戶配置的黑名單緩存,根據(jù)手機(jī)號(hào)前3位獲取緩存的用戶黑名單bit?set,再根據(jù)手機(jī)號(hào)后8位判斷是否在這個(gè)bit?set里,在的話直接返回用戶黑名單限制,同時(shí)將手機(jī)號(hào)推送給刷新組件和調(diào)度組件做緩存判斷更新處理;否則執(zhí)行步驟16;
15、步驟16.校驗(yàn)是否攜號(hào)轉(zhuǎn)網(wǎng),根據(jù)手機(jī)號(hào)前3位或前4位判斷手機(jī)號(hào)的原始?xì)w屬運(yùn)營(yíng)商,從緩存里獲取非原始?xì)w屬運(yùn)營(yíng)商對(duì)應(yīng)的bit?set,根據(jù)手機(jī)號(hào)后8位判斷是否在緩存里,在的話則是攜號(hào)轉(zhuǎn)網(wǎng)號(hào)碼,返回對(duì)應(yīng)的真實(shí)所屬運(yùn)營(yíng)商;不在則視為非攜號(hào)轉(zhuǎn)網(wǎng)號(hào)碼;同時(shí)將手機(jī)號(hào)及是否攜號(hào)轉(zhuǎn)網(wǎng)號(hào)碼推送給刷新組件和調(diào)度組件做緩存判斷更新處理。
16、進(jìn)一步地,刷新組件和調(diào)度組件處理號(hào)碼過(guò)程包括:
17、步驟21.接收到檢測(cè)平臺(tái)推送過(guò)來(lái)的號(hào)碼,根據(jù)refresh_手機(jī)號(hào)查redis緩存,如果存在則拋棄,處理下一個(gè)號(hào)碼;如果不存在則記錄到redis里,保存第一設(shè)定時(shí)間,用于控制一個(gè)號(hào)碼在第一設(shè)定時(shí)間內(nèi)最多只刷新1次;同時(shí)將號(hào)碼當(dāng)做活躍號(hào)碼,記錄到redis緩存里,存第二設(shè)定時(shí)間;
18、步驟22.獲取號(hào)碼刷新類型,如果是想刷新公共黑名單,則將號(hào)碼推給黑名單的調(diào)度組件,黑名單調(diào)度組件根據(jù)配置的權(quán)重選擇調(diào)用哪個(gè)資源庫(kù)查詢號(hào)碼的黑名單情況;
19、資源庫(kù)返回號(hào)碼是否為公共黑名單號(hào)碼,再跟檢測(cè)平臺(tái)傳過(guò)來(lái)的是否黑名單號(hào)碼作比較;如果一樣,說(shuō)明黑名單信息沒(méi)變化,拋棄,處理下一個(gè)號(hào)碼;如果發(fā)生了變化,則將該號(hào)碼最新的狀態(tài)推送給檢測(cè)平臺(tái),刷新緩存;
20、如果是想刷新是否攜轉(zhuǎn)號(hào)碼,則執(zhí)行步驟23;
21、步驟23.將號(hào)碼推給攜轉(zhuǎn)信息的調(diào)度組件,攜轉(zhuǎn)信息調(diào)度組件根據(jù)配置的權(quán)重選擇調(diào)用哪個(gè)資源庫(kù)查詢號(hào)碼的攜號(hào)轉(zhuǎn)網(wǎng)情況;
22、資源庫(kù)返回號(hào)碼是否為攜號(hào)轉(zhuǎn)網(wǎng),轉(zhuǎn)了哪個(gè)網(wǎng),再跟檢測(cè)平臺(tái)傳過(guò)來(lái)的是轉(zhuǎn)了哪個(gè)網(wǎng)作比較;如果一樣,說(shuō)明攜轉(zhuǎn)信息沒(méi)變化,拋棄,處理下一個(gè)號(hào)碼;如果發(fā)生了變化,則將該號(hào)碼最新的狀態(tài)推送給檢測(cè)平臺(tái),刷新緩存;
23、步驟24.用戶對(duì)自己的黑白名單、發(fā)送時(shí)間限制、發(fā)送頻次限制進(jìn)行調(diào)整時(shí),配置組件就要立即向檢測(cè)平臺(tái)推送最新的配置信息,用于刷新緩存;
24、步驟25.刷新緩存組件輪詢掃描步驟21生成的活躍號(hào)碼,調(diào)用調(diào)度組件查詢最新信息,刷新緩存,用以保證數(shù)據(jù)的及時(shí)性,提高準(zhǔn)確率。
25、進(jìn)一步地,所述第一設(shè)定時(shí)間為5分鐘,所述第二設(shè)定時(shí)間為1天。
26、有益效果
27、本專利技術(shù)與現(xiàn)有技術(shù)相比,具有的優(yōu)點(diǎn)為:
28、1.本專利技術(shù)的性能高,幾乎全是內(nèi)存操作,少數(shù)情況會(huì)調(diào)用到redis緩存,內(nèi)存操作都是微秒級(jí),8核cpu的單節(jié)點(diǎn)就足以支撐萬(wàn)級(jí)的并發(fā)。
29、2.本專利技術(shù)的對(duì)接成本低,僅需要對(duì)接檢測(cè)平臺(tái)的檢測(cè)接口,各種類型的檢測(cè)結(jié)果、各個(gè)資源庫(kù)的信息都由檢測(cè)平臺(tái)統(tǒng)一包裝,調(diào)用方無(wú)需關(guān)心。
30、3.本專利技術(shù)的維護(hù)成本低,資源庫(kù)的地址、參數(shù)發(fā)生變化時(shí),只需要調(diào)整調(diào)度組件和刷新組件,面向應(yīng)用的檢測(cè)平臺(tái)不需要做任何調(diào)整,也不需本文檔來(lái)自技高網(wǎng)...
【技術(shù)保護(hù)點(diǎn)】
1.一種基于檢測(cè)平臺(tái)的短信下發(fā)管控方法,其特征在于,通過(guò)將主體業(yè)務(wù)采用比Redis性能更高的本地緩存,通過(guò)合理的數(shù)據(jù)結(jié)構(gòu)和緩存模式,實(shí)現(xiàn)更高性能的信息查詢,將Redis作為輔助緩存;
2.根據(jù)權(quán)利要求1所述的一種基于檢測(cè)平臺(tái)的短信下發(fā)管控方法,其特征在于,緩存模型為:根據(jù)需要檢測(cè)的內(nèi)容,分別創(chuàng)建多組Hash?Map;key按檢測(cè)類型和手機(jī)號(hào)前3位分組,value使用Bit?Set存儲(chǔ)對(duì)應(yīng)的手機(jī)號(hào)后8位。
3.根據(jù)權(quán)利要求2所述的一種基于檢測(cè)平臺(tái)的短信下發(fā)管控方法,其特征在于,BitSet內(nèi)部使用位向量來(lái)表示數(shù)據(jù),一個(gè)位就可以表示一個(gè)手機(jī)號(hào)。
4.根據(jù)權(quán)利要求2所述的一種基于檢測(cè)平臺(tái)的短信下發(fā)管控方法,其特征在于,BitSet內(nèi)部還提供了豐富的位操作方法,包括設(shè)置位、清除位、翻轉(zhuǎn)位、查找位。
5.根據(jù)權(quán)利要求1所述的一種基于檢測(cè)平臺(tái)的短信下發(fā)管控方法,其特征在于,手機(jī)檢測(cè)過(guò)程包括:
6.根據(jù)權(quán)利要求1所述的一種基于檢測(cè)平臺(tái)的短信下發(fā)管控方法,其特征在于,刷新組件和調(diào)度組件處理號(hào)碼過(guò)程包括:
7.根據(jù)權(quán)利要求6所
...【技術(shù)特征摘要】
1.一種基于檢測(cè)平臺(tái)的短信下發(fā)管控方法,其特征在于,通過(guò)將主體業(yè)務(wù)采用比redis性能更高的本地緩存,通過(guò)合理的數(shù)據(jù)結(jié)構(gòu)和緩存模式,實(shí)現(xiàn)更高性能的信息查詢,將redis作為輔助緩存;
2.根據(jù)權(quán)利要求1所述的一種基于檢測(cè)平臺(tái)的短信下發(fā)管控方法,其特征在于,緩存模型為:根據(jù)需要檢測(cè)的內(nèi)容,分別創(chuàng)建多組hash?map;key按檢測(cè)類型和手機(jī)號(hào)前3位分組,value使用bit?set存儲(chǔ)對(duì)應(yīng)的手機(jī)號(hào)后8位。
3.根據(jù)權(quán)利要求2所述的一種基于檢測(cè)平臺(tái)的短信下發(fā)管控方法,其特征在于,bitset內(nèi)部使用位向量來(lái)表示數(shù)據(jù),一個(gè)位...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:廖永鑫,黃富偉,彭志衛(wèi),吳開(kāi)兵,蘇富豪,韋俊妮,
申請(qǐng)(專利權(quán))人:廣西東信易通科技有限公司,
類型:發(fā)明
國(guó)別省市:
還沒(méi)有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。