亚洲成a人片7777777久久_av中文无码乱人伦_亚洲天堂婷婷五月丁香久久_精品久久久久中文字幕_乱人伦欧美在线

合作客戶
合作客戶
今日特惠
特惠僅剩10
距離搶購結(jié)束僅剩
10
 
50
 
20
 
 
咨詢?nèi)f商超信

sms短信平臺(tái)(sms短信平臺(tái)有哪些)

sms短信平臺(tái)(sms短信平臺(tái)有哪些)

三網(wǎng)捷信-高品質(zhì)106通道的短信平臺(tái)

sms短信平臺(tái)(sms短信平臺(tái)有哪些)

  • 作者:admin
  • 發(fā)表時(shí)間:2022年5月18日下午4:02
  • 來源:未知

為應(yīng)對傳統(tǒng)單體架構(gòu)的缺陷,微服務(wù)架構(gòu)被企業(yè)廣泛應(yīng)用。Spring Cloud 為開發(fā)人員提供了快速構(gòu)建微服務(wù)的系列工具,但是并沒有進(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ù)訪問層、包括靜態(tài)資源等全部糅合在一個(gè)工程內(nèi),編譯 打包 部署在單臺(tái)服務(wù)器上線,比如打成 war 包放在 Tomcat 的 webapp 目錄中部署。這樣的開發(fā)部署流程適合小型項(xiàng)目,系統(tǒng)功能不復(fù)雜,訪問量不大的情況下有絕對的優(yōu)勢,開發(fā)速度快且運(yùn)維方便。但是,當(dāng)業(yè)務(wù)越來越復(fù)雜,功能越來越多,參與的開發(fā)人員越來越多,該流程就暴露出如下問題:

  • 業(yè)務(wù)復(fù)雜,代碼量增大,代碼可讀性、可維護(hù)性、可擴(kuò)展性下降。一旦要新同事接手代碼,需要花很多時(shí)間理解 ;
  • 測試難度增大 ;
  • 單體應(yīng)用并發(fā)能力有限,訪問量高,用戶體驗(yàn)差 ;
  • 單體應(yīng)用容錯(cuò)率低,一旦出錯(cuò),可能導(dǎo)致整個(gè)項(xiàng)目崩虧 ;
  • 將單體應(yīng)用做集群部署,添加負(fù)載均衡服務(wù)器(例如 Nginx 反向代理轉(zhuǎn)發(fā)請求)可略微緩解以上兩條條缺點(diǎn),但不能完美解決問題。

2、微服務(wù)是什么?

微服務(wù)架構(gòu):就是將原來的單體應(yīng)用按義務(wù)范圍來,劃分為多個(gè)小 model,每個(gè)微服務(wù)運(yùn)行在自己的進(jìn)程中,相互不產(chǎn)生影響,完全自動(dòng)化獨(dú)立部署,并使用輕量級機(jī)制通信,通常是 HTTP RESTUFUL API,可對各微服務(wù)進(jìn)行集中管理。這些小 model 可以使用不同的編程語言及存儲(chǔ)技術(shù),微服務(wù)架構(gòu)是分布式架構(gòu)。

