基础底层短信服务的设计思路

发布时间 2023-08-29 09:52:04作者: oktokeep

1.短信定义模板,根据模板ID,模板内容,模板内容中的符号来替换成真实的内容来发送。可以支持动态的调整短信模板文案。

2.如果接入多家短信服务供应商,根据不同的发送比例来配置选择哪家供应商的比例,可以按100来作为基准,然后根据配置大小,
每次发送短信的时候,随机生成一个100以内的随机数,落到哪个区间,则选择哪家供应商。且一旦选择哪家,需要将当前的订单号绑定该供应商,可以将选择值存入redis中。
业务上可以归一到一个订单只选择一家供应商来发送。

3.兼容某家供应商发送失败的,可以在接收到错误码的情况下,自动切换到另外一家供应商,减少发送失败的概率。

4.每次发送之前,需要先将手机号,模板ID,模板内容,哪家供应商等基础信息先入库保存,发送结束之后,再更新发送的结果,成功或失败,失败的原因,失败的时间等,方便查发送日志。
根据发送失败的记录,定时任务加上重试机制针对重要的短信,可以考虑重发。避免遗漏

5.考虑到短信的供应商如果是GET请求,短信文案可能会超长的情况,需要转换为form表单POST来请求。