一种基于通知调度中心的消息数据分发系统及其方法

文档序号:9352918阅读:207来源:国知局
一种基于通知调度中心的消息数据分发系统及其方法
【技术领域】
[0001] 本发明涉及消息通知分发技术领域,具体涉及一种基于通知调度中心的消息数据 分发系统及其方法。
【背景技术】
[0002] 在分布式系统中,时常需要通过内部网络进行系统单元间的数据同步或者消息数 据的通知;许多系统单元也会通过互联网,向外部系统发送消息数据。在类似的消息通信过 程中,如果遇到网络问题或者性能瓶颈,就有可能导致通信异常、失败的结果。
[0003] 由各种不定因素而导致系统通知不稳定的问题,是一个系统间通信场景下的普遍 性问题。

【发明内容】

[0004] 本发明所要解决的技术问题是提供一种基于通知调度中心的消息数据分发系统 及其方法,能够实现消息数据的统一调度和统一管理。
[0005] 本发明解决上述技术问题的技术方案如下:
[0006] -方面,本发明提供了一种基于通知调度中心的消息数据分发系统,所述系统包 括多个通知发起单元、与每一个通知发起单元对应的多个数据缓存、通知调度中心以及与 每一个通知发起单元对应的多个通知接收单元;
[0007] 每一个所述通知发起单元,用于接入对应的数据缓存,并将需要通知的消息数据 写入该数据缓存;
[0008] 所述通知调度中心包括:
[0009] 数据扫描模块,用于按照预定时间间隔扫描各个数据缓存中需要通知的消息数 据;
[0010] 数据分发模块,用于将扫描到的所述需要通知的消息数据分发给对应的通知接收 单元;
[0011] 每一个所述通知接收单元包括:
[0012] 数据接收模块,用用于接收所述通知调度中心分发的消息数据;
[0013] 接收状态反馈模块,用于向所述通知调度中心反馈其接收消息数据的接收状态。
[0014] 另一方面,本发明提供了一种基于通知调度中心的消息数据分发方法,所述方法 包括:
[0015] S1、每一个通知发起单元接入对应的数据缓存,并将需要通知的消息数据写入对 应的数据缓存;
[0016] S2、通知调度中心按照预定时间间隔扫描各个数据缓存中需要通知的消息数据并 将扫描的消息数据分发给对应的通知接收单元;
[0017] S3、每一个通知接收单元接收所述通知调度中心分发的消息数据,并向通知调度 中心反馈其接收消息数据的接收状态。
[0018] 本发明提供的一种基于通知调度中心的消息数据分发系统及其方法,各个通知发 起单元接入对应的数据缓存,并将需要通知的消息数据写入数据缓存中,通知调度中心定 时扫描各个数据缓存中需要通知的消息数据,并将消息数据分发给对应的通知接收单元, 通知接收单元接收通知调度中心分发的消息数据并反馈接收状态,本发明采用数据缓存作 为接入媒介,保证了消息数据分发的稳定性;各个通知发起单元与通知接收单元均通过通 知调度中心来统一调度和统一管理,实现了消息数据的统一分发;通知接收单元接收到通 知调度中心分发的消息数据后向通知调度中心反馈其接收状态(即是否接收消息数据成 功),能够实时了解消息数据通信的状态。
【附图说明】
[0019]图1为本发明实施例一的一种基于通知调度中心的消息数据分发系统示意图;
[0020] 图2为本发明实施例二的一种基于通知调度中心的消息数据分发方法流程图;
[0021] 图3为本发明实施例二中各个部分之间的交互示意图;
[0022] 图4为本发明实施例二中通知调度中心工作过程示意图。
【具体实施方式】
[0023] 以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并 非用于限定本发明的范围。
[0024] 实施例一、一种基于通知调度中心的消息数据分发系统。下面结合图1对本实施 例提供的系统图进行详细说明。
[0025] 参见图1,本实施例提供的系统包括多个通知发起单元10、与每一个通知发起单 元10对应的数据缓存20、一个通知调度中心30以及与每一个通知发起单元10对应的通知 接收单元40,其中,每一个数据缓存20包括通知状态更新模块201和数据锁定模块202,通 知调度中心30包括数据扫描模块301、数据过滤模块302、数据分发模块303和数据重发模 块304,每一个通知接收单元40包括数据接收模块401和接收状态反馈模块402。
[0026] 每一个通知发起单元10接入对应的数据缓存20,并将需要通知的消息数据写入 对应的数据缓存20中。
[0027] 通知调度中心20中的数据扫描模块201按照预定时间间隔扫描对应的数据缓存 20中需要通知的消息数据。
[0028] 数据过滤模块202主要用于根据可扩展的过滤条件对数据扫描模块301扫描获取 的需要通知的消息数据进行过滤,以筛选出符合通知条件的消息数据。
[0029] 数据缓存20中的通知状态更新模块201主要用于数据过滤模块202的过滤结果 更新数据缓存20中消息数据的通知状态为需要通知。
[0030] 数据锁定模块202主要用于将数据缓存20中通知状态为需要通知的消息数据锁 定,以避免下一次通知调度中心30对这些消息数据重复扫描。
[0031] 通知调度中心30中数据分发模块303主要用于将数据过滤模块302过滤后的符 合通知条件的消息数据分发给对应的通知接收单元40。
[0032] 通知接收单元40中的数据接收模块401主要用于接收通知调度中心30中数据分 发模块303分发的消息数据。
[0033] 接收状态反馈模块402主要用于向通知调度中心30反馈其接收消息数据的接收 状态。
[0034] 通知调度中心30中的数据重发模块304主要用于当通知接收单元40中的接收状 态反馈模块402反馈的接收状态为失败状态且该消息数据已发送的次数未达到预定次数 时,将该消息数据重发给对应的通知接收单元40。
[0035] 实施例二、一种基于通知调度中心的消息数据分发方法。下面结合图2-图4对本 实施例提供的方法进行详细描述。
[0036] 参见图2,S1、每一个通知发起单元接入对应的数据缓存,并将需要通知的消息数 据写入对应的数据缓存。
[0037] 具体的,多个通知发起单元可以构成一个通知发起集群,本实施例为通知发起集 群中的每一个通知发起单元配置一个数据缓存(可以为高速缓存或者数据库),本实施例 使用非关系型数据库mongodb作为数据缓存。各个通知发起单元接入对应的数据缓存,并 按照预先设定的统一的数据模型(也可以理解为统一的数据格式)将需要通知的消息数 据写入对应的数据缓存中,以便后续通知调度中心对扫描的数据缓存中的消息数据能够识 另IJ。其中,统一的数据模型由通知调度中心预先设定,比如,本实施例通知调度中心预先设 定的数据模型参见如下表1所示:
[0038]表1
[0039]
[0040] S2、通知调度中心按照预定时间间隔扫描各个数据缓存中需要通知的消息数据并 将扫描的消息数据分发给对应的通知接收单元。
[0041] 具体的,当各个通知发起单元向对应的数据缓存中写入需要通知的消息数据且这 些需要通知的消息数据达到预定的发送时间时,参见图4,通知调度中心扫描各个数据缓存 中的消息数据,并进一步对扫描获取的消息数据进行过滤。具体的扫描以及过滤过程为:通 知调度中心为每一个数据缓存分配一个扫描轮询池,用来管理对应的各个接入数据缓存的 扫描线程。按照预定时间间隔,通知调度中心将在与数据缓存对应扫描轮询池中启动一个 扫描线程,扫描线程接入对应的数据缓存,对数据缓存中的消息数据进行扫描;然后扫描线 程根据可扩展的过滤条件,比如,根据消息数据的时间字段判断消息数据是否在有效发送 时间内,或者消息数据的其它字段是否为有效,过滤掉扫描获取的数据缓存中的需要通知 的消息数据中无需通知的数据,以筛选出符合通知条件的消息数据。
[0042] 根据通知调度中心对扫描的消息数据的过滤结果,将对应的数据缓存中的满足通 知条件的消息数据的通知状态更新为需要通知状态,并将这些处于需要通知状态的消息数 据锁定,以免下一次通知调度中心对这些消息数据重复扫描。
[0043] 随后,通知调度中心将扫描的满足通知条件的消息数据按照预先设定的时间分发 给对应的通知接收单元。具体的分发过程为:为每一个扫描轮询池配置一个对应的通知线
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1