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