国产丝袜一区二区三区免费视频,亚洲一区二区三区高清不卡,9999久久久久,国产一区二区三区在线看麻豆

短信服務(wù)平臺(tái)SMSSDK進(jìn)化之路和架構(gòu)思路 2019-04-09 16:59:31 分類:公司動(dòng)態(tài)
相關(guān)標(biāo)簽:         短信接口         群發(fā)短信         106短信平臺(tái)         手機(jī)短信驗(yàn)證碼接口         國際短信         網(wǎng)站在線客服系統(tǒng)
SMSSDK3.0在主體架構(gòu)上沒有做太大的改動(dòng),主要在業(yè)務(wù)上做了很多的優(yōu)化工作。最終目的是縮短開發(fā)者集成SDK的時(shí)間,提升速碼云平臺(tái)的服務(wù)品質(zhì)。 在3.0中,主要做了以下升級(jí):

 

短信服務(wù)平臺(tái)SMSSDK進(jìn)化之路和架構(gòu)思路

 

 

 

SMSSDK 是可以叫應(yīng)用快速、免費(fèi)擁有手機(jī)驗(yàn)證功能的SDK。幫助開發(fā)者減少大量的開發(fā)工作,幫助企業(yè)節(jié)省短信群發(fā)費(fèi)用。


SMSSDK到現(xiàn)在為止經(jīng)歷1.0到3.0幾十個(gè)版本的迭代升級(jí),已經(jīng)非常穩(wěn)定和高效。
這個(gè)過程中有:


· sdk的bug修復(fù),性能提升,安全性提升。


· sdk發(fā)送驗(yàn)證碼部分收費(fèi)到完全免費(fèi)的升級(jí)。

· 功能逐漸豐富的過程


· 服務(wù)端架構(gòu)調(diào)整


SMSSDK的初始版本在效能和穩(wěn)定性上有太多的不足和缺失。這些問題主要集中的服務(wù)端,下面我來介紹一下SMSSDK服務(wù)端的進(jìn)化之路。

 


一、SMSSDK1.0版本

 


· 問題


1. 效能性:經(jīng)常出現(xiàn)發(fā)送短信延遲或者失敗的情況;


2. 穩(wěn)定性:服務(wù)不夠穩(wěn)定,需要經(jīng)常重啟服務(wù)保證服務(wù)的相對(duì)正常運(yùn)行;


3. 可用性:開發(fā)者反饋問題后,技術(shù)支持解決時(shí)間較長;


· 原因


在1.0時(shí)期的服務(wù)器架構(gòu)有一些不合理的地方導(dǎo)致出現(xiàn)了上面的問題。下面我會(huì)根據(jù)架構(gòu)圖介紹當(dāng)時(shí)的架構(gòu)細(xì)節(jié),如圖:

 

 

短信接口觸發(fā)交流圖

 

 

 


如圖中所示從SDK到負(fù)載均衡這一階段沒有太大的問題,可以繼續(xù)保持使用。
問題主要出現(xiàn)在一下三個(gè)方面:


· 業(yè)務(wù)服務(wù)


· 數(shù)據(jù)中轉(zhuǎn)


· 數(shù)據(jù)存儲(chǔ)

 


業(yè)務(wù)服務(wù)

 


1. 所有業(yè)務(wù)耦合在一起,經(jīng)常因?yàn)橐粋€(gè)不重要的業(yè)務(wù)流程執(zhí)行緩慢導(dǎo)致整個(gè)驗(yàn)證碼發(fā)送、校驗(yàn)業(yè)務(wù)緩慢或崩潰;


2. 服務(wù)間通信采用普通的HTTP接口交互,且依賴度很高,互相影響較大;


3. 服務(wù)的容錯(cuò)性較低;


4. 通道單一,當(dāng)通道出問題后服務(wù)不可用。


數(shù)據(jù)中轉(zhuǎn)


使用單臺(tái)Redis作為消息隊(duì)列中轉(zhuǎn)數(shù)據(jù)。


