免费试用
集团短信的核心使用分析
短信平台首页 >短信群发推广

集团短信的核心使用分析

时间:2020-11-14 来源:九天企信王 作者:雨落长安

场景

 公司做的项目有以下场景,需要发送短信。

1)如果用户忘记密码,可以通过短信找到密码。

2)您需要向项目负责人、项目负责人或专家发送短信。

逻辑学

场景1的逻辑太简单,没有改变。请跳过。

场景2的逻辑是用户输入短信内容和手机号码,然后单击“发送”。如果通过验证,就会跳转到短信发送成功提示页。如果验证失败,则有一条错误提示消息,您可以根据错误提示进行更正。

实现方法

原始方案:

在项目中,您可以直接配置SMS服务商提供的帐户、密码和接口,并在需要发送SMS时直接调用发送SMS的接口。根据返回值,您可以决定是否成功提交给SMS服务提供商。

项目的启动是一个简单、高效、快速实现业务要求的方案。

问题1:服务提供商不稳定。

使用一段时间后,项目组发现短信服务提供者提供的服务不稳定,更换了新的服务提供者,但实际上其他短信服务企业都不稳定。

解决方案:多服务提供商重复调度

为了确保稳定性,如果服务提供者A失败,请通过服务提供者B发送,并依次切换,直到成功发送或所有服务提供者失败。

问题2:代码复制或独立服务

新项目也需要发短信,但工作场景相似。因为是不同的项目组,所以初期是各自独立完成的。进行内部交流时,发现大家都做了重复的工作,所以项目组之间的协作将代码标准化为工具类。但是每次修改都需要项目组之间的合作,沟通费用太高,没有相应的承诺和程序,造成混乱。

考虑到后续优化和更改,通过项目团队之间的协商,独立构建新的SMS平台,为各种项目提供集成服务。此时,服务提供商的调度优化与特定项目无关,项目的SMS传输代码变得非常简单。

问题3:网络错误如何确保SMS传输的高可用性

SMS传输一般属于非核心业务领域,项目组为了提高性能,通知通知通知类短信的异步改造。说是改造,其实只是把同步短信传输变成异步而已。改造完成后,确实提高了项目的性能。但是由于公司网络的原因,SMS平台和SMS服务商的网络出现了各种问题,比较重要的SMS没有成功,也没有相关的发送记录。

项目组正在为工作变更而伤脑筋。网络不稳定或服务企业出现问题时,尽全力确保短信传输成功的问题留给文字平台团队。多方讨论后,确认将短信传输分为两个阶段。也就是说,首先收到调用方的传输请求,然后持续到数据库中等待传输。然后,从数据库中读取要发送的记录,尽力通过调度算法发送短信,如果最终异常原因(网络中断或服务提供商不稳定等)导致传输失败,则标记该标记,并在一段时间后重试,直到达到最大重试次数。该方案可持续发送请求,使SMS平台尽最大努力确保发送成功,重试设置也提高了SMS发送成功的可能性。

问题4:服务调用方和SMS平台的网络错误和SMS平台服务停机

上述SMS平台上SMS传输记录的持续方式解决了SMS平台和SMS服务商之间的问题,但无法避免服务调用和SMS平台之间的网络错误和SMS平台停机的错误。参照上述方案,对服务调用方进行持续改造,同时对短信平台进行集群改造。

持续性改造和以前一样,在这里不再继续谈。SMS平台集群化改造由于服务无状态的特点变得更加容易,部署方案调整完毕后集群化改造接近完成。集群化改造在一定程度上提高了可用性,提高了SMS传输服务能力,但负载平衡仍然存在单点故障,只能等待后续优化。

问题5:短信平台向外部提供服务。

部分小系统或合作客户的系统也需要发送短信,但发送量不大,不愿意独自与短信服务企业交易,所以知道我们的短信平台后,决定使用。但是,对外提供服务需要考虑安全和收费问题。

经过小组内讨论,形成了以下方案。

安全参照各大SMS服务提供商的方法,添加用户和IP绑定功能,即为每个系统或组织分配唯一的帐户和密码的功能,并绑定用户和系统的外部IP,以防止密码泄露和其他异常纠纷,从而满足安全要求。

付费问题很简单。由于SMS平台本身会持续传输请求,因此请参考付款系统“调整”概念,根据与客户约定的频率,在指定的路径上生成SMS发票,供客户直接下载。

问题6:优化SMS传输

持久性改造后,短信通过线程池发送,每个线程彼此独立发送。该方法简单易懂,易于实施。因为每个线程都是相互独立的,而不考虑并发和锁定。

我们知道,将SMS发送给服务公司都必须与模板匹配。如果每个批次发送的SMS内容之一因内容和模板不匹配而被拒绝,则建议该批次中的其他SMS传输请求默认情况下标记为待决。

但是发送短信的线程彼此独立,发生发送异常时不能及时通知对方,会消耗很多资源,变得无用。为了解决这些问题,引入了调度程序。对于一批短信,先发送一条确认是否成功发送,如果成功发送,则大量发送同一批的其余短信。

调度程序还会根据每个短信记录服务提供商的服务状态,以记录传输日程。

在前面的场景中,通知短信发送的数量可能比登录、注册、密码类即时短信多得多,但从业务角度来看,即时类短信不能等到上一个通知类短信发送完成。因此,在SMS传输优化中引入了优先级概念,并对SMS传输接口进行了改造。

后续工作

通过对SMS传输业务的深入了解,可以发现SMS传输实际上是典型的商家和消费者问题,项目团队解决的很多问题都可以直接引入一次性解决的消息队列。这也是后面优化的方向。

当然,在安全、高性能、高可用性等方面还有很长的路要走。随着工作范围的逐渐扩大,现有的功能和设计方案亟待解决。

步骤摘要

因为是业务优先的原则,所以一开始以满足业务基本要求为主,技术上以灵活性为基本原则。

随着业务的发展,设计应逐步解决可用性、可修改性、安全性、可测试性、易用性等质量特性。

各功能、模块在业务发展中趋向于独立于当前项目,以独立的服务对外提供服务。

在深入了解业务领域的同时,业务稳定,系统重组要提上日程,所有重组都要考虑“输入/输出比率”。不然能说服领导支援重组工作吗?

相关文章

热点排行

版权所有:北京九天揽月科技有限公司 www.sms9.net
九天企信王- 短信群发 电话:010-82028588
增值电信许可证编号:京B2-20060060 联系我们