# sms **Repository Path**: cbwleft/sms ## Basic Information - **Project Name**: sms - **Description**: 短信微服务 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2018-04-23 - **Last Updated**: 2023-07-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SMS微服务 ### 项目介绍 基于Spring Boot 2.0.2.RELEASE实现的短信微服务。目前接入了阿里云通讯、凌凯短信平台。
除了支持发送普通短信以外,封装了短信验证码发送、验证码校验这种常见的应用场景。
**支持多个短信平台作为主备配置,实现短信服务的高可用。** ### 为什么需要短信微服务 想象一下常规的开发流程:每个需要发送短信的应用需要单独接入短信SDK,上线以后用户反馈收不到短信验证码,此时你需要先去查应用日志短信接口有没有调用成功,然后再去第三方短信平台查询运营商短信发送反馈;或者是第三方短信平台提示你需要升级SDK;或者老板因为成本考虑需要切换更便宜更稳定的短信平台。
微服务的存在就是为了解决此类问题,如果您正在尝试微服务拆分,短信这类业务无关的基础服务也是一个很好的起点。
该服务支持多个应用接入,并提供了短信发送记录查询功能 。因为较好的抽象,可以方便二次开发进行类型(接入应用,短信类型、短信模板)、成功率、手机号、时间等维度的统计。 ### 演示地址 [短信微服务演示地址(暂时停用)](http://47.98.111.179)
演示账号:sms
演示密码:sms
### 如何接入 如果您正在使用[Spring Cloud](https://projects.spring.io/spring-cloud/ "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#/](http://localhost:8000/swagger-ui.html#/)进行接口测试
4. (可选)目前管理后台基于guns开发,[源代码地址](https://github.com/cbwleft/guns/tree/sms/master)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构建支持 ```