redis作為消息隊(duì)列時(shí),經(jīng)常出現(xiàn)內(nèi)存不足的情況,導(dǎo)致前面的服務(wù)響應(yīng)緩慢或不響應(yīng)。


因此,還延伸出了離線處理數(shù)據(jù)的多個(gè)輔助程序,增加維難度。


數(shù)據(jù)存儲(chǔ)


1.存儲(chǔ)數(shù)據(jù)介質(zhì)多樣:MongoDB,Redis,HBase,Elasticsearch。增加系統(tǒng)復(fù)雜度,增加維護(hù)成本;


2.存儲(chǔ)介質(zhì)穩(wěn)定性低,且異常處理缺失,導(dǎo)致一些數(shù)據(jù)丟失;

 


3.日志信息記錄不全,查找問題困難


上面的架構(gòu)給開發(fā),運(yùn)維,技術(shù)支持帶來巨大的工作量,非常影響SMSSDK的服務(wù)質(zhì)量,加上SMSSDK免費(fèi)業(yè)務(wù)線確定,決定對(duì)服務(wù)器架構(gòu)進(jìn)行重構(gòu),由此誕生了SMSSDK2.0。


一、SMSSDK2.0版本


此版本主要解決1.0版本中存在的各種問題,旨在為開發(fā)者提供更快,更穩(wěn)定,更豐富功能的SDK。
架構(gòu)圖:

 

 

 

短信平臺(tái)架構(gòu)圖

 


1.訪問層使用Nginx做負(fù)載均衡;
2.服務(wù)層:要求服務(wù)間互不影響或影響較小。將之前的一個(gè)服務(wù)拆分為:
o 基礎(chǔ)服務(wù):查多寫少的服務(wù),要求響應(yīng)迅速;
o 短信發(fā)送、校驗(yàn)服務(wù):發(fā)送驗(yàn)證碼短信,校驗(yàn)驗(yàn)證碼短信。
o 其他服務(wù):其他開發(fā)者可選集成的服務(wù)。
o Web服務(wù):開發(fā)者服務(wù)器接口服務(wù)。
o 速碼云服務(wù):隸屬于速碼云內(nèi)部的公共服務(wù)。
通過服務(wù)拆分,將業(yè)務(wù)分級(jí),流量分流,各個(gè)服務(wù)間解耦互不影響,服務(wù)穩(wěn)定性穩(wěn)步提升。例如:有一段時(shí)間基礎(chǔ)服務(wù)被攻擊,pv由正常的2000w增加到3.7億,導(dǎo)致基礎(chǔ)服務(wù)響時(shí)間增加。但此時(shí)短信發(fā)送,校驗(yàn)等其他服務(wù)任然能正常使用。

 

3.數(shù)據(jù)處理層:

 

 


數(shù)據(jù)處理層更改的地方比較多,從根本上解決1.0版本的不穩(wěn)定因素。
· 使用kafka做消息隊(duì)列,將業(yè)務(wù)解耦,數(shù)據(jù)統(tǒng)一處理。
· 縮短服務(wù)層的處理流程,通過kafka將復(fù)雜耗時(shí)的處理在數(shù)據(jù)處理中心中異步處理,縮短服務(wù)層的訪問時(shí)間。
· 獨(dú)立短信發(fā)送業(yè)務(wù),專注對(duì)接通道,保證短信發(fā)送穩(wěn)定高效;
· 服務(wù)間調(diào)用使用Dubbo通信。
· Redis不再寫盤,并增加keepalived。
· 接入多條通道,保證短信發(fā)送成功率。當(dāng)一條通道出現(xiàn)問題,自動(dòng)啟動(dòng)備用通道發(fā)送短信。
· 增加業(yè)務(wù)全流程監(jiān)控,并提供技術(shù)支持系統(tǒng)。將之前的問題查詢時(shí)間縮短10倍。
· 服務(wù)配置動(dòng)態(tài)化,即時(shí)生效,且不需要重啟服務(wù)器。
4.數(shù)據(jù)存儲(chǔ):簡化升級(jí)數(shù)據(jù)存儲(chǔ)介質(zhì),提高其穩(wěn)定性,降低維護(hù)難度。
· MongoDB分庫分表以提升查詢寫入性能;
· 升級(jí)優(yōu)化ES的索引結(jié)構(gòu),提升數(shù)據(jù)的完整性;
· 通過kafka傳遞數(shù)據(jù),在數(shù)據(jù)中心統(tǒng)一落地,統(tǒng)一處理落地錯(cuò)誤的數(shù)據(jù)
以上就是SMSSDK2.0版本的服務(wù)端架構(gòu)縮影,在實(shí)際的實(shí)施過程中還遇到了很多問題:
· 新老版本的數(shù)據(jù)兼容合并問題;
· kafka重復(fù)消費(fèi)導(dǎo)致短信重復(fù)發(fā)送的問題;
· 統(tǒng)計(jì)耗費(fèi)過多資源,且數(shù)據(jù)不準(zhǔn)確的問題;
· 通道智能切換的問題;


