Skip to content
cbwleftPublic

Latest commit

 

History

63 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SMS微服务

项目介绍

基于Spring Boot 2.0.2.RELEASE实现的短信微服务。目前接入了阿里云通讯、凌凯短信平台。
除了支持发送普通短信以外,封装了短信验证码发送、验证码校验这种常见的应用场景。
支持多个短信平台作为主备配置,实现短信服务的高可用。

为什么需要短信微服务

想象一下常规的开发流程:每个需要发送短信的应用需要单独接入短信SDK,上线以后用户反馈收不到短信验证码,此时你需要先去查应用日志短信接口有没有调用成功,然后再去第三方短信平台查询运营商短信发送反馈;或者是第三方短信平台提示你需要升级SDK;或者老板因为成本考虑需要切换更便宜更稳定的短信平台。
微服务的存在就是为了解决此类问题,如果您正在尝试微服务拆分,短信这类业务无关的基础服务也是一个很好的起点。
该服务支持多个应用接入,并提供了短信发送记录查询功能 。因为较好的抽象,可以方便二次开发进行类型(接入应用,短信类型、短信模板)、成功率、手机号、时间等维度的统计。

演示地址

短信微服务演示地址(暂时停用)
演示账号:sms
演示密码:sms

如何接入

如果您正在使用Spring Cloud,只需要在sms工程的pom中增加spring-cloud-dependencies、spring-cloud-starter-eureka的依赖。
如果您没有使用Spring Cloud,Spring Boot可以很方便地作为单体应用或者集群部署,配合nginx等反向代理进行远程调用使用。
可以通过更改application.yml中sms.channel.available属性配置首选和备用短信平台
如果您使用了其它的短信通道,只需要通过实现IChannelSMSService接口就可以很方便地进行短信平台的替换。

技术选型

  1. Spring Boot 2.0.2.RELEASE
  2. Hibernate Validator 6.0.9.Final
  3. Mybatis 3.4.5
  4. MyBatis 通用 Mapper + 分页插件 PageHelper
  5. (可选)Guns 2.5 fork版本(mybatis-plus替换为第4条)

项目结构

sms-parent
├── sms-web -- spring boot启动入口
├── sms-dal -- 数据持久层

项目测试

  1. 运行sms.sql(需要mysql 5.6以上)
  2. 修改application.yml中的数据库、redis地址
  3. 运行sms工程,访问http://localhost:8000/swagger-ui.html#/进行接口测试
  4. (可选)目前管理后台基于guns开发,源代码地址sms/master分支

更新记录


版本 日期 描述
1.0.0 2018-05-29 阿里云通讯单短信通道
1.1.0 2018-05-31 增加凌凯短信可选实现
1.1.1 2018-06-01 增加批量发送短信接口(新增redis依赖)
1.2.0 2018-07-09 多短信通道主备配置

开发计划

+ 接口鉴权
+ 更多通道支持
+ docker构建支持

Releases

Packages

Used by

Contributors

Languages