短信分发方法和系统与流程

文档序号:12917674阅读:464来源:国知局
短信分发方法和系统与流程

本公开涉及电商领域,具体地,涉及一种短信分发方法和系统,能够通过实时计算通道效率和负载效率并进行动态切换的方法,来以满足短信发放的稳定性和到达率。



背景技术:

目前,短信作为最重要的信息触达方式被广泛应用于注册认证、信息通知、报警告知、营销活动等领域。然而,国内外互联网应用或网站,其本身并不具有电信行业运营资质,通常它们通过接入第三方服务供应商(serviceprovider,sp)来完成短信发放功能。特别在大型网站或应用中,为保证消息渠道的稳定性和到达率,往往存在多个sp服务通道。国内大型网站通过内建短信平台,来建立内部短信调用和外部sp服务调用的中间层。然而,在多通道模式下,现有短信平台无法在各sp服务网关质量不一的情况下保证短信通道的稳定性和到达率,因此,无法提供快速稳定地发放短信的效果。

尽管现有技术可以通过为采用监控系统报警和人工切换通道的方式,解决了在多通道模式下短信通道稳定性的问题,然而该方法无法及时地发现问题,并快速切换到正常通道,导致响应效率非常低。

因此,需要一种短信分发方法和系统,能够高效地确保在多通道模式下短信通道的稳定性,及时地发现和处理短信分发过程中出现的问题。



技术实现要素:

本公开的方面在于解决至少上述问题和/或缺点并提供至少下述优点。

本公开提供了一种短信分发方法,可以包括:在使用多个短信通 道分发短信时,产生所述多个短信通道的监控日志;根据所产生的监控日志,确定对每个短信通道的至少一个性能监控指标加以表示的监控数据;针对每个短信通道,基于所述短信通道的监控数据,对所述短信通道进行评分;以及根据所述多个短信通道的评分结果,在所述多个短信通道之间重新进行负载配置,并按照该负载配置分发短信。

优选地,所述监控日志可以包括:唯一性的短信通道名称。

优选地,所述对所述短信通道进行评分可以包括:根据预设权重对所述监控数据进行加权求和,得到每个短信通道的评分结果。

优选地,所述对所述短信通道进行评分还可以包括:将各短信通道的评分结果相加,得到短信通道的总分;并计算每个短信通道的占比,其中每个短信通道的占比等于所述短信通道的评分结果与短信通道的总分的比值。

优选地,所述在多个短信通道之间重新进行负载配置并按照该负载配置分发短信可以包括:生成由与短信通道配置信息相对应的数组元素构成的百分比数组,其中一个数组元素与一个短信通道配置信息相对应,且与同一短信通道配置信息相对应的数组元素的总数与所述短信通道的占比成正比。

优选地,所述在多个短信通道之间重新进行负载配置并按照该负载配置分发短信还可以包括:响应于进行短信分发,获取随机数;将随机数与百分比数组的长度进行取模运算,得到余数a,其中0≤a<l,l为百分比数组的长度;以及选取百分比数组中的第a个数组元素,通过第a个元素所对应的短信通道,进行短信分发,并生成监控日志。

根据本公开的第二方面,提供了一种短信分发系统,包括:短信分发器集群,可以配置为在使用多个短信通道分发短信时,产生所述多个短信通道的监控日志;监控数据集中模块,可以配置为收集由短信分发器集群产生的监控日志,并根据所产生的监控日志,确定对每个短信通道的至少一个性能监控指标加以表示的监控数据;短信通道评分模块,可以配置为针对每个短信通道,基于所述由监控数据集中模块确定的对每个短信通道的至少一个性能监控指标加以表示的监控数据,对所述短信通道进行评分;其中所述短信分发器集群还可以配 置为接收由短信通道评分模块确定的评分结果,并根据所述多个短信通道的评分结果,在所述多个短信通道之间重新进行负载配置,并按照该负载配置分发短信。

优选地,所述监控日志可以包括:唯一性的短信通道名称。