微服務(wù)架構(gòu)的優(yōu)點(diǎn):

  • 按業(yè)務(wù)劃分的微服務(wù)單元獨(dú)立部署,運(yùn)行在獨(dú)立的進(jìn)程中,服務(wù)之間沒有任何耦合,具備良好的擴(kuò)展性和復(fù)用性;
  • 服務(wù)之間通常采用 HTTP 通信,該通信機(jī)制與平臺(tái)和語言無關(guān),可以使用不同的編程語言和存儲(chǔ)方法。也可以采用輕量級消息總線通信,如 RabbitMQ、Kafaka 消息隊(duì)列等,數(shù)據(jù)格式一般采用 JSON;
  • 每個(gè)微服務(wù)都有自己的數(shù)據(jù)庫,服務(wù)間數(shù)據(jù)庫相互是獨(dú)立;
  • 微服務(wù)一般采用自動(dòng)化工具部署。Docker 容器技術(shù)是微服務(wù)最佳部署容器;
  • 服務(wù)集中化管理(服務(wù)注冊與發(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 為開發(fā)人員提供了快速構(gòu)建微服務(wù)系統(tǒng)的系列工具,包括配置管理、服務(wù)發(fā)現(xiàn)、斷路器、路由、微代理、事件總線、分布式會(huì)話等相關(guān)功能,但是并沒有進(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)模型圖如下所示:

 

Spring Cloud微服務(wù)腳手架(短信平臺(tái))實(shí)踐分享

 

產(chǎn)品分五大子系統(tǒng):短信管理平臺(tái)、系統(tǒng)接口層、短信下發(fā)策略、短信網(wǎng)關(guān)接口、監(jiān)控系統(tǒng),分別完成不同的功能,也可組合成復(fù)雜的綜合系統(tǒng),如下圖1所示。接入子系統(tǒng)的功能是通過協(xié)議接入第三方客戶和推送狀態(tài)報(bào)告,采用異步通信機(jī)制,狀態(tài)報(bào)告數(shù)據(jù)直接推送給對方;短信管理平臺(tái)提供權(quán)限管理,客戶管理,黑名單和敏感詞管理以及下發(fā)日志統(tǒng)計(jì)查詢等功能。短信下發(fā)策系統(tǒng)主要是對接收到的短信進(jìn)行黑名單、敏感詞、流量、路由等方面的控制和過濾。短信網(wǎng)關(guān)接口系統(tǒng)能夠接中國移動(dòng)的企信通CMPP2、CMPP3.0短信網(wǎng)關(guān)、中國聯(lián)通的SGIP短信網(wǎng)關(guān)、中國電信的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)路由分揀。不同通道對接模塊可以分布式部署,亦可集中部署,方便靈活。

組件圖如下:

 

Spring Cloud微服務(wù)腳手架(短信平臺(tái))實(shí)踐分享

 

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)營管理平臺(tái):sms-platform-webmaster

 

Spring Cloud微服務(wù)腳手架(短信平臺(tái))實(shí)踐分享

 

4、開發(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)營商網(wǎng)關(guān)的Socket高性能異步通訊
  • 基于Echarts展示統(tǒng)計(jì)圖表
  • 前端采用VUE框架

7、模塊介紹

sms-platform-common(基礎(chǔ)核心工具包)

基礎(chǔ)核心工具包,主要負(fù)責(zé)如 請求切面、服務(wù)配置、異常處理、參數(shù)格式化、請求防護(hù)、redis、Db、基礎(chǔ)配置組件、以及其他相關(guān)如文件服務(wù)、基礎(chǔ)工具類等組件。這里,重點(diǎn)要介紹 bean 包下組件 。

sms-platform-eureka(微服務(wù)服務(wù)中心)

微服務(wù)注冊中心 eureka 高可用配置方案,Eureka 通過運(yùn)行多個(gè)實(shí)例,使其更具高可用性。事實(shí)上,這是它的默認(rèn)屬性,用戶需要做的就是給對等實(shí)例一個(gè)合法的關(guān)聯(lián) serviceUrl, 如下圖所示:

Spring Cloud微服務(wù)腳手架(短信平臺(tái))實(shí)踐分享

 

當(dāng)有服務(wù)注冊時(shí),兩個(gè) Eureka-server 是對等的,它們都存有相同的信息,這就是通過服務(wù)器的冗余來增加可靠性,當(dāng)有一臺(tái)服務(wù)器宕機(jī)了,服務(wù)并不會(huì)終止,因?yàn)榱硪慌_(tái)服務(wù)存有相同的數(shù)據(jù)。

sms-platform-cache(緩存微服務(wù))

基于Redis5集群提供基本的緩存操作接口,緩存管理平臺(tái)同步過來的黑名單、敏感詞、通道路由、客戶信息、充值、扣費(fèi)等,提供緩存查詢接口給各服務(wù)使用。

sms-platform-gateway(短信網(wǎng)關(guān)微服務(wù))

監(jiān)聽短信下發(fā)日志,把日志寫到MQ,從狀態(tài)報(bào)告隊(duì)列監(jiān)聽狀態(tài)報(bào)告,更新下發(fā)日志狀態(tài),提供短信搜索與統(tǒng)計(jì)接口給運(yùn)營管理平臺(tái)使用。

基于Netty實(shí)現(xiàn)各運(yùn)營商網(wǎng)關(guān)的NIO Socket高性能異步通訊,心跳、拆包、粘包、實(shí)現(xiàn)中國移動(dòng)CMPP2短信協(xié)議,中國聯(lián)通SGIP1.2短信協(xié)議、中國電信SMGP協(xié)議。

sms-platform-interface(接口微服務(wù))

基于Servlet3.0實(shí)現(xiàn)接口異步處理,接口模塊實(shí)現(xiàn)了與API客戶端的對接,實(shí)現(xiàn)了對接口發(fā)送短信的校驗(yàn)與預(yù)處理,推送狀態(tài)報(bào)告給客戶.

