# yiwise-sms-gateway **Repository Path**: janusor/yiwise-sms-gateway ## Basic Information - **Project Name**: yiwise-sms-gateway - **Description**: 一知短信网关 - **Primary Language**: Java - **License**: Unlicense - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 5 - **Created**: 2024-05-08 - **Last Updated**: 2024-05-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 一知短信网关 ## 项目简介 该项目将常用短信协议CMPP进行封装,提供http接口发送短信,使用上只需要简单配置短信通道信息,即可快速发送短信;并提供了短信补发等功能。 ## 项目技术栈 Spring Boot + Mysql + Redis + Netty 4.x + Hutool 5.x + Mybatis-plus 3.x + Guava + Caffeine + Quartz等 ## 应用部署 1. 前提:本地服务器有公网IP,并安装了jdk(需要Oracle JDK,不要用OpenJDK),配置了mysql5.7 和 redis 2. 数据库初始化:执行resource/sql下的sms.sql文件创建数据库和表 3. 账号密码修改:修改prod.properties中Mysql和Redis的配置信息 4. 代码编译: ```bash mvn clean package -T 2C -Dmaven.test.skip=true -P prod ``` 得到打包文件: sms-gateway-quartz-1.0.0-SNAPSHOT.tar.gz sms-gateway-web-1.0.0-SNAPSHOT.tar.gz 这两个工程实现了短信接口和短信发送的分离。 其中: sms-gateway-web用于实现http短信接口调用,监听http的8925端口; sms-gateway-quartz用于短信发送的调度。监听http的8926端口; 8926端口的值可以自行调整,实际业务上用不到,只是因为springboot启动需要指定端口。 5. 将打包文件拷贝到服务器上,解压运行: 启动命令:```sh bin/start.sh start``` 停止命令:```sh bin/start.sh stop``` 6. 或者使用docker部署,在完成1-4步骤后,执行如下操作: + 构建java基础镜像: ```bash cd docker.java-base docker build -t java-base:1.0.0 ./ ``` + 构建sms-gateway-web镜像: ```bash cd sms-gateway-web/target docker build -t sms-gateway-web:1.0.0 ./ ``` + 构建sms-gateway-quartz镜像: ```bash cd sms-gateway-quartz/target docker build -t sms-gateway-quartz:1.0.0 ./ ``` + 运行 sms-gateway-web 镜像 ```bash docker run -d -it --name sms-gateway-web -p 8925:8925/tcp sms-gateway-web:1.0.0 ``` + 运行 sms-gateway-quartz 镜像 ```bash docker run -d -it --name sms-gateway-quartz -p 8926:8926/tcp sms-gateway-quartz:1.0.0 ``` ## 接口使用 1. 调用SmsController下/sms/sendMsg接口发送加密号码短信 2. 调用SmsController下/sms/sendPlainMsg接口发送真实号码短信 3. 工程提供了调用接口的单元测试类:SendMsgTest,可以用来调试接口排查问题。 ## 性能说明 1. CPU无要求,内存占用主要是jvm堆内存的设置,可以在prod.properties中调整,一般内存要求不低于2G。 2. 应用默认支持多线程,CPU核数越多,发送短信速率越快,2c4G服务器上,峰值发送速率约为4000条/分钟。 ## 感谢 项目是在 [cmpp-to-http](https://gitee.com/troubleshooting/cmpp-to-http) 和 [SMSGate](https://github.com/Lihuanghe/SMSGate) 基础上开发的,感谢开源!