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 版本 的框架搭建,可以快速帮助项目组完成老系统微服务改造。帮助业务系统快速搭建微服务化。
架构模型图如下所示:
产品分五大子系统:短信管理平台、系统接口层、短信下发策略、短信网关接口、监控系统,分别完成不同的功能,也可组合成复杂的综合系统,如下图1所示。接入子系统的功能是通过协议接入第三方客户和推送状态报告,采用异步通信机制,状态报告数据直接推送给对方;短信管理平台提供权限管理,客户管理,黑名单和敏感词管理以及下发日志统计查询等功能。短信下发策系统主要是对接收到的短信进行黑名单、敏感词、流量、路由等方面的控制和过滤。短信网关接口系统能够接中国移动的企信通CMPP2、CMPP3.0短信网关、中国联通的SGIP短信网关、中国电信的SMGP网关,也可以接入其他非标准接口或网关。短信网关接口系统支持多个通道的整合管理,机构可以同时使用多个通道,只需事先定义好路由策略,即可自动路由分拣。不同通道对接模块可以分布式部署,亦可集中部署,方便灵活。
组件图如下:
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
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, 如下图所示:
当有服务注册时,两个 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天定时排查一次。
sms-platform-search
基于Elasticsearch实现短信日志搜索与统计,监听短信下发日志,把日志写到MQ,从状态报告队列监听状态报告,更新下发日志状态,提供短信搜索与统计接口给运营管理平台使用。
Elasticsearch允许你开始小规模使用,但是随着你使用数据的增长,它可以建立在横向扩展的开箱即用。当你需要更多的容量,只需添加更多的节点,并让集群重组,只需要增加额外的硬件,让集群自动利用额外的硬件。
可以在数以百计的服务器上处理PB级别的数据。
sms-platform-strategy
短信下发策略模块使用责任链框架解耦业务,实现业务可定制可拨插的编程,对接收到的短信进行号段补全、黑名单、敏感词、流控、扣费、路由等方面的控制和过滤,各个过滤器之间要做到解耦,可以通过配置文件来动态配置,当需要去掉某个过滤器的时候不需要更改程序,只需要改一下配置文件即可.
流程图如下所示:
sms-platform-webmaster
基于VUE+Shrio+Springboot+Mybatis实现精细化权限管理(可以控制到按钮级别)。
短信管理平台实现权限管理、客户管理、黑名单管理、敏感词管理、短信通道管理、客户通道管理、充值和号段管理、查询统计、短信下发等功能。
结束语
通过精简或者重组 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