一种顺序消息过滤分发平台和方法技术

技术编号:24418535 阅读:44 留言:0更新日期:2020-06-06 12:48
本发明专利技术提供一种顺序消息过滤分发平台,通过消息上传入口顺序接收业务消息进行消息过滤分发处理,客户端向所述平台订阅相关消息信息;包括监控进程用于启动和监控其它进程;注册进程用于接收客户端发送的控制消息,按照消息类型发送给相应的过滤分发进程;复制分发进程用于从消息上传入口顺序接收业务消息,按照业务消息类型向能够处理该类型业务消息的过滤分发进程进行复制分发;过滤分发进程用于接收注册进程的控制消息,加载控制消息中的所有过滤规则,根据控制消息的内容确定过滤分发进程与客户端的订阅关系;同时用于接收复制分发进程发送的业务消息,根据与所述客户端的订阅关系执行过滤操作后,将符合过滤规则的业务消息分发给订阅的客户端。

A platform and method for filtering and distributing sequential messages

【技术实现步骤摘要】
一种顺序消息过滤分发平台和方法
本专利技术涉及消息中间件
,尤其涉及一种顺序消息过滤分发的方法和系统。
技术介绍
消息是应用程序交由消息队列传输的数据,实际应用中可以定义消息的内容并对消息进行广义的理解,比如:用户的各种类型的数据文件,某个应用程序向其他应用程序发出的处理请求等都可以作为消息。消息有两部分组成:消息描述符即消息头(MessageDiscription或MessageHeader)和消息体(MessageBody),消息头描述消息的特征,如消息的数据类型、消息的优先级、消息ID、生命周期等,可根据实际应用确定这些属性中的一个或多个;消息体即用户数据部分,可承载具体的业务数据信息。对于消息分发的方法,现有技术主要是基于队列和发布订阅方式,消息队列分发处理装置提供一种跨网络通信的特殊机制,参与通信的应用程序之间不需要建立私有的、专用的逻辑连接,它们只需要把数据组成消息,放入消息队列中,接收方从消息队列中取出消息达到通信的目的。虽然现有消息队列分发处理装置具有种种的优势,但它应对完全顺序消息的处理时无法满足性能的要求,也就是说,消息队列在处理消息时采用一个处理器顺序处理,虽然保证了消息的顺序性,但如果需要在200个客户端、300条/秒甚至更大的数据量进行消息处理时,在保证消息顺序的前提下,由于消息队列顺序处理的机制,使得消息队列分发处理装置性能大大下降,处理消息的时间也会延长。其次消息队列相关产品在基于内容的发布订阅方面也相对薄弱,尤其不能支持复杂规则的内容订阅,即不能实现基于消息内容的过滤分发。因此如何在海量数据和客户端需求的情况下高效处理顺序消息,并可以实现基于消息内容的过滤分发成为亟待解决的问题。
技术实现思路
有鉴于此,本专利技术的目的在于提供一种顺序消息过滤分发的方法和系统,能够实现为多客户端并发过滤分发各自订阅的消息。为实现上述目的,本专利技术的一个实施例提供一种顺序消息过滤分发平台,其特征在于,所述平台通过消息上传入口顺序接收业务消息进行消息过滤分发处理,客户端向所述平台订阅相关消息信息;所述平台包括:监控进程,注册进程,复制分发进程和过滤分发进程;其中监控进程,用于启动和监控其它进程,保证所监控进程正常工作;注册进程,用于接收客户端发送的控制消息,按照消息类型发送给相应的过滤分发进程;复制分发进程,用于从消息上传入口顺序接收业务消息,按照业务消息类型向能够处理该类型业务消息的过滤分发进程进行复制分发;过滤分发进程,用于接收注册进程的控制消息,加载控制消息中的所有过滤规则,根据控制消息的内容确定过滤分发进程与客户端的订阅关系;同时用于接收复制分发进程发送的业务消息,根据与所述客户端的订阅关系执行过滤操作后,将符合过滤规则的业务消息分发给订阅的客户端。优选地,所述控制消息中具体包含客户端信息,消息头订阅信息,消息内容订阅信息和过滤规则信息。优选地,过滤分发进程进一步包括:过滤预处理单元,用于将接收到的业务消息按照预先设置的预处理规则进行预处理;过滤处理单元,用于将过滤预处理单元预处理后的业务消息按照所述与过滤分发线程有订阅关系的客户端的过滤规则进行过滤处理;过滤后处理单元,用于将过滤处理单元处理过的业务消息按照预先设置的过滤后处理规则进行处理;数据缓存,用于保存过滤预处理、过滤处理及过滤后处理的数据。优选地,所述过滤分发进程进一步包含多个过滤分发线程,过滤分发进程接收所述控制消息后,为过滤分发进程中的每个过滤分发线程加载控制消息中的所有过滤规则;所述过滤分发进程将与自己确定订阅关系的客户端分配给其包含的过滤分发线程,确定过滤分发线程与客户端的订阅关系。优选地,所述平台根据负载均衡原则和过滤规则一致原则,为过滤分发线程分配客户端;所述负载均衡原则为按照每个过滤分发线程上已分配的客户端数量进行分配,优先分配给客户端数量最小的过滤分发线程;所述过滤规则一致原则为将订阅信息中含有相同过滤规则的客户端分配给一个过滤分发线程。另外,本专利技术还提供一种顺序消息过滤分发的方法,包括步骤:启动监控进程,监控进程再启动注册进程、过滤分发进程、复制分发进程;预先配置每个过滤分发进程能够处理的消息类型集合,并将所述消息类型集合信息分别发送给注册进程和复制分发进程;注册进程根据所述每个过滤分发进程能够处理的消息类型集合,将接收到客户端发送的控制消息转发给相应的过滤分发进程;过滤分发进程加载所述接收的控制消息中所有过滤规则,根据控制消息的内容确定过滤分发进程与客户端的订阅关系;复制分发进程将顺序接收的业务消息,按照业务消息类型向能够处理该类型业务消息的过滤分发进程进行复制分发;过滤分发进程根据与所述客户端的订阅关系,对所述接收的业务消息执行已加载过滤规则中客户端订阅的过滤规则,将符合过滤规则的业务消息发送给已订阅的客户端。进一步地,根据所述的方法,还包括:所述客户端向注册进程发送预先定义消息形式的控制消息;所述预先定义消息形式的控制消息具体包含客户端信息,消息头订阅信息、消息内容订阅信息及过滤规则信息。进一步地,根据所述的方法,过滤分发进程加载所述接收到的控制消息中的所有过滤规则,根据控制消息的内容确定过滤分发进程与客户端的订阅关系的方法具体为:所述过滤分发进程根据接收到控制消息中的过滤规则信息加载新设置的过滤规则和/或变更的过滤规则,每个过滤分发进程根据其预先配置的消息类型集合,结合所述接收控制消息中的消息类型信息,确定客户端与过滤分发进程的订阅关系,且同一个客户端针对同一类型消息的过滤分发任务只分配给一个过滤分发进程。进一步地,所述方法还包括,预先根据业务需求对所述过滤分发进程分别设置不同的业务处理流程,所述业务处理流程进一步包括:过滤预处理步骤,将接收到的业务消息按照预先设置的预处理规则进行预处理;过滤处理步骤,将过滤预处理后的业务消息按照所述与过滤分发线程有订阅关系的客户端的过滤规则进行过滤处理;过滤后处理步骤,将过滤处理后的业务消息按照预先设置的过滤后处理规则进行处理;保存过滤预处理、过滤处理及过滤后处理时的数据。进一步地,根据所述的方法,所述设置的业务处理流程具体为消息相关性处理流程:过滤预处理:判断所述业务消息是原告警还是相关告警,若是原告警则将业务消息直接发送至过滤处理步骤;若是相关告警则根据与其对应的原告警名称在数据缓存中查找相应的客户端列表,将相关告警发送至相应的客户端;过滤处理:将所述接收到的原告警按照所述与过滤分发线程有订阅关系的客户端的过滤规则进行过滤处理,并将符合过滤规则的原告警发送给订阅该原告警的客户端;过滤后处理:将原告警名称和过滤处理后过滤分发线程分发的客户端列表发送给数据缓存。进一步地,所述的方法中,所述每个过滤分发进程可包含多个过滤分发线程,过滤分发进程接收所述规则设置消息后,为过滤分发进程中的每个过滤分发线程加载所述规则设置消息中的所有过本文档来自技高网
...

