一种短消息系统及其控制方法与流程

文档序号:15817680发布日期:2018-11-02 22:48阅读:119来源:国知局
一种短消息系统及其控制方法与流程

本发明涉及一种通讯技术领域,特别涉及一种短消息系统及其控制方法。

背景技术

随着短消息业务的出现,短消息业务经历了从点对点短消息、增值短消息(信息获取,如天气预报查询等)、跨运营商互通短消息(如典型的短消息拜年)、行业短消息等各个阶段。近年来,随着基于移动互联网的即时通信业务的迅猛发展,点对点短消息和增值短消息受到了极大的冲击,业务量持续走低。但同时也由于移动互联网的发展,行业短消息得到了同步的发展,业务量屡创新高,例如,最典型的就是验证码短消息。

短消息业务具有突发性,忙时的峰值业务量往往是闲时业务量的几十倍。为了承载峰值业务量,运营商在建立短消息系统时,往往按照峰值业务量来进行建设,这样在闲时就会导致资源的浪费。

由此可见,现有的短消息系统无法很好的平衡业务量和资源使用之间的矛盾。



技术实现要素:

为了解决上述技术问题,本发明实施例提供了一种短消息系统及其控制方法。该短消息系统可以根据业务量实时调控负责业务处理的模块进行扩容或缩容,解决了业务量和资源使用之间的矛盾问题。

依据本发明实施例的一个方面,提供了一种短消息系统,包括:业务管理模块以及位于容器中的多个业务处理模块,所述业务管理模块用于监控每个业务处理模块的状态,根据监控的每个业务处理模块的状态确定对容器中的多个业务处理模块进行扩容、缩容或者维持当前数量不变。

可选地,当需要扩容时,所述业务管理模块进一步用于启动新的业务处理模块,并对新的业务处理模块的配置请求进行响应;或者

当需要缩容时,所述业务管理模块进一步用于选择一个需要被缩容的业务处理模块,同时选择另一个在线的业务处理模块,并通知被缩容的业务处理模块下线,同时通知被选择的在线的业务处理模块对被缩容的业务处理模块的队列进行接管处理;或者

当有业务处理模块异常下线时,所述业务管理模块进一步用于选择一个在线的业务处理模块,并通知其对异常下线的业务处理模块的队列进行接管处理。

可选地,所述短消息系统还包括:日志计费信息通道模块以及日志和计费模块;

所述业务处理模块还用于在转发短消息到下级网元成功,并且不需要等下级网元的回执消息时,产生回执消息并进行转发,并将日志信息和计费信息写入到所述日志计费信息通道模块,由所述日志和计费模块进行处理;

所述日志和计费模块用于从日志计费信息通道模块读取日志和计费信息并按照格式生成日志和计费信息。

可选地,所述短消息系统还包括:业务状态缓存模块;

所述业务处理模块还用于在转发短消息到下级网元成功,并且需要等下级网元的回执消息时,将等回执消息写入所述业务状态缓存模块;

在收到下级网元的回执消息时,所述业务处理模块还用于从业务状态缓存模块查询出等回执消息,然后转发回执消息,并将日志信息和计费信息写入到日志计费信息通道模块,由日志和计费模块进行处理。

可选地,所述业务处理模块还用于在转发短消息失败,并且需要进行短消息重发时,将待重发的短消息写入业务状态缓存模块中与所述业务处理模块对应的重试队列中;

所述业务处理模块还用于定期扫描所述重试队列,将满足重发条件的短消息进行重发。

依据本发明实施例的另一个方面,还提供了一种短消息系统的控制方法,所述短消息系统包括:业务管理模块以及位于容器中的多个业务处理模块;该控制方法包括:

所述业务管理模块监控每个业务处理模块的状态;

所述业务管理模块根据监控的每个业务处理模块的状态确定对容器中的多个业务处理模块进行扩容、缩容或者维持当前数量不变。

可选地,所述业务管理模块根据监控的每个业务处理模块的状态确定对容器中的多个业务处理模块进行扩容、缩容或者维持当前数量不变,包括:

