亚洲精品国产免费-亚洲精品国产理论电影网-亚洲精品国产精品国自产网站-亚洲精品国产第1页-韩国电影一区二区-韩国电影一区

合作客戶
合作客戶
今日特惠
特惠僅剩10
距離搶購結束僅剩
10
 
50
 
20
 
 
咨詢萬商超信

sms短信平臺(sms短信平臺有哪些)

sms短信平臺(sms短信平臺有哪些)

三網捷信-高品質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微服務腳手架(短信平臺)實踐分享

 

產品分五大子系統:短信管理平臺、系統接口層、短信下發策略、短信網關接口、監控系統,分別完成不同的功能,也可組合成復雜的綜合系統,如下圖1所示。接入子系統的功能是通過協議接入第三方客戶和推送狀態報告,采用異步通信機制,狀態報告數據直接推送給對方;短信管理平臺提供權限管理,客戶管理,黑名單和敏感詞管理以及下發日志統計查詢等功能。短信下發策系統主要是對接收到的短信進行黑名單、敏感詞、流量、路由等方面的控制和過濾。短信網關接口系統能夠接中國移動的企信通CMPP2、CMPP3.0短信網關、中國聯通的SGIP短信網關、中國電信的SMGP網關,也可以接入其他非標準接口或網關。短信網關接口系統支持多個通道的整合管理,機構可以同時使用多個通道,只需事先定義好路由策略,即可自動路由分揀。不同通道對接模塊可以分布式部署,亦可集中部署,方便靈活。

組件圖如下:

 

Spring Cloud微服務腳手架(短信平臺)實踐分享

 

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微服務腳手架(短信平臺)實踐分享

 

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微服務腳手架(短信平臺)實踐分享

 

當有服務注冊時,兩個 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,我們都會至少遇到兩個痛點:

  1. 不敢輕易跟著應用服務多節點部署,可能會重復多次執行而引發系統邏輯錯誤;
  2. quartz 的集群僅僅只是用來 HA,節點數量的增加并不能給我們的每次執行效率帶來提升,即不能實現水平擴展。

Elastic job 的主要功能有支持彈性擴容,通過 Zookepper 集中管理和監控 job,支持失效轉移等。

監控項如下:

  1. 監控網關下發隊列,如果下發隊列積壓超出一定值就報警,有可能是網關出問題,不從隊列取值或發送緩慢,或客戶有超大數據發送,需要運營人員排查關注
  2. 監控用戶客戶費用不足一定的值,比如小于1000塊錢,就提醒用戶充值,每天早 9天定時排查一次。

 

Spring Cloud微服務腳手架(短信平臺)實踐分享

 

sms-platform-search

基于Elasticsearch實現短信日志搜索與統計,監聽短信下發日志,把日志寫到MQ,從狀態報告隊列監聽狀態報告,更新下發日志狀態,提供短信搜索與統計接口給運營管理平臺使用。

Elasticsearch允許你開始小規模使用,但是隨著你使用數據的增長,它可以建立在橫向擴展的開箱即用。當你需要更多的容量,只需添加更多的節點,并讓集群重組,只需要增加額外的硬件,讓集群自動利用額外的硬件。

可以在數以百計的服務器上處理PB級別的數據。

sms-platform-strategy

短信下發策略模塊使用責任鏈框架解耦業務,實現業務可定制可撥插的編程,對接收到的短信進行號段補全、黑名單、敏感詞、流控、扣費、路由等方面的控制和過濾,各個過濾器之間要做到解耦,可以通過配置文件來動態配置,當需要去掉某個過濾器的時候不需要更改程序,只需要改一下配置文件即可.

流程圖如下所示:

 

Spring Cloud微服務腳手架(短信平臺)實踐分享

 

 

sms-platform-webmaster

基于VUE+Shrio+Springboot+Mybatis實現精細化權限管理(可以控制到按鈕級別)。

短信管理平臺實現權限管理、客戶管理、黑名單管理、敏感詞管理、短信通道管理、客戶通道管理、充值和號段管理、查詢統計、短信下發等功能。

 

Spring Cloud微服務腳手架(短信平臺)實踐分享

 

結束語

通過精簡或者重組 sms-platform 微服務腳手架可以快速提煉出適應相關項目組的微服務腳手架工具,解決項目組大量的前期框架整合時間,提升開發效率和項目進度。

開源地址下載或私信

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

文章標簽:

sms短信平臺