【技术保护点】
1.一种顺序消息过滤分发平台,其特征在于,所述平台通过消息上传入口顺序接收业务消息进行消息过滤分发处理,客户端向所述平台订阅相关消息信息;所述平台包括:监控进程,注册进程,复制分发进程和过滤分发进程,其中:/n监控进程,用于启动和监控其它进程,保证所监控进程正常工作;注册进程,用于接收客户端发送的控制消息,按照消息类型发送给相应的过滤分发进程;/n复制分发进程,用于从消息上传入口顺序接收业务消息,按照业务消息类型向能够处理该类型业务消息的过滤分发进程进行复制分发;/n过滤分发进程,用于接收注册进程的控制消息,加载控制消息中的所有过滤规则,根据控制消息的内容确定过滤分发进程与客户端的订阅关系;同时用于接收复制分发进程发送的业务消息,根据与所述客户端的订阅关系执行过滤操作后,将符合过滤规则的业务消息分发给订阅的客户端。/n

【技术特征摘要】
1.一种顺序消息过滤分发平台,其特征在于,所述平台通过消息上传入口顺序接收业务消息进行消息过滤分发处理,客户端向所述平台订阅相关消息信息;所述平台包括:监控进程,注册进程,复制分发进程和过滤分发进程,其中:
监控进程,用于启动和监控其它进程,保证所监控进程正常工作;注册进程,用于接收客户端发送的控制消息,按照消息类型发送给相应的过滤分发进程;
复制分发进程,用于从消息上传入口顺序接收业务消息,按照业务消息类型向能够处理该类型业务消息的过滤分发进程进行复制分发;
过滤分发进程,用于接收注册进程的控制消息,加载控制消息中的所有过滤规则,根据控制消息的内容确定过滤分发进程与客户端的订阅关系;同时用于接收复制分发进程发送的业务消息,根据与所述客户端的订阅关系执行过滤操作后,将符合过滤规则的业务消息分发给订阅的客户端。


