本发明专利技术公开了一种高并发分布式消息推送系统及方法,该系统包括:客户端、业务服务器和消息处理中心服务器,业务服务器包括:业务接入模块和多个业务服务模块;其中,客户端通过业务接入模块与各个业务服务模块通信;各个业务服务模块根据客户端操作指令,生成一个或多个通知消息,存入Kafka消息队列中;消息处理中心服务器从Kafka消息队列中取出各个通知消息,并根据各个通知消息的消息类型,调用不同的消息渠道发送各个通知消息。本发明专利技术能够对不同渠道的通知消息实现高并发、高吞吐、分布式统一处理和推送。
High concurrency distributed message push system and method
【技术实现步骤摘要】
高并发分布式消息推送系统及方法
本专利技术涉及互联网领域,尤其涉及一种高并发分布式消息推送系统及方法。
技术介绍
本部分旨在为权利要求书中陈述的本专利技术实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。随着科技的发展,用户能够通过越来越多的渠道接收消息、处理消息。以网银为例,用户可以通过手机短信、邮件、页面提醒、微信推送等渠道接收各种消息通知。由于网银系统中,每个渠道分别属于各个模块,每个模块分别处理各自的消息,会导致代码冗余、资源浪费、结构不清楚的问题,还会影响处理速度。尤其是随着消息的数量和种类的增多,这些问题更加严重,因而,如何快速高效的处理消息成为了当前急切需要解决的问题。针对上述问题,目前尚未提出有效的解决方案。
技术实现思路
本专利技术实施例提供一种高并发分布式消息推送系统,用以解决现有的业务服务系统,由各个业务服务模块分别发送和处理不同渠道的消息,导致代码冗余、资源浪费、结构不清楚,且影响处理速度的技术问题,该方法包括:客户端、业务服务器和消息处理中心服务器,业务服务器包括:业务接入模块和多个业务服务模块;其中,客户端通过业务接入模块与各个业务服务模块通信;各个业务服务模块根据客户端操作指令,生成一个或多个通知消息,存入Kafka消息队列中;消息处理中心服务器从Kafka消息队列中取出一个或多个通知消息,并根据各个通知消息的消息类型,调用不同的消息渠道发送各个通知消息。本专利技术实施例还提供一种高并发分布式消息推送方法,用以解决现有的业务服务系统,由各个业务服务模块分别发送和处理不同渠道的消息,导致代码冗余、资源浪费、结构不清楚,且影响处理速度的技术问题,该方法包括:通过Kafka消息队列,接收业务服务器内各个业务服务模块生成的通知消息;从Kafka消息队列中取出一个或多个通知消息,并根据各个通知消息的消息类型,调用不同的消息渠道发送各个通知消息。本专利技术实施例还提供一种计算机设备,用以解决现有的业务服务系统,由各个业务服务模块分别发送和处理不同渠道的消息,导致代码冗余、资源浪费、结构不清楚,且影响处理速度的技术问题,该计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述的高并发分布式消息推送方法。本专利技术实施例还提供一种计算机可读存储介质,用以解决现有的业务服务系统,由各个业务服务模块分别发送和处理不同渠道的消息,导致代码冗余、资源浪费、结构不清楚,且影响处理速度的技术问题,该计算机可读存储介质存储有执行上述高并发分布式消息推送方法的计算机程序。本专利技术实施例中,通过消息处理中心服务器统一处理业务服务器内各个业务服务模块根据客户端操作指令生成的通知消息,当业务服务器内各个业务服务模块根据客户端操作指令生成通知消息后,存入Kafka消息队列,以便消息处理中心服务器从Kafka消息队列中取出一个或多个通知消息,进而根据各个通知消息的消息类型,调用不同的消息渠道发送各个通知消息。通过本专利技术实施例,能够对不同渠道的通知消息实现高并发、高吞吐、分布式统一处理和推送。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:图1为本专利技术实施例中提供的一种高并发分布式消息推送系统示意图;图2为本专利技术实施例中提供的一种可选的高并发分布式消息推送系统示意图;图3为本专利技术实施例中提供的一种高并发分布式消息推送方法流程图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本专利技术实施例做进一步详细说明。在此,本专利技术的示意性实施例及其说明用于解释本专利技术,但并不作为对本专利技术的限定。在本说明书的描述中,所使用的“包含”、“包括”、“具有”、“含有”等,均为开放性的用语,即意指包含但不限于。参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”等的描述意指结合该实施例或示例描述的具体特征、结构或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本申请的实施,其中的步骤顺序不作限定,可根据需要作适当调整。本专利技术实施例中提供了一种高并发分布式消息推送系统,图1为本专利技术实施例中提供的一种高并发分布式消息推送系统示意图,如图1所示,该系统可以包括:客户端10、业务服务器20和消息处理中心服务器30,业务服务器20包括:业务接入模块201和多个业务服务模块202。其中,客户端10通过业务接入模块201与各个业务服务模块202通信;各个业务服务模块202根据客户端的操作指令,生成一个或多个通知消息,存入Kafka消息队列中;消息处理中心服务器30从Kafka消息队列中取出一个或多个通知消息,并根据各个通知消息的消息类型,调用不同的消息渠道发送各个通知消息。需要说明的是,本专利技术实施例中的业务服务器20可以是但不限于提供网银业务的应用服务器,可以通过但不限于短信、邮件、页面等消息渠道发送通知消息。当业务服务器为网银业务的应用服务器的情况下,各个业务服务模块可以是业务系统中转账汇款模块、下载中心模块等需要使用发送消息给用户的模块。可选地,本专利技术实施例中的客户端10可以是手机、笔记本电脑、计算机等终端设备。业务服务器20中的业务接入模块201可以是但不限于通过Web页面接入业务服务的业务接入模块。本专利技术实施例可以根据不同的业务服务器配置不同的消息类型和消息渠道。需要注意的是,本专利技术实施例通过消息处理中心服务器统一处理各个业务服务模块生成的通知消息,能够根据各个通知消息对用户的影响程度确定各个通知消息的紧急程度,避免紧急消息延误推送。以网银业务系统为例,可以将通知消息分为账户状态变更、文件下载、退汇通知、缴费通知、安全验证等类型,其中,安全验证类通知消息,一旦用户接收不到消息,则无法进行下一步操作,对用户影响较大,则将该类型的通知消息确定为紧急消息;而文件下载这种类型的通知消息延误一段时间不会影响到用户的下一步操作,因而,可将其配置为非紧急消息。进一步地,本专利技术实施例中,对于不同消息类型的消息,各个业务服务模块可以根据客户端操作,基于预先配置的消息模板(例如,短信验证码消息模板、文件下载通知消息模板等)组成通知消息的消息内容。由上可知,本专利技术实施例提供的高并发分布式消息推送系统,通过消息处理中心服务器统一处理业务服务器内各个业务服务模块根据客户端操作指令生成的通知消息,当业务服务器内各个业务服务模块根据客户端操作指令生成通知消息后,存入Kafka消息队列,以便消息处理中心服务器从Kafka消息本文档来自技高网...
【技术保护点】
1.一种高并发分布式消息推送系统,其特征在于,包括:客户端、业务服务器和消息处理中心服务器,所述业务服务器包括:业务接入模块和多个业务服务模块;/n其中,所述客户端通过所述业务接入模块与各个业务服务模块通信;各个业务服务模块根据客户端操作指令,生成一个或多个通知消息,存入Kafka消息队列中;所述消息处理中心服务器从Kafka消息队列中取出一个或多个通知消息,并根据各个通知消息的消息类型,调用不同的消息渠道发送各个通知消息。/n
【技术特征摘要】
1.一种高并发分布式消息推送系统,其特征在于,包括:客户端、业务服务器和消息处理中心服务器,所述业务服务器包括:业务接入模块和多个业务服务模块;
其中,所述客户端通过所述业务接入模块与各个业务服务模块通信;各个业务服务模块根据客户端操作指令,生成一个或多个通知消息,存入Kafka消息队列中;所述消息处理中心服务器从Kafka消息队列中取出一个或多个通知消息,并根据各个通知消息的消息类型,调用不同的消息渠道发送各个通知消息。
2.如权利要求1所述的系统,其特征在于,所述消息处理中心服务器包括:消息接收模块和消息处理模块;
其中,所述消息接收模块,用于从Kafka消息队列中取出一个或多个通知消息,根据各个通知消息的消息类型,调用不同的消息渠道发送各个通知消息,并将发送成功或发送失败的通知消息记录到消息数据库;
所述消息处理模块,用于定时轮询所述消息数据库,查询发送失败的通知消息,并根据各个发送失败的通知消息的消息类型,重新调用不同的消息渠道发送各个发送失败的通知消息。
3.如权利要求2所述的系统,其特征在于,所述消息处理中心服务器还包括:消息通知模块,与所述客户端通信,用于从Kafka消息队列中取出一个或多个通知消息,基于Websocket协议发送至所述客户端。
4.如权利要求2所述的系统,其特征在于,所述消息处理中心服务器还包括:消息服务模块,与所述消息数据库连接,用于通过调用Dubbo接口的方式,提供消息查询服务,所述消息查询服务用于...
【专利技术属性】
技术研发人员:周海静,
申请(专利权)人:中国银行股份有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。