等等其它大大小小的問題。不過在2.0版本上,進(jìn)行bug查找,修復(fù)的難度降低了很多。
1. 業(yè)務(wù)升級(jí):
· 增加的SDK的智能驗(yàn)證功能;
· 增加了web-api發(fā)送自定短信內(nèi)容的接口;
· 優(yōu)化了SDK的通信協(xié)議,提升安全性和性能;
在SMSSDK2.0穩(wěn)定運(yùn)行之后,由于速碼云內(nèi)部業(yè)務(wù)調(diào)整,開發(fā)者需求增多等諸多因素,SMSSDK邁入了3.0。

 

 

 

三、SMSSDK3.0版本

 

 


SMSSDK3.0在主體架構(gòu)上沒有做太大的改動(dòng),主要在業(yè)務(wù)上做了很多的優(yōu)化工作。最終目的是縮短開發(fā)者集成SDK的時(shí)間,提升速碼云平臺(tái)的服務(wù)品質(zhì)。
在3.0中,主要做了以下升級(jí):
1. 同一個(gè)appkey可以在速碼云的所有sdk中使用。
2. 開發(fā)者可以個(gè)性化配置:短息內(nèi)容,驗(yàn)證碼長度,驗(yàn)證碼有效時(shí)間;
3. 接入了更多優(yōu)質(zhì)通道,提升短信發(fā)成功率;
4. 標(biāo)準(zhǔn)化sdk的通信協(xié)議,方便和其他速碼云下sdk組合使用; 還有bug修復(fù),性能優(yōu)化的工作,就不逐個(gè)列舉了。

 


文章結(jié)語

 


以上就是SMSSDK 2年來的進(jìn)化過程。這其中有服務(wù)崩潰時(shí)的慌張,有數(shù)據(jù)丟失時(shí)的驚恐,有尋找bug時(shí)的迷惑,有服務(wù)穩(wěn)定高效時(shí)的欣喜。


在未來SMSSDK將繼續(xù)保持高效、穩(wěn)定的短信驗(yàn)證和發(fā)送服務(wù)。持續(xù)不斷的技術(shù)升級(jí),為開發(fā)者提更為豐富的功能。

 

 

主站蜘蛛池模板: 婺源县| 长宁县| 闸北区| 揭东县| 镇雄县| 保定市| 冕宁县| 昌吉市| 县级市| 保德县| 繁昌县| 合阳县| 江孜县| 高台县| 江城| 兰坪| 封丘县| 德庆县| 寿阳县| 施秉县| 安仁县| 兰溪市| 砚山县| 江都市| 荥经县| 平潭县| 汉阴县| 凤庆县| 收藏| 页游| 吐鲁番市| 宜章县| 石城县| 海伦市| 沾化县| 朝阳市| 定日县| 罗山县| 天峻县| 青岛市| 晋州市| 在線客服系統(tǒng)