优选地,所述短信通道评分模块可以配置为:根据预设权重对所述监控数据进行加权求和,得到每个短信通道的评分结果。

优选地,所述短信通道评分模块还可以配置为:将各短信通道的评分结果相加,得到短信通道的总分;并计算每个短信通道的占比,其中每个短信通道的占比等于所述短信通道的评分结果与短信通道的总分的比值。

优选地,所述短信分发器集群还可以配置为:生成由与短信通道配置信息相对应的数组元素构成的百分比数组,其中一个数组元素与一个短信通道配置信息相对应,且与同一短信通道配置信息相对应的数组元素的总数与所述短信通道的占比成正比。

优选地,所述短信分发器集群还可以配置为:响应于进行短信分发,获取随机数;将随机数与百分比数组的长度进行取模运算,得到余数a,其中0≤a<l,l为百分比数组的长度;以及选取百分比数组中的第a个数组元素,通过第a个元素所对应的短信通道,进行短信分发,并生成监控日志。

因此,本公开提供了一种短信分发方法和系统,能够通过实时计算通道效率和负载效率并进行动态切换的方法,来以满足短信发放的稳定性和到达率。综上,根据本公开实施例的短信分发方法和系统能够高效地确保在多通道模式下短信通道的稳定性,并及时地发现和处理短信分发过程中出现的问题。

附图说明

以下结合附图,将更清楚本公开的示例实施例的上述和其它方面、特征以及优点,附图中:

图1示出了根据本公开实施例的短信分发系统100的框;

图2示出了根据本公开实施例的短信分发方法的示意图;以及

图3示出了当短信分发器集群使用短信通道分发短信时的操作流程图。

具体实施方式

以下参考附图描述了本公开的示例实施。本公开提供了一种短信分发方法和系统,能够通过实时计算通道效率和负载效率并进行动态切换的方法,来以满足短信发放的稳定性和到达率,从而高效地确保在多通道模式下短信通道的稳定性,并及时地发现和处理短信分发过程中出现的问题。

以下参考图1描述根据本公开的短信分发系统100的框图。所述短信分发系统100包括短信分发器集群110、监控数据集中模块120以及短信通道评分模块130。

当使用多个短信通道发送短信时,短信分发器集群110产生针对多个短信通道的监控日志。当互联网企业(即,短信sp服务商)向用户发送短信时,由于短信sp服务商缺少电信行业运营资质,短信服务商采用符合协议标准的方式,向短信sp服务商提供短信接口。每个接口以配置的方式记录在短信平台中(包括每个通道的通道名称及通道id唯一)。短信分发器集群在启动时根据配置信息创建短信通道实例。此外,除了唯一的短信通道名称之外,监控日志还可以含有关于可用率和tp性能(例如,tp99、tp90、tp-avg等)的信息。tp性能是指依据tps及每秒完成事务数衍生的数据,例如,【tp90-10毫秒】代表100次事务中有10事务耗时10毫秒,【tp99-10毫秒】代表100次事务中有1事务耗时10毫秒,依次类推。

监控数据集中模块120可以配置为收集由短信分发器集群110产生的监控日志,并根据所产生的监控日志,确定对每个短信通道的至少一个性能监控指标加以表示的监控数据。具体地,监控数据集中模块120可以实现为同一监控平台,通过对监控日志所含有的数据进行分析,来确定对每个短信通道的至少一个性能监控指标加以表示的监控数据。

此外,短信通道评分模块130可以配置为针对每个短信通道,基 于所述由监控数据集中模块120确定的对每个短信通道的至少一个性能监控指标加以表示的监控数据,对所述短信通道进行评分。具体地,短信通道评分模块130可以通过查询由虚拟通道所管理的多个短信通道的监控数据,来采用横向对比、加权等手段对各通道进行评分,并将计算结果封装成配置信息消息,并推送至短信分发器集群110。所有短信平台根据业务的特征,将下游sp通道分为类,将各通道纳入其中管理,称其为“虚拟通道”。每个虚拟通道根据业务的特征配置相应的性能要求指标,例如tp性能(tp999、tp99、tp90、tp_avg)和可用率等,并为每种指标制定时间。例如,当用户进行注册、下单验证、安全登录验证等验证功能时,对时效和到达率的要求极高,可以为tp999、tp99性能及短信到达率的分钟粒度指标指定较高权重,其他指标次之。在另一示例中,当对订单进行批量处理时,要求订单信息准确的发送至用户手机,那么可以为tp_avg和可用率的小时粒度指标指定较高权重。

