三網(wǎng)捷信-高品質(zhì)106通道的短信平臺(tái)
sms短信平臺(tái)(sms短信平臺(tái)有哪些)
- 作者:admin
- 發(fā)表時(shí)間:2022年5月18日下午4:02
- 來(lái)源:未知
為應(yīng)對(duì)傳統(tǒng)單體架構(gòu)的缺陷,微服務(wù)架構(gòu)被企業(yè)廣泛應(yīng)用。Spring Cloud 為開(kāi)發(fā)人員提供了快速構(gòu)建微服務(wù)的系列工具,但是并沒(méi)有進(jìn)行相關(guān)整合, sms-platform 是在其基礎(chǔ)上搭建的一套可以快速實(shí)現(xiàn)微服務(wù)的基礎(chǔ)腳手架工具。
1、傳統(tǒng)單體架構(gòu)的缺陷
傳統(tǒng)單體應(yīng)用將所有功能的表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問(wèn)層、包括靜態(tài)資源等全部糅合在一個(gè)工程內(nèi),編譯 打包 部署在單臺(tái)服務(wù)器上線,比如打成 war 包放在 Tomcat 的 webapp 目錄中部署。這樣的開(kāi)發(fā)部署流程適合小型項(xiàng)目,系統(tǒng)功能不復(fù)雜,訪問(wèn)量不大的情況下有絕對(duì)的優(yōu)勢(shì),開(kāi)發(fā)速度快且運(yùn)維方便。但是,當(dāng)業(yè)務(wù)越來(lái)越復(fù)雜,功能越來(lái)越多,參與的開(kāi)發(fā)人員越來(lái)越多,該流程就暴露出如下問(wèn)題:
- 業(yè)務(wù)復(fù)雜,代碼量增大,代碼可讀性、可維護(hù)性、可擴(kuò)展性下降。一旦要新同事接手代碼,需要花很多時(shí)間理解 ;
- 測(cè)試難度增大 ;
- 單體應(yīng)用并發(fā)能力有限,訪問(wèn)量高,用戶體驗(yàn)差 ;
- 單體應(yīng)用容錯(cuò)率低,一旦出錯(cuò),可能導(dǎo)致整個(gè)項(xiàng)目崩虧 ;
- 將單體應(yīng)用做集群部署,添加負(fù)載均衡服務(wù)器(例如 Nginx 反向代理轉(zhuǎn)發(fā)請(qǐng)求)可略微緩解以上兩條條缺點(diǎn),但不能完美解決問(wèn)題。
2、微服務(wù)是什么?
微服務(wù)架構(gòu):就是將原來(lái)的單體應(yīng)用按義務(wù)范圍來(lái),劃分為多個(gè)小 model,每個(gè)微服務(wù)運(yùn)行在自己的進(jìn)程中,相互不產(chǎn)生影響,完全自動(dòng)化獨(dú)立部署,并使用輕量級(jí)機(jī)制通信,通常是 HTTP RESTUFUL API,可對(duì)各微服務(wù)進(jìn)行集中管理。這些小 model 可以使用不同的編程語(yǔ)言及存儲(chǔ)技術(shù),微服務(wù)架構(gòu)是分布式架構(gòu)。
微服務(wù)架構(gòu)的優(yōu)點(diǎn):
- 按業(yè)務(wù)劃分的微服務(wù)單元獨(dú)立部署,運(yùn)行在獨(dú)立的進(jìn)程中,服務(wù)之間沒(méi)有任何耦合,具備良好的擴(kuò)展性和復(fù)用性;
- 服務(wù)之間通常采用 HTTP 通信,該通信機(jī)制與平臺(tái)和語(yǔ)言無(wú)關(guān),可以使用不同的編程語(yǔ)言和存儲(chǔ)方法。也可以采用輕量級(jí)消息總線通信,如 RabbitMQ、Kafaka 消息隊(duì)列等,數(shù)據(jù)格式一般采用 JSON;
- 每個(gè)微服務(wù)都有自己的數(shù)據(jù)庫(kù),服務(wù)間數(shù)據(jù)庫(kù)相互是獨(dú)立;
- 微服務(wù)一般采用自動(dòng)化工具部署。Docker 容器技術(shù)是微服務(wù)最佳部署容器;
- 服務(wù)集中化管理(服務(wù)注冊(cè)與發(fā)現(xiàn):Eureka、Zookeeper、Consul),監(jiān)控(服務(wù)運(yùn)行狀況監(jiān)控:Spring-Boot-Admin-Server);
- 微服務(wù)架構(gòu)是分布式架構(gòu)。
3、微服務(wù)腳手架工具:sms-platform
Spring Cloud 為開(kāi)發(fā)人員提供了快速構(gòu)建微服務(wù)系統(tǒng)的系列工具,包括配置管理、服務(wù)發(fā)現(xiàn)、斷路器、路由、微代理、事件總線、分布式會(huì)話等相關(guān)功能,但是并沒(méi)有進(jìn)行相關(guān)整合,sms-platform 是在 Spring Cloud 基礎(chǔ)上搭建的一套可以快速實(shí)現(xiàn)微服務(wù)架構(gòu)的基礎(chǔ)腳手架工具,sms-platform 基于 Spring Cloud Finchley 版本 的框架搭建,可以快速幫助項(xiàng)目組完成老系統(tǒng)微服務(wù)改造。幫助業(yè)務(wù)系統(tǒng)快速搭建微服務(wù)化。
架構(gòu)模型圖如下所示:
產(chǎn)品分五大子系統(tǒng):短信管理平臺(tái)、系統(tǒng)接口層、短信下發(fā)策略、短信網(wǎng)關(guān)接口、監(jiān)控系統(tǒng),分別完成不同的功能,也可組合成復(fù)雜的綜合系統(tǒng),如下圖1所示。接入子系統(tǒng)的功能是通過(guò)協(xié)議接入第三方客戶和推送狀態(tài)報(bào)告,采用異步通信機(jī)制,狀態(tài)報(bào)告數(shù)據(jù)直接推送給對(duì)方;短信管理平臺(tái)提供權(quán)限管理,客戶管理,黑名單和敏感詞管理以及下發(fā)日志統(tǒng)計(jì)查詢等功能。短信下發(fā)策系統(tǒng)主要是對(duì)接收到的短信進(jìn)行黑名單、敏感詞、流量、路由等方面的控制和過(guò)濾。短信網(wǎng)關(guān)接口系統(tǒng)能夠接中國(guó)移動(dòng)的企信通CMPP2、CMPP3.0短信網(wǎng)關(guān)、中國(guó)聯(lián)通的SGIP短信網(wǎng)關(guān)、中國(guó)電信的SMGP網(wǎng)關(guān),也可以接入其他非標(biāo)準(zhǔn)接口或網(wǎng)關(guān)。短信網(wǎng)關(guān)接口系統(tǒng)支持多個(gè)通道的整合管理,機(jī)構(gòu)可以同時(shí)使用多個(gè)通道,只需事先定義好路由策略,即可自動(dòng)路由分揀。不同通道對(duì)接模塊可以分布式部署,亦可集中部署,方便靈活。
組件圖如下:
Github 相關(guān)鏈接 :
https://github.com/qfjiaoyan/sms-platform
主要包括以下功能模塊:
- 基礎(chǔ)核心工具包: sms-platform-common
- 緩存微服務(wù):sms-platform-cache
- 微服務(wù)服務(wù)中心:sms-platform-eureka
- 短信網(wǎng)關(guān)微服務(wù):sms-platform-gateway
- 接口微服務(wù):sms-platform-interface
- 監(jiān)控微服務(wù):sms-platform-monitor
- 搜索微服務(wù):sms-platform-search
- 策略微服務(wù):sms-platform-strategy
- 運(yùn)營(yíng)管理平臺(tái):sms-platform-webmaster
4、開(kāi)發(fā)框架
- SpringBoot 2.0.3
- SpringCloud Finchley.RELEASE
- Shiro 1.4.0(權(quán)限管理)
- Elastic-Job(分布式任務(wù))
- Netty
- ECharts
5、運(yùn)行環(huán)境
- JDK1.8+
- Tomcat8.5+
- Mysql5.5+
- Redis5.0
- Elasticsearch 6.5.4
- RabbitMQ 3.7.14
- Zookeeper3.4.9基于Spring Cloud Finchley微服務(wù)框架
6、技術(shù)特性
- 基于Eureka的服務(wù)管理
- 異步編程與高并發(fā)多線程處理技巧
- 基于Servlet3.0實(shí)現(xiàn)接口異步處理
- 基于Shiro實(shí)現(xiàn)客戶精細(xì)化權(quán)限管理
- 基于HttpClient加多線程實(shí)現(xiàn)消息推送
- 基于分布式任務(wù)框架Elastic-Job實(shí)現(xiàn)高可用監(jiān)控
- 短信下發(fā)策略模塊使用責(zé)任鏈框架解耦業(yè)務(wù),實(shí)現(xiàn)業(yè)務(wù)可定制可撥插的編程
- 基于RabbitMQ日志收集以及各系統(tǒng)間解耦
- 基于Elasticsearch實(shí)現(xiàn)短信日志搜索與統(tǒng)計(jì)
- 基于Netty實(shí)現(xiàn)各運(yùn)營(yíng)商網(wǎng)關(guān)的Socket高性能異步通訊
- 基于Echarts展示統(tǒng)計(jì)圖表
- 前端采用VUE框架
7、模塊介紹
sms-platform-common(基礎(chǔ)核心工具包)
基礎(chǔ)核心工具包,主要負(fù)責(zé)如 請(qǐng)求切面、服務(wù)配置、異常處理、參數(shù)格式化、請(qǐng)求防護(hù)、redis、Db、基礎(chǔ)配置組件、以及其他相關(guān)如文件服務(wù)、基礎(chǔ)工具類等組件。這里,重點(diǎn)要介紹 bean 包下組件 。
sms-platform-eureka(微服務(wù)服務(wù)中心)
微服務(wù)注冊(cè)中心 eureka 高可用配置方案,Eureka 通過(guò)運(yùn)行多個(gè)實(shí)例,使其更具高可用性。事實(shí)上,這是它的默認(rèn)屬性,用戶需要做的就是給對(duì)等實(shí)例一個(gè)合法的關(guān)聯(lián) serviceUrl, 如下圖所示:
當(dāng)有服務(wù)注冊(cè)時(shí),兩個(gè) Eureka-server 是對(duì)等的,它們都存有相同的信息,這就是通過(guò)服務(wù)器的冗余來(lái)增加可靠性,當(dāng)有一臺(tái)服務(wù)器宕機(jī)了,服務(wù)并不會(huì)終止,因?yàn)榱硪慌_(tái)服務(wù)存有相同的數(shù)據(jù)。
sms-platform-cache(緩存微服務(wù))
基于Redis5集群提供基本的緩存操作接口,緩存管理平臺(tái)同步過(guò)來(lái)的黑名單、敏感詞、通道路由、客戶信息、充值、扣費(fèi)等,提供緩存查詢接口給各服務(wù)使用。
sms-platform-gateway(短信網(wǎng)關(guān)微服務(wù))
監(jiān)聽(tīng)短信下發(fā)日志,把日志寫(xiě)到MQ,從狀態(tài)報(bào)告隊(duì)列監(jiān)聽(tīng)狀態(tài)報(bào)告,更新下發(fā)日志狀態(tài),提供短信搜索與統(tǒng)計(jì)接口給運(yùn)營(yíng)管理平臺(tái)使用。
基于Netty實(shí)現(xiàn)各運(yùn)營(yíng)商網(wǎng)關(guān)的NIO Socket高性能異步通訊,心跳、拆包、粘包、實(shí)現(xiàn)中國(guó)移動(dòng)CMPP2短信協(xié)議,中國(guó)聯(lián)通SGIP1.2短信協(xié)議、中國(guó)電信SMGP協(xié)議。
sms-platform-interface(接口微服務(wù))
基于Servlet3.0實(shí)現(xiàn)接口異步處理,接口模塊實(shí)現(xiàn)了與API客戶端的對(duì)接,實(shí)現(xiàn)了對(duì)接口發(fā)送短信的校驗(yàn)與預(yù)處理,推送狀態(tài)報(bào)告給客戶.
sms-platform-monitor(監(jiān)控微服務(wù))
使用的是 Elastic-Job-Lite;定時(shí)任務(wù)一般都是使用 quartz 或者 spring-task(ScheduledExecutorService),無(wú)論是使用 quartz 還是 spring-task,我們都會(huì)至少遇到兩個(gè)痛點(diǎn):
- 不敢輕易跟著應(yīng)用服務(wù)多節(jié)點(diǎn)部署,可能會(huì)重復(fù)多次執(zhí)行而引發(fā)系統(tǒng)邏輯錯(cuò)誤;
- quartz 的集群僅僅只是用來(lái) HA,節(jié)點(diǎn)數(shù)量的增加并不能給我們的每次執(zhí)行效率帶來(lái)提升,即不能實(shí)現(xiàn)水平擴(kuò)展。
Elastic job 的主要功能有支持彈性擴(kuò)容,通過(guò) Zookepper 集中管理和監(jiān)控 job,支持失效轉(zhuǎn)移等。
監(jiān)控項(xiàng)如下:
- 監(jiān)控網(wǎng)關(guān)下發(fā)隊(duì)列,如果下發(fā)隊(duì)列積壓超出一定值就報(bào)警,有可能是網(wǎng)關(guān)出問(wèn)題,不從隊(duì)列取值或發(fā)送緩慢,或客戶有超大數(shù)據(jù)發(fā)送,需要運(yùn)營(yíng)人員排查關(guān)注
- 監(jiān)控用戶客戶費(fèi)用不足一定的值,比如小于1000塊錢(qián),就提醒用戶充值,每天早 9天定時(shí)排查一次。
sms-platform-search
基于Elasticsearch實(shí)現(xiàn)短信日志搜索與統(tǒng)計(jì),監(jiān)聽(tīng)短信下發(fā)日志,把日志寫(xiě)到MQ,從狀態(tài)報(bào)告隊(duì)列監(jiān)聽(tīng)狀態(tài)報(bào)告,更新下發(fā)日志狀態(tài),提供短信搜索與統(tǒng)計(jì)接口給運(yùn)營(yíng)管理平臺(tái)使用。
Elasticsearch允許你開(kāi)始小規(guī)模使用,但是隨著你使用數(shù)據(jù)的增長(zhǎng),它可以建立在橫向擴(kuò)展的開(kāi)箱即用。當(dāng)你需要更多的容量,只需添加更多的節(jié)點(diǎn),并讓集群重組,只需要增加額外的硬件,讓集群自動(dòng)利用額外的硬件。
可以在數(shù)以百計(jì)的服務(wù)器上處理PB級(jí)別的數(shù)據(jù)。
sms-platform-strategy
短信下發(fā)策略模塊使用責(zé)任鏈框架解耦業(yè)務(wù),實(shí)現(xiàn)業(yè)務(wù)可定制可撥插的編程,對(duì)接收到的短信進(jìn)行號(hào)段補(bǔ)全、黑名單、敏感詞、流控、扣費(fèi)、路由等方面的控制和過(guò)濾,各個(gè)過(guò)濾器之間要做到解耦,可以通過(guò)配置文件來(lái)動(dòng)態(tài)配置,當(dāng)需要去掉某個(gè)過(guò)濾器的時(shí)候不需要更改程序,只需要改一下配置文件即可.
流程圖如下所示:
sms-platform-webmaster
基于VUE+Shrio+Springboot+Mybatis實(shí)現(xiàn)精細(xì)化權(quán)限管理(可以控制到按鈕級(jí)別)。
短信管理平臺(tái)實(shí)現(xiàn)權(quán)限管理、客戶管理、黑名單管理、敏感詞管理、短信通道管理、客戶通道管理、充值和號(hào)段管理、查詢統(tǒng)計(jì)、短信下發(fā)等功能。
結(jié)束語(yǔ)
通過(guò)精簡(jiǎn)或者重組 sms-platform 微服務(wù)腳手架可以快速提煉出適應(yīng)相關(guān)項(xiàng)目組的微服務(wù)腳手架工具,解決項(xiàng)目組大量的前期框架整合時(shí)間,提升開(kāi)發(fā)效率和項(xiàng)目進(jìn)度。
開(kāi)源地址下載或私信
https://github.com/qfjiaoyan/sms-platform
文章標(biāo)簽:
sms短信平臺(tái)“sms短信平臺(tái)(sms短信平臺(tái)有哪些)”相關(guān)推薦
- 客戶群發(fā)祝福短信周一(牛年祝福短信發(fā)客戶) 2022-05-18
- 企業(yè)群發(fā)短信平臺(tái)免費(fèi)(短信發(fā)送平臺(tái)網(wǎng)頁(yè)版) 2022-05-18
- 長(zhǎng)沙群發(fā)短信營(yíng)銷軟件下載(短信發(fā)送平臺(tái)網(wǎng)頁(yè)版) 2022-05-18
- 南京如何選短信群發(fā)服務(wù)商 2022-05-18
- 性能穩(wěn)定的群發(fā)短信軟件(短信發(fā)送平臺(tái)網(wǎng)頁(yè)版) 2022-05-18
- 怎么刪除短信里的群發(fā)消息(微信聊天記錄刪除了怎么恢復(fù)) 2022-05-18
- 如何做短信群發(fā)營(yíng)銷案例 2022-05-18
- 房產(chǎn)中介群發(fā)短信模板(房產(chǎn)中介群發(fā)短信) 2022-05-18
- 一次可以群發(fā)多少短信信息(手機(jī)群發(fā)短信能發(fā)多少條) 2022-05-18
- 群發(fā)短信怎么填個(gè)人號(hào)碼(手機(jī)群發(fā)短信怎么發(fā)) 2022-05-18
- 客戶群發(fā)祝福短信周一(牛年祝福短信發(fā)客戶) 2022-05-18
- 企業(yè)群發(fā)短信平臺(tái)免費(fèi)(短信發(fā)送平臺(tái)網(wǎng)頁(yè)版) 2022-05-18
- 長(zhǎng)沙群發(fā)短信營(yíng)銷軟件下載(短信發(fā)送平臺(tái)網(wǎng)頁(yè)版) 2022-05-18
- 南京如何選短信群發(fā)服務(wù)商 2022-05-18
- 性能穩(wěn)定的群發(fā)短信軟件(短信發(fā)送平臺(tái)網(wǎng)頁(yè)版) 2022-05-18
- 怎么刪除短信里的群發(fā)消息(微信聊天記錄刪除了怎么恢復(fù)) 2022-05-18
- 如何做短信群發(fā)營(yíng)銷案例 2022-05-18
- 房產(chǎn)中介群發(fā)短信模板(房產(chǎn)中介群發(fā)短信) 2022-05-18
- 一次可以群發(fā)多少短信信息(手機(jī)群發(fā)短信能發(fā)多少條) 2022-05-18
- 群發(fā)短信怎么填個(gè)人號(hào)碼(手機(jī)群發(fā)短信怎么發(fā)) 2022-05-18