2.根据权利要求1所示的平台,其特征在于:
所述控制消息中具体包含客户端信息,消息头订阅信息,消息内容订阅信息和过滤规则信息。


3.根据权利要求2所示的平台,其特征在于,过滤分发进程进一步包括:
过滤预处理单元,用于将接收到的业务消息按照预先设置的预处理规则进行预处理;
过滤处理单元,用于将过滤预处理单元预处理后的业务消息按照所述与过滤分发线程有订阅关系的客户端的过滤规则进行过滤处理;
过滤后处理单元,用于将过滤处理单元处理过的业务消息按照预先设置的过滤后处理规则进行处理;
数据缓存,用于保存过滤预处理、过滤处理及过滤后处理的数据。


4.根据权利要求1-3之一所述的平台,其特征在于:
所述过滤分发进程进一步包含多个过滤分发线程,过滤分发进程接收所述控制消息后,为过滤分发进程中的每个过滤分发线程加载控制消息中的所有过滤规则;
所述过滤分发进程将与自己确定订阅关系的客户端分配给其包含的过滤分发线程,确定过滤分发线程与客户端的订阅关系。


5.根据权利要求4所述的平台,其特征在于:
根据负载均衡原则和过滤规则一致原则,为过滤分发线程分配客户端;
所述负载均衡原则为按照每个过滤分发线程上已分配的客户端数量进行分配,优先分配给客户端数量最小的过滤分发线程;
所述过滤规则一致原则为将订阅信息中含有相同过滤规则的客户端分配给一个过滤分发线程。


6.一种顺序消息过滤分发的方法,其特征在于,包括:
启动监控进程,监控进程再启动注册进程、过滤分发进程、复制分发进程;
预先配置每个过滤分发进程能够处理的消息类型集合,并将所述消息类型集合信息分别发送给注册进程和复制分发进程;
注册进程根据所述每个过滤分发进程能够处理的消息类型集合,将接收到客户端发送的控制消息转发给相应的过滤分发进程;
过滤分发进程加载所述接收的控制消息中所有过滤规则,根据控制消息的内容确定过滤分发进程与客户端的订阅关系;
复制分发进程将顺序接收的业务消息,按照业务消息类型向能够处理该类型业务消息的过滤分发进程进行复制分发;
过滤分发进程根据与所述客户端的订阅关系,对所述接收的业务消息执行已加载过滤规则中客户端订阅的过滤规则,将符合过滤规则的业务消息发送给已订阅的客户端。


7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
所述客户端向注册进程发送预先定义消息形式的控制消息;
所述预先定义消息形式的控制消息具体包含客户端信息,消息头订阅信息、消息内容订阅信息及过滤规则信息。


8.根据权利要求7所述的方法,其特征在于,过滤分发...

【专利技术属性】
技术研发人员:高彦夫
申请(专利权)人:北京亿阳信通科技有限公司
类型:发明
国别省市:北京;11

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

1