# sun-sms **Repository Path**: sixsixsix516/sun-sms ## Basic Information - **Project Name**: sun-sms - **Description**: 短信网关系统 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-02-23 - **Last Updated**: 2023-10-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 解决问题 1. 统一管理短信平台,供其他服务使用 2. 多短信通道故障自动切换 3. 统计各服务短信发送情况 4. 短信平台高效、稳定 名词解释: 短信签名:主叫用户在发送短信过程中,附加主叫用户的个性化签名,发送到被叫手机用户的业务 短信模板:具体发送的短信内容,短信模板通常可以支持验证码、通知、推广三种短信类型 Redis发布订阅模式 优点:轻量化 缺点:消息不会持久化,会有丢失数据的风险 --- 发布订阅模式下的概念 1. 发布者 2. 订阅者 3. 频道 使用方式 1. 监听:subscribe test 2. 发送消息:publish test "This is SUN" --- ### 通道需求 **字段** 是否正常:正常、故障 故障判断: 1. 新增时,默认正常,不可手动选择故障 2. 故障为系统判断,不可手动修改 3. 系统故障时:可以手动改为正常 4. 系统故障时:不可启用 **描述** 1. 一个通道可以有多个签名 2. 一个通道可以有多个模板 3. 通道有个优先级排序,按排序发送短信 通道的优先级发生变化后 MQ 通知 短信发送服务。短信发送服务收到消息后自动调整短信发送时使用的通道优先级 (短信发送服务缓存了优先级信息) **Redis 队列** 使用 list 模拟 插入(生产消息) rpush、lpush 弹出(消费消息) rpop、lpop 阻塞版本前面 + B (BRPOP、BLPOP)