欧美国产日韩在线_99国产欧美日韩一区二三高清不卡_成年人国产亚洲一区二区在线观看_麻豆视频国产免费看_无码丰满人妻一二三区_最近2024中文字幕国语视频_五月天色婷婷亚洲_亚洲综合第一福利_人妻少妇精品无码专区色伊伊_免费观看?级毛片在线播放

短信服務(wù)平臺(tái)SMSSDK進(jìn)化之路和架構(gòu)思路 2019-04-09 16:59:31 分類(lèi):公司動(dòng)態(tài)
相關(guān)標(biāo)簽:         短信接口         群發(fā)短信         106短信平臺(tái)         手機(jī)短信驗(yàn)證碼接口         國(guó)際短信         網(wǎng)站在線(xiàn)客服系統(tǒng)
SMSSDK3.0在主體架構(gòu)上沒(méi)有做太大的改動(dòng),主要在業(yè)務(wù)上做了很多的優(yōu)化工作。最終目的是縮短開(kāi)發(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。幫助開(kāi)發(fā)者減少大量的開(kāi)發(fā)工作,幫助企業(yè)節(jié)省短信群發(fā)費(fèi)用。


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


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


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

· 功能逐漸豐富的過(guò)程


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


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

 


一、SMSSDK1.0版本

 


· 問(wèn)題


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


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


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


· 原因


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

 

 

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

 

 

 


如圖中所示從SDK到負(fù)載均衡這一階段沒(méi)有太大的問(wèn)題,可以繼續(xù)保持使用。
問(wèn)題主要出現(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接口交互,且依賴(lài)度很高,互相影響較大;


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


4. 通道單一,當(dāng)通道出問(wèn)題后服務(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)。


因此,還延伸出了離線(xiàn)處理數(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.日志信息記錄不全,查找問(wèn)題困難


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


一、SMSSDK2.0版本


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

 

 

 

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

 


1.訪(fǎng)問(wèn)層使用Nginx做負(fù)載均衡;
2.服務(wù)層:要求服務(wù)間互不影響或影響較小。將之前的一個(gè)服務(wù)拆分為:
o 基礎(chǔ)服務(wù):查多寫(xiě)少的服務(wù),要求響應(yīng)迅速;
o 短信發(fā)送、校驗(yàn)服務(wù):發(fā)送驗(yàn)證碼短信,校驗(yàn)驗(yàn)證碼短信。
o 其他服務(wù):其他開(kāi)發(fā)者可選集成的服務(wù)。
o Web服務(wù):開(kāi)發(fā)者服務(wù)器接口服務(wù)。
o 速碼云服務(wù):隸屬于速碼云內(nèi)部的公共服務(wù)。
通過(guò)服務(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ù)層的處理流程,通過(guò)kafka將復(fù)雜耗時(shí)的處理在數(shù)據(jù)處理中心中異步處理,縮短服務(wù)層的訪(fǎng)問(wèn)時(shí)間。
· 獨(dú)立短信發(fā)送業(yè)務(wù),專(zhuān)注對(duì)接通道,保證短信發(fā)送穩(wěn)定高效;
· 服務(wù)間調(diào)用使用Dubbo通信。
· Redis不再寫(xiě)盤(pán),并增加keepalived。
· 接入多條通道,保證短信發(fā)送成功率。當(dāng)一條通道出現(xiàn)問(wèn)題,自動(dòng)啟動(dòng)備用通道發(fā)送短信。
· 增加業(yè)務(wù)全流程監(jiān)控,并提供技術(shù)支持系統(tǒng)。將之前的問(wèn)題查詢(xún)時(shí)間縮短10倍。
· 服務(wù)配置動(dòng)態(tài)化,即時(shí)生效,且不需要重啟服務(wù)器。
4.數(shù)據(jù)存儲(chǔ):簡(jiǎn)化升級(jí)數(shù)據(jù)存儲(chǔ)介質(zhì),提高其穩(wěn)定性,降低維護(hù)難度。
· MongoDB分庫(kù)分表以提升查詢(xún)寫(xiě)入性能;
· 升級(jí)優(yōu)化ES的索引結(jié)構(gòu),提升數(shù)據(jù)的完整性;
· 通過(guò)kafka傳遞數(shù)據(jù),在數(shù)據(jù)中心統(tǒng)一落地,統(tǒng)一處理落地錯(cuò)誤的數(shù)據(jù)
以上就是SMSSDK2.0版本的服務(wù)端架構(gòu)縮影,在實(shí)際的實(shí)施過(guò)程中還遇到了很多問(wèn)題:
· 新老版本的數(shù)據(jù)兼容合并問(wèn)題;
· kafka重復(fù)消費(fèi)導(dǎo)致短信重復(fù)發(fā)送的問(wèn)題;
· 統(tǒng)計(jì)耗費(fèi)過(guò)多資源,且數(shù)據(jù)不準(zhǔn)確的問(wèn)題;
· 通道智能切換的問(wèn)題;


等等其它大大小小的問(wèn)題。不過(guò)在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)整,開(kāi)發(fā)者需求增多等諸多因素,SMSSDK邁入了3.0。

 

 

 

三、SMSSDK3.0版本

 

 


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

 


文章結(jié)語(yǔ)

 


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


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

 

 

在線(xiàn)客服系統(tǒng)