一种基于微服务的短信发送可靠方法技术

技术编号:25959849 阅读:56 留言:0更新日期:2020-10-17 03:52
一种基于微服务的短信发送可靠方法,以微服务的方式将短信发送模块进行单独的设置,进行独立部署,与其他功能模块通过消息队通信,模块通过注册中心注册功能,调用模块通过注册中心发现指定服务,该方法包括以下步骤:1)消费消息队列内容;2)短信组装;3)直接回调消费成功加入内部消息队列;4)多渠道短信对接;5)第三方短信发送渠道结果回调。本发明专利技术提供了一种基于微服务的短信发送可靠方法,提高了大批量短信发送的性能并且提高了短信发送的可靠性。

【技术实现步骤摘要】
一种基于微服务的短信发送可靠方法
本专利技术涉及一种基于微服务的短信发送可靠方法。
技术介绍
在移动物联网领域,物联网设备在使用过程中存在分布范围广,使用数量多的特点,在系统运行过程中对于系统稳定性进行监测很有必要,当系统发生异常状态时,及时的提醒可以让使用人员及时的发现故障,找到故障,解决故障。在目前的消息通知方式中主要有软件推送通知,短信通知等方式。在实际使用过程中,短信发送方式存在第三方短信发送渠道故障,导致短信发送失败的情况以及发送短信流量吞吐率低的问题。对于一些发送可靠性要求高的短信提醒不适用。在传统的短信发送功能设计中,主要由消息队列和第三方短信发送渠道组成,结构简单便于维护和查找问题的同时也会带来一些弊端,主要在于两点:1.传统的短信发送方式通过消费消息队列的内容并且组装短信后通过发送渠道发出,在成功发送之后才进行确认该消息已消费,当发送渠道发生故障时,会导致消息队列堵塞,可能导致内存溢出的问题。2.传统的短信发送方式对接的短信渠道在发送过程中,当发送短信流量达到单一渠道性能瓶颈时,短信发送的失败率会上升,并且选择短信发送渠道的逻辑是随机选择的方式,当一条短信发送渠道发生故障时可能会继续往该渠道发送,新增流量会阻碍服务故障恢复。
技术实现思路
为了克服现有短信发送方法存在的缺陷,本专利技术提供了一种基于微服务的短信发送可靠方法,提高了大批量短信发送的性能并且提高了短信发送的可靠性。本专利技术解决其技术问题所采用的技术方案是:一种基于微服务的短信发送可靠方法,以微服务的方式将短信发送模块进行单独的设置,进行独立部署,与其他功能模块通过消息队通信,模块通过注册中心注册功能,调用模块通过注册中心发现指定服务,该方法包括以下步骤:1)消费消息队列内容;2)短信组装;3)直接回调消费成功加入内部消息队列;4)多渠道短信对接:对接了多条第三方短信发送渠道,通过建立和维护一个可用性的渠道发送列表,当其中一条短信发送渠道发送失败时,会自动切换为其他的渠道进行发送,确保发送成功;如果全部短信渠道发送失败将会加入失败列表并且由程序自动轮询进行重新的发送过程;5)第三方短信发送渠道结果回调。进一步,所述微服务通过服务注册发现机制进行微服务节点状态更新,通过系统垂直拆分set化进行数据流量切分和调度。再进一步,在步骤1)中,调用模块通过向指定消息队列发送包含短信发送信息的报文所述调用模块只负责向服务端发送报文,短信发送模块只负责从服务端获取报文并且消费。再进一步,在步骤2)中,通过解析报文获得传递参数并且根据传参选择不同的短信发送模版,并且将模版中的内容进行替换,拼装成自然语言内容的可阅读的短信内容。再进一步,在步骤3)中,根据隐私保护的要求,传递参数中不包含明文的联系方式,根据传递参数参数中的用户ID查询用户联系方式,将联系方式和短信内容进行AES的对称加密,然后进入内部消息队列中。更进一步,在步骤5)中,通过第三方短信发送渠道发送短信后,渠道会通过预留的回调接口,更新该条短信的发送状态;默认情况下,当短信已经通过第三方短信渠道发送,那么短信的状态为“发送中”,如果通过该渠道发送成功,该渠道将会通过回调接口将短信发送状态更改为“发送成功”,如果该渠道短信发送失败,那么会将短信发送状态更改为“发送失败”。本专利技术的有益效果主要表现在:基于微服务的架构独立运行,与其他模块运行不会构成性能影响,该方法具有服务独立部署,扩容和缩容方便有利于提高资源利用率,与其他功能耦合性低,容错性更好,拓展性更好;使用注册服务中心和系统垂直set化,分而治之,将大流量切分成多股小流量,提高系统的可用性,稳定性;在短信发送流程中加入内部消息队列,具有降低耦合,削减短信发送高峰流量的优点,可以显著提高该短信发送功能的性能;对接多条短信发送渠道,加入短信发送负反馈机制,建立发送渠道的可用性列表,根据短信发送的成功率自动选择发送成功率高的发送渠道进行发送,并且在短信发送失败后自动选择短信发送渠道进行发送;在所有渠道发送失败之后加入失败列表由自动程序轮询进行重试发送。附图说明图1是微服务设计架构服务注册机制示意图。图2是微服务设计数据切分调度示意图。图3是该短信发送功能在系统中与其他功能的关系示意图。图4是本专利技术的整体流程图。图5是传统的短信发送流程图。图6是本专利技术中的短信组装功能流程图。图7是本专利技术中的多渠道的短信对接功能的流程图。图8是本专利技术中的短信发送结果回调流程图。图9是短信发送渠道的闭环控制系统和建立发送渠道可用性列表框图。具体实施方式下面结合附图对本专利技术作进一步描述。参照图1~图9,一种基于微服务的短信发送可靠方法,以微服务的方式将短信发送模块进行单独的设置,进行独立部署,传统的单体架构是以整个系统为单位进行部署的,而微服务则是以每一个单体应用为单位进行部署。短信发送模块基于微服务架构设计,与其他模块耦合性低,模块功能职责清晰,负责单一功能。与其他模块通过消息队通信,通过异步通信保证性能。将短信发送模块进行一个微服务的独立部署可以有效地提高短信发送模块的性能瓶颈,支撑更多的短信发送量。基于微服务的设计可以让该功能模块不需要和其他功能模块处于同一个整体中,甚至不需要在同一地域部署或者受到操作系统和编程语言的限制。这样,微服务部署实现资源的有效隔离,每一个微服务拥有独立的数据源,这样可以有效避免服务之间争用数据库和缓存资源所带来的问题。并且资源的隔离可以给整个系统带来更高的鲁棒性,在微服务失效时只会影响该功能的使用,并不会影响其他功能和整个系统的稳定运行或者给系统造成性能的消耗。所述短信发送模块通过消息队列与调用模块进行连接,调用模块通过向指定消息队列发送包含短信发送信息的报文,完成发送的功能,并且等待该批次短信的发送结果。所述短信发送可靠方法,包括以下步骤:1)消费消息队列内容:调用模块通过向消息队列中发送报文,调用方和该模块互相透明,无法意识到对方的存在,不存在点对点关系。调用模块只负责向服务端发送报文,短信发送模块只负责从服务端获取报文并且消费。2)短信组装:通过解析报文获得传递参数并且根据传参选择不同的短信发送模版,并且将模版中的内容进行替换,拼装成自然语言内容的可阅读的短信内容。3)直接回调消费成功加入内部消息队列;4)多渠道短信对接:对接了多条第三方短信发送渠道,通过建立和维护一个可用性的渠道发送列表,当其中一条短信发送渠道发送失败时,会自动切换为其他的渠道进行发送,确保发送成功;如果全部短信渠道发送失败将会加入失败列表并且由程序自动轮询进行重新的发送过程;5)第三方短信发送渠道结果回调:通过第三方短信发送渠道发送短信后,渠道会通过预留的回调接口,更新该条短信的发送状态;默认情况下,当短信已经通过第三方短信渠道发送,那么短信的状态为“发送中”本文档来自技高网...