sms-platform-monitor(監(jiān)控微服務(wù))

使用的是 Elastic-Job-Lite;定時(shí)任務(wù)一般都是使用 quartz 或者 spring-task(ScheduledExecutorService),無論是使用 quartz 還是 spring-task,我們都會(huì)至少遇到兩個(gè)痛點(diǎn):

  1. 不敢輕易跟著應(yīng)用服務(wù)多節(jié)點(diǎn)部署,可能會(huì)重復(fù)多次執(zhí)行而引發(fā)系統(tǒng)邏輯錯(cuò)誤;
  2. quartz 的集群僅僅只是用來 HA,節(jié)點(diǎn)數(shù)量的增加并不能給我們的每次執(zhí)行效率帶來提升,即不能實(shí)現(xiàn)水平擴(kuò)展。

Elastic job 的主要功能有支持彈性擴(kuò)容,通過 Zookepper 集中管理和監(jiān)控 job,支持失效轉(zhuǎn)移等。

監(jiān)控項(xiàng)如下:

  1. 監(jiān)控網(wǎng)關(guān)下發(fā)隊(duì)列,如果下發(fā)隊(duì)列積壓超出一定值就報(bào)警,有可能是網(wǎng)關(guān)出問題,不從隊(duì)列取值或發(fā)送緩慢,或客戶有超大數(shù)據(jù)發(fā)送,需要運(yùn)營人員排查關(guān)注
  2. 監(jiān)控用戶客戶費(fèi)用不足一定的值,比如小于1000塊錢,就提醒用戶充值,每天早 9天定時(shí)排查一次。

 

Spring Cloud微服務(wù)腳手架(短信平臺(tái))實(shí)踐分享

 

sms-platform-search

基于Elasticsearch實(shí)現(xiàn)短信日志搜索與統(tǒng)計(jì),監(jiān)聽短信下發(fā)日志,把日志寫到MQ,從狀態(tài)報(bào)告隊(duì)列監(jiān)聽狀態(tài)報(bào)告,更新下發(fā)日志狀態(tài),提供短信搜索與統(tǒng)計(jì)接口給運(yùn)營管理平臺(tái)使用。

Elasticsearch允許你開始小規(guī)模使用,但是隨著你使用數(shù)據(jù)的增長,它可以建立在橫向擴(kuò)展的開箱即用。當(dāng)你需要更多的容量,只需添加更多的節(jié)點(diǎn),并讓集群重組,只需要增加額外的硬件,讓集群自動(dòng)利用額外的硬件。

可以在數(shù)以百計(jì)的服務(wù)器上處理PB級別的數(shù)據(jù)。

sms-platform-strategy

短信下發(fā)策略模塊使用責(zé)任鏈框架解耦業(yè)務(wù),實(shí)現(xiàn)業(yè)務(wù)可定制可撥插的編程,對接收到的短信進(jìn)行號(hào)段補(bǔ)全、黑名單、敏感詞、流控、扣費(fèi)、路由等方面的控制和過濾,各個(gè)過濾器之間要做到解耦,可以通過配置文件來動(dòng)態(tài)配置,當(dāng)需要去掉某個(gè)過濾器的時(shí)候不需要更改程序,只需要改一下配置文件即可.

流程圖如下所示:

 

Spring Cloud微服務(wù)腳手架(短信平臺(tái))實(shí)踐分享

 

 

sms-platform-webmaster

基于VUE+Shrio+Springboot+Mybatis實(shí)現(xiàn)精細(xì)化權(quán)限管理(可以控制到按鈕級別)。

短信管理平臺(tái)實(shí)現(xiàn)權(quán)限管理、客戶管理、黑名單管理、敏感詞管理、短信通道管理、客戶通道管理、充值和號(hào)段管理、查詢統(tǒng)計(jì)、短信下發(fā)等功能。

 

Spring Cloud微服務(wù)腳手架(短信平臺(tái))實(shí)踐分享

 

結(jié)束語

通過精簡或者重組 sms-platform 微服務(wù)腳手架可以快速提煉出適應(yīng)相關(guān)項(xiàng)目組的微服務(wù)腳手架工具,解決項(xiàng)目組大量的前期框架整合時(shí)間,提升開發(fā)效率和項(xiàng)目進(jìn)度。

開源地址下載或私信

https://github.com/qfjiaoyan/sms-platform

文章標(biāo)簽:

sms短信平臺(tái) 
解決方案
幫助中心