当需要扩容时,所述业务管理模块启动新的业务处理模块,并对新的业务处理模块的配置请求进行响应;或者

当需要缩容时,所述业务管理模块选择一个需要被缩容的业务处理模块,同时选择另一个在线的业务处理模块,并通知被缩容的业务处理模块下线,同时通知被选择的在线的业务处理模块对下线的业务处理模块的队列进行接管处理;或者

当有业务处理模块异常下线时,所述业务管理模块选择一个在线的业务处理模块,并通知其对异常下线的业务处理模块的队列进行接管处理。

可选地,所述短消息系统还包括:日志计费信息通道模块以及日志和计费模块;

所述业务处理模块在转发短消息到下级网元成功,并且不需要等下级网元的回执消息时,产生回执消息并进行转发,并将日志信息和计费信息写入到所述日志计费信息通道模块,由所述日志和计费模块进行处理;

所述日志和计费模块从日志计费信息通道模块读取日志和计费信息并按照格式生成日志和计费信息。

可选地,所述短消息系统还包括:业务状态缓存模块;

所述业务处理模块在转发短消息到下级网元成功,并且需要等下级网元的回执消息时,将等回执消息写入所述业务状态缓存模块;

在收到下级网元的回执消息时,所述业务处理模块从业务状态缓存模块查询出等回执消息,然后转发回执消息,并将日志信息和计费信息写入到日志计费信息通道模块,由日志和计费模块进行处理。

可选地,所述业务处理模块在转发短消息失败,并且需要进行短消息重发时,将待重发的短消息写入业务状态缓存模块中与所述业务处理模块对应的重试队列中;

所述业务处理模块定期扫描所述重试队列,将满足重发条件的短消息进行重发。

本发明的实施例具有如下有益效果:

该短消息系统通过业务管理模块实时监控每个业务处理模块的业务量,并根据监控的每个业务处理模块的状态确定对多个业务处理模块进行扩容、缩容或者维持当前数量不变。该短消息系统将多个业务处理模块部署在容器中,可以利用容器启动速度快的特点,可实现业务处理模块的快速扩容和缩容,例如整个扩容过程只需要几秒,解决了业务量和资源使用之间的矛盾问题。

同时,该短消息系统通过业务状态缓存模块和日志计费信息通道模块将业务处理和状态缓存进行分离,有效地解决了容器持久化能力弱的问题。

附图说明

图1为本发明实施例的短消息系统示意图;

图2为本发明实施例的短消息系统的控制方法的流程图之一;

图3为本发明实施例的短消息系统的控制方法的流程图之二;

图4为本发明实施例的短消息系统的控制方法的流程图之三;

图5为本发明实施例的短消息系统的控制方法的流程图之四;

图6为本发明实施例的短消息系统的控制方法的流程图之五。

具体实施方式

为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。

参见图1,本实施例中的短消息系统包括:业务管理模块101、位于容器中的多个业务处理模块102、日志计费信息通道模块103、日志和计费模块104、业务状态缓存模块105以及业务接入模块106。

具体地,所述业务管理模块101用于监控每个业务处理模块102的状态,根据监控的每个业务处理模块102的状态确定对容器中的多个业务处理模块102进行扩容、缩容或者维持当前数量不变。

优选地,当多个业务处理模块102需要扩容时,所述业务管理模块101进一步用于启动新的业务处理模块102,并对新的业务处理模块102的配置请求进行响应;或者

当多个业务处理模块102需要缩容时,所述业务管理模块101进一步用于选择一个需要被缩容的业务处理模块102,同时选择另一个在线的业务处理模块102,并通知被缩容的业务处理模块102下线,同时通知被选择的在线的业务处理模块102对被缩容的业务处理模块102的队列进行接管处理;或者

当有业务处理模块102异常下线时,所述业务管理模块101进一步用于选择一个在线的业务处理模块102,并通知其对异常下线的业务处理模块102的队列进行接管处理。

具体地,多个业务处理模块102用于整个短消息系统的业务处理,多个业务处理模块102部署在容器中,这样可以利用容器启动速度快的特点,可实现业务处理模块102的快速扩容或缩容,例如整个扩容过程只需要几秒。所述业务处理模块102基于一个镜像文件,镜像文件包含业务处理模块102的可执行程序和执行环境。