【技术保护点】
1.一种基于微服务的短信发送可靠方法,其特征在于:所述方法以微服务的方式将短信发送模块进行单独的设置,进行独立部署,与其他功能模块通过消息队通信,模块通过注册中心注册功能,调用模块通过注册中心发现指定服务,该方法包括以下步骤:/n1)消费消息队列内容;/n2)短信组装;/n3)直接回调消费成功加入内部消息队列;/n4)多渠道短信对接:/n对接了多条第三方短信发送渠道,通过建立和维护一个可用性的渠道发送列表,当其中一条短信发送渠道发送失败时,会自动切换为其他的渠道进行发送,确保发送成功;如果全部短信渠道发送失败将会加入失败列表并且由程序自动轮询进行重新的发送过程;/n5)第三方短信发送渠道结果回调。/n

【技术特征摘要】
1.一种基于微服务的短信发送可靠方法,其特征在于:所述方法以微服务的方式将短信发送模块进行单独的设置,进行独立部署,与其他功能模块通过消息队通信,模块通过注册中心注册功能,调用模块通过注册中心发现指定服务,该方法包括以下步骤:
1)消费消息队列内容;
2)短信组装;
3)直接回调消费成功加入内部消息队列;
4)多渠道短信对接:
对接了多条第三方短信发送渠道,通过建立和维护一个可用性的渠道发送列表,当其中一条短信发送渠道发送失败时,会自动切换为其他的渠道进行发送,确保发送成功;如果全部短信渠道发送失败将会加入失败列表并且由程序自动轮询进行重新的发送过程;
5)第三方短信发送渠道结果回调。


2.如权利要求1所述的一种基于微服务的短信发送可靠方法,其特征在于:所述微服务通过服务注册发现机制进行微服务节点状态更新,通过系统垂直拆分set化进行数据流量切分和调度。


3.如权利要求1或2所述的一种基于微服务的短信发送可靠方法,其特征在于:在步骤1)中,调用模块通过向指定消息队列发送包含短信发送信息的报文,所述调用...

【专利技术属性】
技术研发人员:王涌沈鹏飞
申请(专利权)人:浙江工业大学
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1