最终,短信分发器集群110可以根据最新的评分结果重新划分短信流量。

图2示出了根据本公开实施例的短信分发方法的示意图。如图2所示,在正常运转状态下,短信通道的动态不均衡负载过程形成闭环。

首先,当使用短信通道发送短信时,短信分发器集群110进行负载配置并产生监控日志。具体地,响应于使用短信通道发送短信,短信分发器集群110加载负载配置,并产生针对短信通道的监控日志。此外,当初次启动短信分发器集群时,可能由于没有监控数据和历史评分数据,而导致整个流程无法运转风险,所以在启动前会配置初始流量分配配置。

其次,响应于从分发器集群110接收到监控日志,监控数据集中模块120可以对监控日志进行处理,以便得到对每个短信通道的至少一个性能监控指标加以表示的监控数据。具体地,监控数据中心模块120可以异步地收集监控日志,并进行处理。每个部署了短信分发器集群的容器中同时部署日志收集器,日志收集器将本地监控原始数据日志收集并推送至监控数据集中模块120。监控数据集中模块120根 据原始日志根据时间粒度(每分钟、小时、天等)汇总,并得到初步的性能监控指标,包括但不限于:tp99,tp90,tp-avg及可用性。

接着,短信通道评分模块130根据虚拟通道查询其管理的短信通道查询各通道的监控数据,并采用横向对比、加权等手段对各通道的最终评分做出最终计算,并将计算结果封装成配置信息消息,并推送至短信分发器集群。

最终,短信分发器集群110根据所述多个短信通道的评分结果,在所述多个短信通道之间重新进行负载配置,并按照该负载配置分发短信。

此外,在短信通道评分模块130向短信分发器集群110推送评分结果的同时,还可以将评分结果和相应的通道配置进行持久化。

下面将详细描述对短信通道进行评分的过程。

首先,短信通道评分模块130根据虚拟通道获取其管理的短信通道,并根据短信通道名称依次获取需要的监控指标初步的监控数据,其中所述性能指标包括但不限于可用率和tp性能(例如,tp99、tp90、tp-avg等),如下表1所示:

表1

其中a代表通道,x代表监控数据。

其次,根据虚拟通道各项监控指标和权重的配置,横向对比并计算出各评分项评分,如下表2所示:

表2

应注意,在所考虑的性能指标中,有些性能指标的评分与监控数据成反比,而有些性能指标的评分与监控数据成正比。可以通过下式计算各评分项评分:

反比例评分项分数anrm反比例=[(c/监控数据anxn)/∑(c/监控数据anxm)]*权重

正比例评分项分数anrm正比例=(监控数据anxn/∑监控数据anxm)*权重

其中c代表常数;n代表第n通道(例如a1代表通道1),其中n的范围从1到n,n代表虚拟通道内实际通道的个数;m代表不同的时间粒度的第m个监控数据,m的范围从1到m,m代表单个通道内的监控数据的总数;r代表一个通道的一个评分项评分。

这样,如表3所示,可以通过计算确定各评分项的评分。在所有短信通道的各评分项评分计算完成后,可以相加得到各通道的评分总分,即,各项总分anc=∑anrm。

表3

如表4所示,可以将各通道总分相加,并根据各通道总分得出占比,即负载配置。各通道占比是相应通道的总分与各通道总分的比值,即,各通道的占比anp=anc/∑anc。

表4

最终,将各项评分和负载配置持久化,将负载配置封装成消息,推送至短信分发器集群。