可选地,所述业务处理模块102还用于在转发短消息到下级网元成功,并且不需要等下级网元的回执消息时,产生回执消息并进行转发,并将日志信息和计费信息写入到所述日志计费信息通道模块103,由所述日志和计费模块104进行处理日志信息和计费信息;

可选地,所述业务处理模块102还用于在转发短消息到下级网元成功,并且需要等下级网元的回执消息时,将等回执消息写入所述业务状态缓存模块105;在收到下级网元的回执消息时,所述业务处理模块102还用于从业务状态缓存模块105查询出等回执消息,然后转发回执消息,并将日志信息和计费信息写入到日志计费信息通道模块103,由日志和计费模块104进行处理。

可选地,所述业务处理模块102还用于在转发短消息失败,并且需要进行短消息重发时,将待重发的短消息写入业务状态缓存模块105中与所述业务处理模块102对应的重试队列中;

可选地,所述业务处理模块102还用于定期扫描所述重试队列,将满足重发条件的短消息进行重发。

具体地,所述日志计费信息通道模块103用于日志和计费信息的传输通道,由所述业务处理模块102根据业务流程写入日志计费信息,由日志和计费模块104读取。所述日志计费信息通道模块103可以基于kafka分布式发布订阅消息系统或分布式消息队列。其中kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。

具体地,所述日志和计费模块104用于从日志计费信息通道模块103读取日志和计费信息并按照格式生成日志和计费信息。

具体地,所述业务状态缓存模块105用于缓存短消息处理过程中的状态信息,该状态信息包括等回执消息、待重发的短消息以及其它的状态信息中的一种或多种。所述业务处理模块102根据业务流程写入状态信息和提取信息,通过所述业务状态缓存模块105实现了业务处理和状态信息的分离,便于业务处理模块102的动态扩容和缩容,有效地解决了容器持久化能力弱的问题。所述业务状态缓存模块105可以基于分布式数据库系统或分布式k-v(key-value,键-值)缓存系统,当然并不仅限于此。

具体地,所述业务接入模块106用于短消息系统的对外连接的建立和维护,对外连接的建立包括:

所述业务接入模块106作为客户端主动建立到外部网元的连接;和/或

所述业务接入模块106作为服务端等待外部网元来建立连接;和/或

所述业务接入模块106作为服务端等待业务处理模块102主动建立连接。

连接建立之后,业务接入模块106还用于监控连接是否正常,如果连接异常,则断开连接,重新发起连接操作,或者等待对方重新发起连接。

所述业务接入模块106进一步用于短消息的分发和转发,当从外部网元接收到消息后,如果是短消息或者回执消息,业务接入模块106将短消息或者回执消息分发到当前在线的业务处理模块102;如果是响应消息,则将响应消息分发到处理请求的业务处理模块102。当业务接入模块106从业务处理模块102接收到消息时,如果是普通消息或者回执消息,则转发到对应的外部网元;如果是响应消息,则通过接收请求消息的链路返回响应消息。业务接入模块106可支持当前现有的短信协议,其中现有的短信协议包括但不限于,sms(shortmessagingservice,短信服务)短信协议、ems(enhancedmessageservice,增强型短消息服务)短信协议和mms(multimediamessagingservice,多媒体信息服务)彩信协议的一种或几种。

依据本发明实施例的另一个方面,还提供了一种短消息系统的控制方法,该控制方法基于上述的短消息系统。

参见图2,所述短消息系统的控制方法包括:

s201、所述业务管理模块监控每个业务处理模块的状态;

s202、所述业务管理模块根据监控的每个业务处理模块的状态确定对容器中的多个业务处理模块进行扩容、缩容或者维持当前数量不变。

可选地,所述业务管理模块根据监控的每个业务处理模块的状态确定对容器中的多个业务处理模块进行扩容、缩容或者维持当前数量不变,包括:

所述业务处理模块维持当前数量不变;或者

当需要扩容时,所述业务管理模块启动新的业务处理模块,并对新的业务处理模块的配置请求进行响应;或者

当需要缩容时,所述业务管理模块选择一个需要被缩容的业务处理模块,同时选择另一个在线的业务处理模块,并通知被缩容的业务处理模块下线,同时通知被选择的在线的业务处理模块对下线的业务处理模块的队列进行接管处理;或者

当有业务处理模块异常下线时,所述业务管理模块选择一个在线的业务处理模块,并通知其对异常下线的业务处理模块的队列进行接管处理。

例如,当需要扩容时,业务管理模块启动新建的业务处理模块,并通知系统其他模块有新建的业务管理模块启动;新建的业务处理模块主动连接所述业务管理模块,新建的业务处理模块从所述业务管理模块获取系统的配置信息,并主动和业务接入模块、业务状态缓存模块、日志计费信息通道模块建立相连。业务处理模块启动完成之后,业务接入模块开始向该业务处理模块分发业务。业务处理模块收到业务接入模块分发的短消息之后,它给上级网元返回响应,并进行协议转换、路由分析和目的网元选择,然后通过业务接入模块把消息转发到目的网元。

继续参见图1,当需要缩容时,假若需要缩容的业务处理模块为图1所示的业务处理模块a,所述业务管理模块101选择另外一个在线的业务处理模块b用于接管业务处理模块a的队列,所述业务管理模块101通知其他模块(例如,业务管理模块101、日志计费信息通道模块103、日志和计费模块104、业务状态缓存模块105以及业务接入模块106):业务处理模块a下线;与业务处理模块a相连的模块和业务处理模块a断链;通知业务处理模块b对业务处理模块a的队列进行接管;业务处理模块a退出,进行资源回收。

继续参见图1,当有业务处理模块异常下线时,假若图1所示的业务处理模块a异常,所述业务管理模块选择另外一个在线的业务处理模块b用于接管业务处理模块a的队列,并通知其他模块:业务处理模块a异常。与业务处理模块a相连的模块和业务处理模块a断链;通知业务处理模块b对业务处理模块a的队列进行接管;强制业务处理模块a下线,并进行资源回收。

参见图3,该控制方法还包括:

所述业务处理模块在转发短消息到下级网元成功,并且不需要等下级网元的回执消息时,产生回执消息并进行转发,并将日志信息和计费信息写入到所述日志计费信息通道模块,由所述日志和计费模块进行处理;

所述日志和计费模块从日志计费信息通道模块读取日志和计费信息并按照格式生成日志和计费信息。

参见图4,该控制方法还包括:

所述业务处理模块在转发短消息到下级网元成功,并且需要等下级网元的回执消息时,将等回执消息写入所述业务状态缓存模块;

在收到下级网元的回执消息时,所述业务处理模块从业务状态缓存模块查询出等回执消息,然后转发回执消息,并将日志信息和计费信息写入到日志计费信息通道模块,由日志和计费模块进行处理。

参见图5和图6,该控制方法还包括:

所述业务处理模块在转发短消息失败,并且需要进行短消息重发时,将待重发的短消息写入业务状态缓存模块中与所述业务处理模块对应的重试队列中;

所述业务处理模块定期扫描所述重试队列,将满足重发条件的短消息进行重发。

本发明实施例的短消息系统该短消息系统通过业务管理模块实时监控每个业务处理模块的业务量,并根据监控的每个业务处理模块的状态确定对多个业务处理模块进行扩容、缩容或者维持当前数量不变。该短消息系统将多个业务处理模块部署在容器中,可以利用容器启动速度快的特点,可实现业务处理模块的快速扩容和缩容,整个扩容过程只需要几秒,解决了业务量和资源使用之间的矛盾问题。同时,该短消息系统通过业务状态缓存模块和日志计费信息通道模块将业务处理和状态缓存进行分离,有效地解决了容器持久化能力弱的问题。本发明实施例的短消息系统既利用了容器快速启动的特点,又解决了容器持久化能力较弱的问题,可以在快速应对上涨的业务量和资源利用率之间达到一个较好的平衡,有明显的经济效益和社会效益。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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