图3示出了当短信分发器集群使用短信通道分发短信时的操作流程图。

如图3所示,在确定了各短信通道的占比的情况下,短信分发器集群在使用短信通道分发短信时,在步骤s301,生成由与短信通道配置信息相对应的数组元素构成的百分比数组,其中一个数组元素与一个短信通道配置信息相对应,且与同一短信通道配置信息相对应的数组元素的总数与所述短信通道的占比成正比。例如,百分比数组中可以包含n1%个通道a1、n2%个通道a2等。在步骤s302,响应于进行短信分发,获取随机数。在步骤s303,将随机数与百分比数组的长度进行取模运算,得到余数a,其中0≤a<l,l为百分比数组的长度。在步骤s304,选取百分比数组中的第a个数组元素,通过第a个元素 所对应的短信通道,进行短信分发,并生成监控日志。也就是说,短信分发器集群启动时根据持久化的负载配置信息和短信通道的配置信息生成一个固定长度的“百分比”数据,“百分比”数组中包含n1%个通道a1,n2%个通道a2。响应于进行短信分发,获取随机数,并将随机数和“百分比”数组总长度l取模得到一个小于l的数,作为从“百分比”数据中获取通道的下标,并获取相应下标的短信通道。根据基本概率常识可知道短信分发是,获取通道a1~an的几率和通道在“百分比”数组中的个数成正比例。当短信分发时,根据真实的唯一的通道名称形成通道性能监控原始日志数据。

因此,本公开提供了一种短信分发系统和方法,能够通过实时计算通道效率和负载效率并进行动态切换的方法,来以满足短信发放的稳定性和到达率。

然而,在整个监控过程中以及在根据监控涉及到初次启动及动态切换过程中可能会产生过程的中断的风险,还需要针对上述问题的应对方案。例如,当日志收集、性能数据汇总计算功能或评分计算功能出现不可用或不可预知的问题时,例如某个短信通道出现问题导致无法自动进行流量分配时,可手动切断评分计算,并使用初始化的方式,重新分配流量。附加地,当某个短信通道的可用率降低到阈值或不可用时,可以手动在虚拟通道管理中摘除出现问题的通道。此外,当使用某个通道分发短信时出现了异常时,可以记录异常,并自动选择虚拟通道中的其他通道分发短信,若所有通道均失败,则进入短信重试队列中等待重试。

综上,提供了一种短信分发系统和方法及其容灾方案。上述方法可以通过多种计算机装置以可执的程序命令形式实现并记录在计算机可读记录介质中。在这种情况下,计算机可读记录介质可以包括单独的程序命令、数据文件、数据结构或其组合。同时,记录在记录介质中的程序命令可以专门设计或配置用于本公开,或是计算机软件领域的技术人员已知应用的。计算机可读记录介质包括例如硬盘、软盘或磁带等磁性介质、例如压缩盘只读存储器(cd-rom)或数字通用盘(dvd)等光学介质、例如光磁软盘的磁光介质以及例如存储和执行 程序命令的rom、ram、闪存等硬件装置。此外,程序命令包括编译器形成的机器语言代码和计算机通过使用解释程序可执行的高级语言。前面的硬件装置可以配置成作为至少一个软件模块操作以执行本公开的操作,并且逆向操作也是一样的。

尽管以特定顺序示出并描述了本文方法的操作,然而可以改变每个方法的操作的顺序,使得可以以相反顺序执行特定操作或使得可以至少部分地与其它操作同时来执行特定操作。此外,本公开不限于上述示例实施例,它可以在不脱离本公开的精神和范围的前提下,包括一个或多个其他部件或操作,或省略一个或多个其他部件或操作。

以上已经结合本公开的优选实施例示出了本公开,但是本领域的技术人员将会理解,在不脱离本公开的精神和范围的情况下,可以对本公开进行各种修改、替换和改变。因此,本公开不应由上述实施例来限定,而应由所附权利要求及其等价物来限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1