CN111245872B - 一种顺序消息过滤分发平台和方法 - Google Patents
一种顺序消息过滤分发平台和方法 Download PDFInfo
- Publication number
- CN111245872B CN111245872B CN201811430561.XA CN201811430561A CN111245872B CN 111245872 B CN111245872 B CN 111245872B CN 201811430561 A CN201811430561 A CN 201811430561A CN 111245872 B CN111245872 B CN 111245872B
- Authority
- CN
- China
- Prior art keywords
- filtering
- message
- client
- distributing
- distribution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/2871—Implementation details of single intermediate entities
Abstract
本发明提供一种顺序消息过滤分发平台,通过消息上传入口顺序接收业务消息进行消息过滤分发处理,客户端向所述平台订阅相关消息信息;包括监控进程用于启动和监控其它进程;注册进程用于接收客户端发送的控制消息,按照消息类型发送给相应的过滤分发进程;复制分发进程用于从消息上传入口顺序接收业务消息,按照业务消息类型向能够处理该类型业务消息的过滤分发进程进行复制分发;过滤分发进程用于接收注册进程的控制消息,加载控制消息中的所有过滤规则,根据控制消息的内容确定过滤分发进程与客户端的订阅关系;同时用于接收复制分发进程发送的业务消息,根据与所述客户端的订阅关系执行过滤操作后,将符合过滤规则的业务消息分发给订阅的客户端。
Description
技术领域
本发明涉及消息中间件技术领域,尤其涉及一种顺序消息过滤分发的方法和系统。
背景技术
消息是应用程序交由消息队列传输的数据,实际应用中可以定义消息的内容并对消息进行广义的理解,比如:用户的各种类型的数据文件,某个应用程序向其他应用程序发出的处理请求等都可以作为消息。消息有两部分组成:消息描述符即消息头(MessageDiscription或Message Header)和消息体(Message Body),消息头描述消息的特征,如消息的数据类型、消息的优先级、消息ID、生命周期等,可根据实际应用确定这些属性中的一个或多个;消息体即用户数据部分,可承载具体的业务数据信息。
对于消息分发的方法,现有技术主要是基于队列和发布订阅方式,消息队列分发处理装置提供一种跨网络通信的特殊机制,参与通信的应用程序之间不需要建立私有的、专用的逻辑连接,它们只需要把数据组成消息,放入消息队列中,接收方从消息队列中取出消息达到通信的目的。
虽然现有消息队列分发处理装置具有种种的优势,但它应对完全顺序消息的处理时无法满足性能的要求,也就是说,消息队列在处理消息时采用一个处理器顺序处理,虽然保证了消息的顺序性,但如果需要在200个客户端、300条/秒甚至更大的数据量进行消息处理时,在保证消息顺序的前提下,由于消息队列顺序处理的机制,使得消息队列分发处理装置性能大大下降,处理消息的时间也会延长。
其次消息队列相关产品在基于内容的发布订阅方面也相对薄弱,尤其不能支持复杂规则的内容订阅,即不能实现基于消息内容的过滤分发。
因此如何在海量数据和客户端需求的情况下高效处理顺序消息,并可以实现基于消息内容的过滤分发成为亟待解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种顺序消息过滤分发的方法和系统,能够实现为多客户端并发过滤分发各自订阅的消息。
为实现上述目的,本发明的一个实施例提供一种顺序消息过滤分发平台,其特征在于,所述平台通过消息上传入口顺序接收业务消息进行消息过滤分发处理,客户端向所述平台订阅相关消息信息;所述平台包括:监控进程,注册进程,复制分发进程和过滤分发进程;其中监控进程,用于启动和监控其它进程,保证所监控进程正常工作;注册进程,用于接收客户端发送的控制消息,按照消息类型发送给相应的过滤分发进程;复制分发进程,用于从消息上传入口顺序接收业务消息,按照业务消息类型向能够处理该类型业务消息的过滤分发进程进行复制分发;过滤分发进程,用于接收注册进程的控制消息,加载控制消息中的所有过滤规则,根据控制消息的内容确定过滤分发进程与客户端的订阅关系;同时用于接收复制分发进程发送的业务消息,根据与所述客户端的订阅关系执行过滤操作后,将符合过滤规则的业务消息分发给订阅的客户端。
优选地,所述控制消息中具体包含客户端信息,消息头订阅信息,消息内容订阅信息和过滤规则信息。
优选地,过滤分发进程进一步包括:过滤预处理单元,用于将接收到的业务消息按照预先设置的预处理规则进行预处理;过滤处理单元,用于将过滤预处理单元预处理后的业务消息按照所述与过滤分发线程有订阅关系的客户端的过滤规则进行过滤处理;过滤后处理单元,用于将过滤处理单元处理过的业务消息按照预先设置的过滤后处理规则进行处理;数据缓存,用于保存过滤预处理、过滤处理及过滤后处理的数据。
优选地,所述过滤分发进程进一步包含多个过滤分发线程,过滤分发进程接收所述控制消息后,为过滤分发进程中的每个过滤分发线程加载控制消息中的所有过滤规则;所述过滤分发进程将与自己确定订阅关系的客户端分配给其包含的过滤分发线程,确定过滤分发线程与客户端的订阅关系。
优选地,所述平台根据负载均衡原则和过滤规则一致原则,为过滤分发线程分配客户端;所述负载均衡原则为按照每个过滤分发线程上已分配的客户端数量进行分配,优先分配给客户端数量最小的过滤分发线程;所述过滤规则一致原则为将订阅信息中含有相同过滤规则的客户端分配给一个过滤分发线程。
另外,本发明还提供一种顺序消息过滤分发的方法,包括步骤:
启动监控进程,监控进程再启动注册进程、过滤分发进程、复制分发进程;
预先配置每个过滤分发进程能够处理的消息类型集合,并将所述消息类型集合信息分别发送给注册进程和复制分发进程;
注册进程根据所述每个过滤分发进程能够处理的消息类型集合,将接收到客户端发送的控制消息转发给相应的过滤分发进程;
过滤分发进程加载所述接收的控制消息中所有过滤规则,根据控制消息的内容确定过滤分发进程与客户端的订阅关系;
复制分发进程将顺序接收的业务消息,按照业务消息类型向能够处理该类型业务消息的过滤分发进程进行复制分发;
过滤分发进程根据与所述客户端的订阅关系,对所述接收的业务消息执行已加载过滤规则中客户端订阅的过滤规则,将符合过滤规则的业务消息发送给已订阅的客户端。
进一步地,根据所述的方法,还包括:
所述客户端向注册进程发送预先定义消息形式的控制消息;
所述预先定义消息形式的控制消息具体包含客户端信息,消息头订阅信息、消息内容订阅信息及过滤规则信息。
进一步地,根据所述的方法,过滤分发进程加载所述接收到的控制消息中的所有过滤规则,根据控制消息的内容确定过滤分发进程与客户端的订阅关系的方法具体为:
所述过滤分发进程根据接收到控制消息中的过滤规则信息加载新设置的过滤规则和/或变更的过滤规则,
每个过滤分发进程根据其预先配置的消息类型集合,结合所述接收控制消息中的消息类型信息,确定客户端与过滤分发进程的订阅关系,且同一个客户端针对同一类型消息的过滤分发任务只分配给一个过滤分发进程。
进一步地,所述方法还包括,预先根据业务需求对所述过滤分发进程分别设置不同的业务处理流程,所述业务处理流程进一步包括:
过滤预处理步骤,将接收到的业务消息按照预先设置的预处理规则进行预处理;
过滤处理步骤,将过滤预处理后的业务消息按照所述与过滤分发线程有订阅关系的客户端的过滤规则进行过滤处理;
过滤后处理步骤,将过滤处理后的业务消息按照预先设置的过滤后处理规则进行处理;
保存过滤预处理、过滤处理及过滤后处理时的数据。
进一步地,根据所述的方法,所述设置的业务处理流程具体为消息相关性处理流程:
过滤预处理:
判断所述业务消息是原告警还是相关告警,若是原告警则将业务消息直接发送至过滤处理步骤;若是相关告警则根据与其对应的原告警名称在数据缓存中查找相应的客户端列表,将相关告警发送至相应的客户端;
过滤处理:
将所述接收到的原告警按照所述与过滤分发线程有订阅关系的客户端的过滤规则进行过滤处理,并将符合过滤规则的原告警发送给订阅该原告警的客户端;
过滤后处理:
将原告警名称和过滤处理后过滤分发线程分发的客户端列表发送给数据缓存。
进一步地,所述的方法中,
所述每个过滤分发进程可包含多个过滤分发线程,过滤分发进程接收所述规则设置消息后,为过滤分发进程中的每个过滤分发线程加载所述规则设置消息中的所有过滤规则;
所述过滤分发进程将与自己确定订阅关系的客户端分配给其包含的过滤分发线程,确定过滤分发线程与客户端的订阅关系。
进一步地,根据所述的方法,所述过滤分发进程将与自己确定订阅关系的客户端分配给其包含的过滤分发线程的方法具体为:
根据负载均衡和过滤规则一致原则,为过滤分发线程分配客户端;
所述负载均衡原则为按照每个过滤分发线程上已分配的客户端数量进行分配,优先分配给客户端数量最小的过滤分发线程;
所述过滤规则一致原则为将订阅信息中含有相同过滤规则的客户端分配给一个过滤分发线程。
进一步地,根据所述的方法,所述复制分发进程将顺序接收的业务消息,按照业务消息类型向能够处理该类型业务消息的过滤分发进程进行复制分发的方法具体为:
根据所述业务消息的消息头获得该业务消息类型;
根据所述预先配置每个过滤分发进程能够处理的消息类型集合,获知该过滤分发进程能够处理的业务消息类型;
将业务消息进行复制后,发送给所有能够处理该业务消息类型的过滤分发进程。
进一步地,根据所述的方法,所述过滤分发进程根据与所述客户端的订阅关系,对所述接收的业务消息执行已加载过滤规则中客户端订阅的过滤规则的方法具体为:
所述过滤分发进程中的过滤分发线程根据其与客户端的订阅关系,确定该客户端订阅的过滤规则,进而确定已加载所有过滤规则中生效的过滤规则;
所述过滤分发线程,执行所述生效的过滤规则对复制分发进程发送的业务消息进行过滤。
根据本发明所述的一种顺序消息过滤分发的方法有效的解决了现有技术中存在的不能高效处理顺序消息和不能实现基于消息内容的过滤分发的问题,本发明复制分发进程顺序接收了业务消息,保证了接收业务消息的顺序性,部署的多个过滤分发进程也顺序处理这些消息,因此对于客户端来说,接收到过滤后的消息是顺序的,但由于多个过滤分发进程的过滤处理是并发进行,因而大大提高了处理消息的效率;本发明涉及的多个过滤分发进程可分别部署在多台设备上,在方便系统灵活扩容的同时,也提供了较强大的运算能力,即提高了处理消息的效率,也满足大数据量的消息处理需求;基于消息头或基于内容的过滤规则被包含在控制消息中,由客户端根据自身需求编辑控制消息中的过滤规则,再通过过滤分发进程加载这些过滤规则,根据客户端订阅的过滤需求,将符合过滤规则的消息发送给客户端,从而准确实现基于内容过滤的消息分发;根据不同的业务处理需求,过滤分发线程可设置不同的处理流程,对需要过滤的消息进行预处理和过滤后处理,进一步解决了相关性消息的分发问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的一种顺序消息过滤分发平台示意图;
图2是本发明提供的一种顺序消息过滤分发方法的流程图;
图3是构建过滤分发进程内容示意图;
图4是构建控制消息内容示意图;
图5是本发明提供的实施例三的流程图;
图6是过滤分发进程工作示意图;
图7是过滤分发进程对业务消息进行处理的内部数据流向图;
图8是构建过滤处理器内容示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种顺序消息过滤分发平台,该平台如图1所示,平台通过消息上传入口B顺序接收业务消息进行消息过滤分发处理,客户端C向所述平台订阅相关消息信息;所述平台包括监控进程A、注册进程201、过滤分发进程203和复制分发进程202。各个部分的相应配置以及消息类型与过滤单元的关系都可以预置在内存中。参见图1中,该平台中注册进程负责将接收客户端发送的控制消息,按照消息类型发送给相应的过滤分发进程。过滤分发进程负责接收注册进程的控制消息,加载控制消息中所有过滤规则,根据控制消息的内容确定过滤分发进程与客户端的订阅关系;同时用于接收复制分发进程发送的业务消息,根据与所述客户端的订阅关系执行过滤操作后,将符合过滤规则的业务消息分发给订阅的客户端。复制分发进程负责从消息上传入口顺序接收业务消息,按照业务消息类型向能够处理该类型业务消息的过滤分发进程进行复制分发。
如图1所示,在本发明实施例一提供的顺序消息过滤分发的平台中:
A监控进程:用于启动其它进程,通过心跳模块的超时检测功能对平台其它进程的工作情况进行监控,处理进程异常和恢复进程,保证各进程正常工作。所述心跳模块根据预置的超时检测间隔时间判断进程是否正常工作。
201注册进程:注册进程接收客户端发送的控制消息,按照消息类型发送给相应的过滤分发进程。
注册进程主要负责客户端向过滤分发进程进行注册,其注册的方式即接收客户端发送的控制消息后转发给相应的过滤分发进程,过滤分发进程接收到了客户端的控制消息,将其解析保存,即完成了客户端向过滤分发进程的注册,从而建立了客户端和相应过滤分发进程的对应关系,过滤分发进程根据确定的对应关系,按照客户端的需求过滤消息,为客户端提供相应的服务。
202复制分发进程:复制分发进程从消息上传入口顺序接收业务消息,按照业务消息类型向能够处理该类型业务消息的过滤分发进程进行复制分发。
复制分发进程的主要职责是从消息上传入口接收业务消息,将接收到的业务消息进行复制,发送给能处理该类型业务消息的过滤分发进程。
203过滤分发进程:过滤分发进程接收注册进程发送来的控制消息,加载控制消息中的所有过滤规则,根据控制消息的内容确定过滤分发进程与客户端的订阅关系;同时接收复制分发进程发送的业务消息,根据与所述客户端的订阅关系执行过滤操作后,将符合过滤规则的业务消息分发给订阅的客户端。
在部署过滤分发进程时,需要预先配置每个过滤分发进程能够处理的消息类型集合,再将消息类型集合分别发送给注册进程和复制分发进程,这样,作为注册进程为客户端建立对应关系和复制分发进程分发业务消息提供依据。按照图3中示出的内容配置过滤分发进程,下文中有详细说明,不再赘述。
控制消息中包含客户端信息,消息头订阅信息,消息内容订阅信息和过滤规则信息,其中客户端信息包含客户端的属性信息,消息头订阅信息包括基于消息头订阅的属性信息,消息内容订阅信息包括基于消息内容订阅的信息,过滤规则信息包含设置过滤规则和变更过滤规则的信息。
过滤规则有两方面的来源:
1、可通过系统的高级别用户通过客户端向注册进程发送规则设置消息,过滤分发进程接收注册进程发送的规则设置消息,获得规则
2、可通过客户端根据自身的过滤需求向注册进程发送规则变更消息,过滤分发进程接收规则变更消息,获得规则。
为了进一步提高顺序消息过滤分发平台的工作效率,提出优选的结构,过滤分发进程203可进一步包含多个过滤分发线程2031至203N,过滤分发进程接收所述规则设置消息后,为过滤分发进程中的每个过滤分发线程加载规则设置消息中的所有过滤规则;
所述过滤分发进程将与自己确定订阅关系的客户端分配给其包含的过滤分发线程,确定过滤分发线程与客户端的订阅关系。
由于每一个过滤分发线程都可以为与自己确定订阅关系的客户端工作,多个过滤分发线程就能更好地实现消息的并行处理,进一步提高了工作效率。
优选的,为了满足不同客户端的不同业务过滤需求,提出了改进的结构,为每一个过滤分发线程设定过滤预处理单元、过滤处理单元、过滤后处理单元及缓存单元。根据不同客户端的过滤规则对消息进行过滤预处理、过滤处理和过滤后处理。为不同客户端的多样化过滤需求提供了精细方便的解决方案。
每一个过滤分发线程203N进一步包括:
I过滤预处理单元,用于将接收到的业务消息按照预先设置的预处理规则进行预处理;
II过滤处理单元,用于将过滤预处理单元预处理后的业务消息按照所述与过滤分发线程有订阅关系的客户端的过滤规则进行过滤处理;
III过滤后处理单元,用于将过滤处理单元处理过的业务消息按照预先设置的过滤后处理规则进行处理;
IV数据缓存,用于保存过滤预处理、过滤处理及过滤后处理的数据。
以业务处理流程具体为消息相关性处理流程为例:
过滤预处理:
判断所述业务消息是原告警还是相关告警,若是原告警则将业务消息直接发送至过滤处理步骤;若是相关告警则根据与其对应的原告警名称在数据缓存中查找相应的客户端列表,将相关告警发送至相应的客户端;
过滤处理:
将所述接收到的原告警按照所述与过滤分发线程有订阅关系的客户端的过滤规则进行过滤处理,并将符合过滤规则的原告警发送给订阅该原告警的客户端;
过滤后处理:
将原告警名称和过滤处理后过滤分发线程分发的客户端列表发送给数据缓存。
依次类推,可以将设置的业务流程进行扩展,以适应不同客户端不同的订阅需求。完成类似于告警相关性、派单情况查询、消息数据统计等多种订阅需求。
由此可见,本发明所提供的顺序消息过滤分发平台由复制分发进程将接收到的每一条业务消息都复制分发至能够处理该消息的过滤分发进程,并由过滤分发进程分别执行各自的过滤规则,然后根据匹配的规则将业务消息分发至订阅了符合该规则的客户端。这样从单个客户端角度来看,所接收到的由过滤分发进程分发的业务消息是顺序接收的;而由于每个过滤分发进程之间是可以并行处理各自所分配的过滤分发任务的,所以从多个客户端的角度看,客户端之间的业务消息的分发处理就是并发的。由此可以大大提高消息的处理能力和客户端的感知速度,并使客户端之间实现了平等。
需要说明的是,当客户端仅仅按照消息类型进行订阅时,客户端在订阅该类型的消息时,只需要将其订阅的规则置为空即可,这样过滤分发进程会将该类型的消息全部分发至客户端。在进行系统部署时,可以根据实际情况为系统部署多个过滤分发进程,而不部署过滤分发线程,在这种情况下,将由过滤分发进程完成规则加载,执行过滤规则并发送过滤后消息的任务。过滤分发线程的引入,可以提高平台的工作效率,更好利用平台资源,在实际情况下可酌情进行部署。
以下实施例二详细说明一种顺序消息过滤分发方法的具体实现。
如图2所示的流程图,本例中的顺序消息过滤分发的方法包括如下步骤:
步骤S300:启动监控进程,监控进程再启动注册进程、过滤分发进程、复制分发进程;
正常启动流程:先启动监控进程,再通过监控进程启动其它三个进程,这三个进程将会从启动参数中得到一个监控进程分配的唯一ID,这个ID在进程读写时均会用到,进程启动后会在合适的时候往共享区写入配置信息、心跳信息和进程异常退出后恢复所需要的其它信息。
监控进程异常启动流程:如果异常退出,由操作系统定时器进行重启。
其它进程异常启动流程:如果监控进程检测到其它进程异常退出,监控进程会将对应进程重新启动,进程启动时需要恢复的数据将会通过进程唯一ID(作为启动参数传入)从共享区里获取。
心跳超时检测流程:根据心跳的序列号和检测间隔时间进行判断。
步骤S301:预先配置每个过滤分发进程能够处理的消息类型集合,并将所述消息类型集合信息分别发送给注册进程和复制分发进程。
每个过滤分发进程预先根据消息头进行相关的配置,从而配置该过滤分发进程能够处理的消息类型,当过滤分发进程启动后向复制分发进程进行注册,以通知过滤分发进程能够过滤分发的消息类型。
例如,每个过滤分发进程可以根据如图3中示出的配置内容进行配置,其中,一个过滤分发进程可以过滤分发的消息类型可以有多个,这些消息类型构成了一个消息类型集合(messageTypes),该消息类型集合由多个消息类型(messageType)组成。在一个消息类型集合中,多个messageType之间在过滤分发进程中取“或(or)”的关系。以下进一步详细说明图3中的各个字段所代表的含义。
每个messageType中包含Name、ObjectMapping和Property集合。
其中,Name字段是messageType的唯一标识,其类型可以是String;
ObjectMapping字段是该类型消息解析所适用的映射关系文件,其类型可以是String;
Property(属性)集合中,由多个property(属性)组成,多个property之间在消息头订阅中取“与(and)”关系,Property集合字段的类型可以是Property。优选地,当Property集合中为空时,表示消息类型集合中不满足其他messageType配置的为该Property集合字段所对应的messageType。
进一步地,对于每个属性(property)中又包括如下几个字段:
Name,为该property的属性标识字段,Name字段类型可以是String;
ValueType,为属性值的类型字段,例如这些属性值的类型可以为int、long、String、Date等,本ValueType字段的类型可以为String;
Value,为属性值字段,多值可以使用逗号“,”分隔,通配符“*”可以表示任意值,当属性值类型为string时支持正则表达式,本Value字段的类型可以为String;
ValueFormat,用于定义Value的格式的字段,例如如果Value类型为Date,则格式可指定为YYYY-MM-dd HH:mm:ss,ValueFormat字段的类型可以为String。
以下列举一个基于上述图3中阐释的配置内容对某个过滤分发进程进行配置的样例,在样例中,被配置的过滤分发进程能够过滤分发包括无线1406和1409等类型的消息。
表1:
步骤302:注册进程根据所述每个过滤分发进程能够处理的消息类型集合,将接收到客户端发送的控制消息转发给相应的过滤分发进程。
为了使注册进程更好的接收客户端的控制消息,可以预先定义控制消息的消息形式。
因此客户端向注册进程发送预先定义消息形式的控制消息。
所述控制消息中具体包含以下信息客户端信息clientInfo,消息头订阅信息subscribe2MessageHeader,消息内容订阅信息subscribe2MessageContent,消息内容订阅信息中又包含过滤规则信息。
控制信息中包含有消息类型,因此注册进程可以根据消息类型将这条控制信息转发给能处理这种消息类型的过滤分发进程。
例如,每个客户端可以采用如图4示出的描述内容构建控制消息。
客户端信息clientInfo具体包括如下字段:ClientId、ClientName、ClientType、ClientStatus和Properties。
其中,客户端信息clientInfo的各字段的名称、类型、以及各字段含义可以采用下表示出的内容。
消息头订阅信息subscribe2MessageHeader由消息头MessageHeader列表组成,每个MessageHeader由属性property组成,属于同一个MessageHeader的所有property之间取“与(and)”操作。同一个消息头订阅信息中的多个MessageHeader之间取“或(or)”操作。
这里的Properties字段中的每个property中又进一步划分为如下字段:Name、ValueType、Value、ValueFormat。每个字段的名称、类型、以及各字段含义可以采用下表示出的内容:名称、类型、以及各字段含义可以采用下表示出的内容:
消息内容订阅信息subscribe2MessageContent中包括由多个消息内容订阅规则messageContentRule组成的列表,messageContentRule之间取“或(or)”操作。
messageContentRule中的各个字段的名称、类型和其含义可以参见下表:
需要说明的是,作为订阅特定内容消息的客户端,其只有选择过滤规则的权限,没有设定规则详细内容的权限。例如,客户端可以选择第1号规则,但不可以修改第1号规则的详细内容。
本发明实施例提供的方法也支持只指定订阅消息的类型、但未指定具体什么内容的客户端的消息分发,这种情况往往是客户端要泛泛地接收该类型的所有消息,并不想指定任何订阅的规则。为了实现这种客户端的订阅消息分发,客户端向注册进程发送的注册订阅消息中的消息内容订阅信息中,可以将订阅的规则置为空。
步骤303:过滤分发进程加载所述接收的控制消息中的所有过滤规则,根据控制消息的内容确定过滤分发进程与客户端的订阅关系。
控制消息中携带的过滤规则信息被加载到与其对应的过滤分发进程中,过滤分发进程就可以根据过滤规则信息,获得该客户端对于此类消息类型对应过滤要求,确定了过滤分发进程和客户端的订阅关系。
同理如果订阅的客户端在发送的控制消息中,过滤规则信息为空,则视为向该客户端发送符合其订阅的消息类型的消息,对消息内容本身不做过滤。
步骤304:复制分发进程将顺序接收的业务消息,按照业务消息类型向能够处理该类型业务消息的过滤分发进程进行复制分发。
在步骤301中复制分发进程获知的每个过滤分发进程能够处理的消息类型,复制分发进程将业务消息入口接收到的业务消息,根据其消息类型,向能够过滤分发该类型的过滤分发进程复制并分发该消息。
步骤305:过滤分发进程根据与所述客户端的订阅关系,对所述接收的业务消息执行已加载过滤规则中客户端订阅的过滤规则,将符合过滤规则的业务消息发送给已订阅的客户端。
为了更详细地说明本发明所述的方法,基于实施例二给出实施例三,说明实施例二中各步骤的优选实现方法,如图5所示。
步骤S400:启动监控进程,监控进程再启动注册进程、过滤分发进程、复制分发进程;
步骤S401:预先配置每个过滤分发进程能够处理的消息类型集合,并将所述消息类型集合信息分别发送给注册进程和复制分发进程。
步骤402:客户端向注册进程发送预先定义消息形式的控制消息。
所述预先定义消息形式的控制消息具体包含客户端信息,消息头订阅信息、消息内容订阅信息及过滤规则信息。
预先定义的控制消息形式,在上文中已有描述,不再赘述。
步骤403:注册进程根据所述每个过滤分发进程能够处理的消息类型集合,将接收到客户端发送的控制消息转发给相应的过滤分发进程。
步骤404:过滤分发进程加载接收的控制消息中新设置的过滤规则和/或变更的过滤规则。
加载的过滤规则可以是客户端新设置的过滤规则,但客户端对消息有了新的过滤需求时,也可以向注册进程发送变更过滤规则的控制消息,在上文中提到,控制消息中包含有过滤规则信息的messageContentRule表,如果需要规则变更规则,在此表中填写变更后的规则内容即可。
步骤405:过滤分发进程根据其预先配置的消息类型集合,结合接收控制消息中包含的消息类型信息,确定客户端与过滤分发进程的订阅关系。
且同一个客户端针对同一类型消息的过滤分发任务只分配给一个过滤分发进程。
步骤406:复制分发进程将顺序接收的业务消息,按照业务消息类型向能够处理该类型业务消息的过滤分发进程进行复制分发;
步骤407:过滤分发进程根据与所述客户端的订阅关系,对所述接收的业务消息执行已加载过滤规则中客户端订阅的过滤规则,将符合过滤规则的业务消息发送给已订阅的客户端。
过滤分发进程中的过滤分发线程根据其与客户端的订阅关系,确定该客户端订阅的过滤规则,进而确定已加载所有过滤规则中生效的过滤规则。由于每个过滤分发线程中包含有多个客户端的过滤任务,因此每个过滤分发线程中包含有多条过滤规则,在接收到业务消息后,过滤分发线程会对该业务消息进行判别,根据消息类型查找其使用的过滤规则,使这些过滤规则生效后,执行这些生效的过滤规则,对复制分发进程发送的业务消息进行过滤。
需要说明的是,在实施技术方案时,如果仅部署了多个过滤分发进程,而没有为每个过滤分发进程部署过滤分发线程,则过滤分发进程加载过滤规则,对接收到的业务消息进行判别,根据消息类型查找其使用的过滤规则,是这些过滤规则生效后,执行生效的过滤规则,完成过滤任务。
优选的,由于每个过滤分发进程可以包含多个过滤分发线程,所以在步骤404中,过滤分发进程加载过滤规则后,进一步包括:
步骤4041:为所包含的过滤分发线程加载所有过滤规则;
需要说明的是,本发明从根本上是要实现客户端按照信息的主题或者内容进行订阅,即所称的规则,因此最终决定业务消息发送至哪个用户,还是要对业务消息本身执行基于过滤规则的过滤,根据过滤的结果,判断该业务消息到底满足那条或者那几条规则,然后将其发送至订阅了满足这些规则的消息的客户端。
例如,过滤分发进程1能够过滤分发类型为告警的消息,过滤分发进程1在运行时记载了与告警信息相关的所有过滤规则,假设其中第1号过滤规则为“主题中包含‘服务器’关键词”,第2号过滤规则为“消息内容中包含‘掉电’关键词”。而客户端1订阅了与服务器有关的告警消息,客户端2订阅了与掉电有关的告警消息,则由于客户端1和2所订阅的消息的类型都为告警消息,所以过滤分发进程1都能够为其进行过滤分发。假设实际中,注册进程就是将客户端1和2所订阅的两种告警信息的过滤分发任务都分配给了过滤分发进程1。
在实际运行中如果复制分发进程从业务消息入口接收到一条有关服务器掉电的告警消息时,至少会将该消息复制分发至过滤分发进程1中。过滤分发进程1将该业务消息分别执行基于上述两条预先加载的过滤规则的过滤,判断出该业务消息既满足第1条过滤规则,也满足第2条过滤规则。则过滤分发进程1会将该业务消息复制分发至订阅了符合第1条过滤规则的消息的客户端1,还会将该业务消息复制分发至订阅了符合第2条过滤规则的消息的客户端2。
如果客户端在注册订阅消息中将订阅的规则置为空,而仅仅指定订阅消息的类型,则过滤分发进程在对该类型的消息进行规则过滤后,无论是匹配了什么规则,设置什么规则都不匹配,都会视为该消息符合该客户端所订阅的规则,进而将该类型的消息分发至该客户端中,由此只要是该类型的消息都会被分发至该客户端中。
步骤4042:过滤分发进程将与自己确定订阅关系的客户端分配给其包含的过滤分发线程;
步骤4043:根据负载均衡和过滤规则一致原则,为过滤分发线程分配客户端,确定过滤分发线程与客户端的订阅关系。
所述负载均衡原则为按照每个过滤分发线程上已分配的客户端数量进行分配,优先分配给客户端数量最小的过滤分发线程。
正如前文所述,每个过滤分发进程的配置信息中都可以指定该过滤分发进程能够过滤分发的多个不同类型的消息;此外,针对同一类型的消息,根据不同的过滤规则,也可以有不同的过滤分发进程能够进行过滤分发。
但是为了防止同一个客户端所订阅的同一消息被两个能够支持该消息过滤分发处理的过滤分发进程两次重复地分发给客户端,从而造成消息接收重复的问题,要求在针对特定的客户端所订阅的每种类型的消息,只有一个过滤分发进程为该客户端过滤分发该类型的消息,即同一个客户端针对同一类型消息的过滤分发任务只能分配给一个过滤分发进程。
例如,图6为多个过滤分发进程工作示意图,假设经过图6中的过滤分发进程1和过滤分发进程4都能够过滤分发1406类型的消息,并且客户端4订阅了该1406类型的消息,那么注册进程会从所有过滤分发进程的配置信息中获取到有两个过滤分发进程能够过滤分发该1406类型的消息,则会将为客户端4过滤分发1406类型消息的任务分配给过滤分发进程1和过滤分发进程4中的一个过滤分发进程。
上述为每个过滤分发进程分配任务的分配策略可以采用负载均衡的思想。具体地,注册进程在向各个过滤分发进程分配过滤分发任务时,同一个客户端针对同一类型消息的过滤分发任务只能分配给一个过滤分发进程具体实现为:将客户端针对同一类型的消息的过滤分发任务分配给所有过滤分发进程中负载最小的过滤分发进程,这里负载最小的过滤分发进程是指在分配任务时已经分配的客户端最少的过滤分发进程。
例如,假设经过配置,图6中的过滤分发进程1和过滤分发进程4都能够过滤分发1406类型的消息,并且客户端4订阅了该1406类型的消息,那么注册进程在对过滤分发客户端4所订阅的1406类型消息的过滤分发进程时,会查看当前这两个过滤分发进程各自已经挂载的客户端数量,即负责过滤分发消息至客户端数量,假设过滤分发进程1已经分配用于过滤分发相应消息至客户端1和2,过滤分发进程2已经分配用于过滤分发相应消息至客户端3,那么注册进程会选择过滤分发进程2为客户端4过滤分发1406类型的消息,以此达到负载均衡。
所述过滤规则一致原则为将订阅信息中含有相同过滤规则的客户端分配给一个过滤分发线程。
为了节省资源,特设定了过滤规则一致原则,避免多个过滤分发线程进行同样的过滤工作,因此将含有相同过滤规则的客户端分配给同一个过滤分发线程。
需要说明的是,过滤分发线程是过滤分发进程下的分支,在技术方案的实际实施过程中,如果仅部署了多个过滤分发进程,而没有为每个过滤分发进程部署多个过滤分发线程,那么客户端与过滤分发进程间的分配,也可遵循复杂均衡原则和过滤规则一致原则。
优选的,在步骤406中,复制分发进程将顺序接收的业务消息进行复制分发的方法进一步包括:
步骤4061:根据所述业务消息的消息头获得该业务消息类型。
现有技术中所应用的消息,都含有消息头,而消息头中均包含该业务消息的消息类型。
步骤4062:根据所述预先配置每个过滤分发进程能够处理的消息类型集合获知该过滤分发进程能够处理的业务消息类型;
步骤4063:将业务消息进行复制后,发送给所有能够处理该业务消息类型的过滤分发进程。
为了灵活地为客户端提供订阅服务,本发明提供优选的方法,为过滤分发进程或线程预先设置业务处理流程。(当为过滤分发进程部署了过滤分发线程时,则在过滤分发线程上设置业务处理流程,当仅部署了过滤分发进程时,则在过滤分发进程上直接设置业务处理流程即可。)
预先根据业务需求对过滤分发进程(线程)设置不同的业务处理流程,业务处理流程进一步包括:
过滤预处理步骤,将接收到的业务消息按照预先设置的预处理规则进行预处理;
过滤处理步骤,将过滤预处理后的业务消息按照所述与过滤分发进程(线程)有订阅关系的客户端的过滤规则进行过滤处理;
过滤后处理步骤,将过滤处理后的业务消息按照预先设置的过滤后处理规则进行处理;
保存过滤预处理、过滤处理及过滤后处理时的数据。
设置了业务处理流程,就可以按照设定好的流程处理特定的业务消息,为客户端的订阅提供自由且有针对性的服务。
例如,根据客户端对消息的相关性的过滤要求,为一过滤分发进程(线程)设置消息相关性处理流程:
过滤预处理:
判断接收业务消息是原告警还是相关告警,若是原告警则将业务消息直接发送至过滤处理步骤;若是相关告警则根据与其对应的原告警名称在数据缓存中查找相应的客户端列表,将相关告警发送至相应的客户端;
过滤处理:
将所述接收到的原告警按照所述与过滤分发线程有订阅关系的客户端的过滤规则进行过滤处理,并将符合过滤规则的原告警发送给订阅该原告警的客户端;
过滤后处理:
将原告警名称和过滤处理后过滤分发线程分发的客户端列表发送给数据缓存。
通过这样业务处理步骤,就完成了客户端对于相关性消息的订阅,同样可以将业务处理流程扩展,根据不同的业务需求设置不同的业务流程以满足更多客户端的订阅需求。
需要说明的是方法中涉及的过滤规则、预先配置的信息及客户端信息,均保存在内存中,其中过滤规则在进程结束时释放。
以下详细说明在过滤分发进程内部进一步实现并行处理的方案。
图7示出了过滤分发进程内部对接收到的业务消息进行处理的内部数据流向图。在图7中,过滤分发进程对业务消息的处理又被划分成消息接收、消息过滤和消息发送三部分。在消息过滤部分中是由多个过滤处理器单元并行处理的。
在图7中,一个过滤分发进程的过滤处理由多个过滤处理器执行,每个过滤处理器能够处理至少一种类型的消息的过滤分发,这些过滤处理器能够过滤分发的消息的类型集合就是这个过滤分发进程能够过滤分发的消息类型的集合。可以推知,为一个过滤分发进程所分配的为客户端过滤分发其订阅的消息的任务实际上要进一步分配给执行该进程的过滤处理器中,这就建立了过滤处理器和客户端之间的关联,或者说将客户端关联到过滤处理器上。
此外,进一步地,每个过滤处理器又由多个过滤处理器单元(filterProcessorUnit)组成。每个过滤处理器将其关联的客户端又进一步分配到内部的过滤处理器单元上。并且在一个过滤处理器中,一个客户端只能分配到一个过滤处理器单元上。每个过滤处理器用于完成与其分配的客户端所订阅的类型的消息的过滤分发。
以下详细说明图7中业务消息处理的三部分具体实现。
一、消息接收部分,
对于每个过滤分发进程来讲,其接收的复制分发进程复制分发的业务消息在时间上也会形成一个消息队列,在图7中称为实体消息队列。首先按照顺序对业务消息进行基于消息头的过滤,从而确定消息类型,这一过程也可以称为静态一级过滤。
然后,进行静态一级分发,即根据各个过滤处理器(filterProcessor)能够处理的消息的类型,将业务消息分发至能够处理该类型消息的过滤处理器中。
在实际中,在静态一级分发之前,还可以先对业务消息进行属性解析和属性转换,形成封装后的包(例如JavaBean),以供后续进行消息内容的过滤。
过滤处理器将其接收到的业务消息复制分发给其内部的每一个过滤处理器单元。
每个过滤处理器单元对其接收到的业务消息,执行基于过滤分发进程所加载的过滤规则的过滤,确定该业务消息所匹配的过滤规则。
过滤处理器单元根据业务消息所匹配的过滤规则,向与其关联的、并且订阅符合该匹配的规则的消息的客户端的分发该业务消息。
对于一个过滤处理线程中的过滤处理器集合可以采用如图8所示的描述方式进行配置。
其中过滤处理器(filterProcessor)的各个字段的名称、类型以及含义可以采用下表中的定义:
由此可见,每个过滤处理器能够处理的消息类型也是通过上述配置过程指定的。
需要说明的是,上述过程中过滤分发进程为执行该进程的过滤处理器分配过滤分发任务也可以采用复杂均衡原则。将当前需要分配的客户端过滤分发其订阅的消息的任务分配给当前负载最小的过滤处理器,这里的负载最小的过滤处理器是指已经分配的客户端最少的过滤处理器。
此外,还需要考虑一种重要的情况,当同一个客户端订阅了两种不同类型的消息,但是这两种类型的消息之间具有相关性,例如“告警”类型消息和“清除告警”类型消息,如果将同一客户端所订阅的这种具有相关性的消息的过滤分发任务分配给了不同的过滤处理器,可能会因为过滤处理器的处理能力差别或者两种类型的消息本身的处理量差别就很大,而出现下面的情况:后进入业务消息入口的告警清除类型消息由于过滤分发它的过滤处理单元处理得较快,却早于先进入业务消息入口的告警类型消息,先被分发至了同一客户端,这就造成了业务消息接收顺序的逻辑错误。为了避免这种逻辑上的错误,可以尽量使得具有相关性的多种类型消息都通过一个过滤处理器进行分发,因此在对各个过滤处理器进行配置的时候,应该将具有相关性的多种类型消息配置在一个过滤处理器中,使得该处理器能够处理这些具有相关性的类型的消息。这样,在过滤分发进程分配任务时,针对同一用户的订阅具有相关性的不同消息分发任务就会被分到同一个过滤处理器中。
本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (14)
1.一种顺序消息过滤分发平台,其特征在于,所述平台通过消息上传入口顺序接收业务消息进行消息过滤分发处理,客户端向所述平台订阅相关消息信息;所述平台包括:监控进程,注册进程,复制分发进程和过滤分发进程,其中:
监控进程,用于启动和监控其它进程,保证所监控进程正常工作;注册进程,用于接收客户端发送的控制消息,按照消息类型发送给相应的过滤分发进程;
复制分发进程,用于从消息上传入口顺序接收业务消息,按照业务消息类型向能够处理该类型业务消息的过滤分发进程进行复制分发;
过滤分发进程,用于接收注册进程的控制消息,加载控制消息中的所有过滤规则,根据控制消息的内容确定过滤分发进程与客户端的订阅关系;同时用于接收复制分发进程发送的业务消息,根据与所述客户端的订阅关系执行过滤操作后,将符合过滤规则的业务消息分发给订阅的客户端。
2.根据权利要求1所述的平台,其特征在于:
所述控制消息中具体包含客户端信息,消息头订阅信息,消息内容订阅信息和过滤规则信息。
3.根据权利要求2所述的平台,其特征在于,过滤分发进程进一步包括:
过滤预处理单元,用于将接收到的业务消息按照预先设置的预处理规则进行预处理;
过滤处理单元,用于将过滤预处理单元预处理后的业务消息按照与过滤分发进程有订阅关系的客户端的过滤规则进行过滤处理;
过滤后处理单元,用于将过滤处理单元处理过的业务消息按照预先设置的过滤后处理规则进行处理;
数据缓存,用于保存过滤预处理、过滤处理及过滤后处理的数据。
4.根据权利要求1-3之一所述的平台,其特征在于:
所述过滤分发进程进一步包含多个过滤分发线程,过滤分发进程接收所述控制消息后,为过滤分发进程中的每个过滤分发线程加载控制消息中的所有过滤规则;
所述过滤分发进程将与自己确定订阅关系的客户端分配给其包含的过滤分发线程,确定过滤分发线程与客户端的订阅关系。
5.根据权利要求4所述的平台,其特征在于:
根据负载均衡原则和过滤规则一致原则,为过滤分发线程分配客户端;
所述负载均衡原则为按照每个过滤分发线程上已分配的客户端数量进行分配,优先分配给客户端数量最小的过滤分发线程;
所述过滤规则一致原则为将订阅信息中含有相同过滤规则的客户端分配给一个过滤分发线程。
6.一种顺序消息过滤分发的方法,其特征在于,包括:
启动监控进程,监控进程再启动注册进程、过滤分发进程、复制分发进程;
预先配置每个过滤分发进程能够处理的消息类型集合,并将所述消息类型集合信息分别发送给注册进程和复制分发进程;
注册进程根据所述每个过滤分发进程能够处理的消息类型集合,将接收到客户端发送的控制消息转发给相应的过滤分发进程;
过滤分发进程加载所述接收的控制消息中所有过滤规则,根据控制消息的内容确定过滤分发进程与客户端的订阅关系;
复制分发进程将顺序接收的业务消息,按照业务消息类型向能够处理该类型业务消息的过滤分发进程进行复制分发;
过滤分发进程根据与所述客户端的订阅关系,对所述接收的业务消息执行已加载过滤规则中客户端订阅的过滤规则,将符合过滤规则的业务消息发送给已订阅的客户端。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
所述客户端向注册进程发送预先定义消息形式的控制消息;
所述预先定义消息形式的控制消息具体包含客户端信息,消息头订阅信息、消息内容订阅信息及过滤规则信息。
8.根据权利要求7所述的方法,其特征在于,过滤分发进程加载所述接收到的控制消息中的所有过滤规则,根据控制消息的内容确定过滤分发进程与客户端的订阅关系的方法具体为:
所述过滤分发进程根据接收到控制消息中的过滤规则信息加载新设置的过滤规则和/或变更的过滤规则,
每个过滤分发进程根据其预先配置的消息类型集合,结合所述接收控制消息中的消息类型信息,确定客户端与过滤分发进程的订阅关系,且同一个客户端针对同一类型消息的过滤分发任务只分配给一个过滤分发进程。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括,预先根据业务需求对所述过滤分发进程分别设置不同的业务处理流程,所述业务处理流程进一步包括:
过滤预处理步骤,将接收到的业务消息按照预先设置的预处理规则进行预处理;
过滤处理步骤,将过滤预处理后的业务消息按照与过滤分发进程有订阅关系的客户端的过滤规则进行过滤处理;
过滤后处理步骤,将过滤处理后的业务消息按照预先设置的过滤后处理规则进行处理;
保存过滤预处理、过滤处理及过滤后处理时的数据。
10.根据权利要求9所述的方法,其特征在于,所述设置的业务处理流程具体为消息相关性处理流程:
过滤预处理:
判断所述业务消息是原告警还是相关告警,若是原告警则将业务消息直接发送至过滤处理步骤;若是相关告警则根据与其对应的原告警名称在数据缓存中查找相应的客户端列表,将相关告警发送至相应的客户端;
过滤处理:
将所述接收到的原告警按照所述与过滤分发线程有订阅关系的客户端的过滤规则进行过滤处理,并将符合过滤规则的原告警发送给订阅该原告警的客户端;
过滤后处理:
将原告警名称和过滤处理后过滤分发线程分发的客户端列表发送给数据缓存。
11.根据权利要求8-10之一所述的方法,其特征在于:
所述每个过滤分发进程可包含多个过滤分发线程,过滤分发进程接收所述规则设置消息后,为过滤分发进程中的每个过滤分发线程加载所述规则设置消息中的所有过滤规则;
所述过滤分发进程将与自己确定订阅关系的客户端分配给其包含的过滤分发线程,确定过滤分发线程与客户端的订阅关系。
12.根据权利要求11所述的方法,其特征在于,所述过滤分发进程将与自己确定订阅关系的客户端分配给其包含的过滤分发线程的方法具体为:
根据负载均衡和过滤规则一致原则,为过滤分发线程分配客户端;
所述负载均衡原则为按照每个过滤分发线程上已分配的客户端数量进行分配,优先分配给客户端数量最小的过滤分发线程;
所述过滤规则一致原则为将订阅信息中含有相同过滤规则的客户端分配给一个过滤分发线程。
13.根据权利要求12所述的方法,其特征在于,所述复制分发进程将顺序接收的业务消息,按照业务消息类型向能够处理该类型业务消息的过滤分发进程进行复制分发的方法具体为:
根据所述业务消息的消息头获得该业务消息类型;
根据所述预先配置每个过滤分发进程能够处理的消息类型集合,获知该过滤分发进程能够处理的业务消息类型;
将业务消息进行复制后,发送给所有能够处理该业务消息类型的过滤分发进程。
14.根据权利要求13所述的方法,其特征在于,所述过滤分发进程根据与所述客户端的订阅关系,对所述接收的业务消息执行已加载过滤规则中客户端订阅的过滤规则的方法具体为:
所述过滤分发进程中的过滤分发线程根据其与客户端的订阅关系,确定该客户端订阅的过滤规则,进而确定已加载所有过滤规则中生效的过滤规则;
所述过滤分发线程,执行所述生效的过滤规则对复制分发进程发送的业务消息进行过滤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811430561.XA CN111245872B (zh) | 2018-11-28 | 2018-11-28 | 一种顺序消息过滤分发平台和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811430561.XA CN111245872B (zh) | 2018-11-28 | 2018-11-28 | 一种顺序消息过滤分发平台和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111245872A CN111245872A (zh) | 2020-06-05 |
CN111245872B true CN111245872B (zh) | 2023-10-13 |
Family
ID=70870118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811430561.XA Active CN111245872B (zh) | 2018-11-28 | 2018-11-28 | 一种顺序消息过滤分发平台和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111245872B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116662040B (zh) * | 2023-07-28 | 2023-09-29 | 百家云集团有限公司 | 一种消息的分发方法、装置、电子设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11110401A (ja) * | 1997-09-30 | 1999-04-23 | Nippon Telegr & Teleph Corp <Ntt> | 放送型配信フィルタリング方法及びシステム及び放送型配信フィルタリングプログラムを格納した記憶媒体 |
JP2000076298A (ja) * | 1998-09-03 | 2000-03-14 | Hitachi Ltd | 情報フィルタリング・配布方法および装置 |
WO2007107727A2 (en) * | 2006-03-17 | 2007-09-27 | Broca Communications Limited | Method and system for message distribution management |
CN101540645A (zh) * | 2008-03-21 | 2009-09-23 | 华为技术有限公司 | 动态内容分发方法和装置 |
CN102136924A (zh) * | 2010-01-27 | 2011-07-27 | 新奥特(北京)视频技术有限公司 | 一种告警信息的过滤分发处理方法和一种服务器 |
CN103176795A (zh) * | 2013-02-04 | 2013-06-26 | 中国电子科技集团公司第二十八研究所 | 一种基于插件技术在信息分发软件数据过滤中的应用方法 |
CN104243611A (zh) * | 2014-09-30 | 2014-12-24 | 浪潮软件股份有限公司 | 一种基于分发思想的消息服务中间件系统 |
CN105338086A (zh) * | 2015-11-04 | 2016-02-17 | 浪潮软件股份有限公司 | 一种分布式的消息转发方法 |
CN108270662A (zh) * | 2017-12-26 | 2018-07-10 | 微梦创科网络科技(中国)有限公司 | 一种消息分发方法、装置及设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2361861A1 (en) * | 2001-11-13 | 2003-05-13 | Ibm Canada Limited-Ibm Canada Limitee | Wireless messaging services using publish/subscribe systems |
US7293038B2 (en) * | 2003-02-25 | 2007-11-06 | Bea Systems, Inc. | Systems and methods for client-side filtering of subscribed messages |
US9391789B2 (en) * | 2007-12-14 | 2016-07-12 | Qualcomm Incorporated | Method and system for multi-level distribution information cache management in a mobile environment |
US20180248977A1 (en) * | 2017-02-24 | 2018-08-30 | Satori Worldwide, Llc | Selective distribution of messages in a publish-subscribe system |
-
2018
- 2018-11-28 CN CN201811430561.XA patent/CN111245872B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11110401A (ja) * | 1997-09-30 | 1999-04-23 | Nippon Telegr & Teleph Corp <Ntt> | 放送型配信フィルタリング方法及びシステム及び放送型配信フィルタリングプログラムを格納した記憶媒体 |
JP2000076298A (ja) * | 1998-09-03 | 2000-03-14 | Hitachi Ltd | 情報フィルタリング・配布方法および装置 |
WO2007107727A2 (en) * | 2006-03-17 | 2007-09-27 | Broca Communications Limited | Method and system for message distribution management |
CN101540645A (zh) * | 2008-03-21 | 2009-09-23 | 华为技术有限公司 | 动态内容分发方法和装置 |
CN102136924A (zh) * | 2010-01-27 | 2011-07-27 | 新奥特(北京)视频技术有限公司 | 一种告警信息的过滤分发处理方法和一种服务器 |
CN103176795A (zh) * | 2013-02-04 | 2013-06-26 | 中国电子科技集团公司第二十八研究所 | 一种基于插件技术在信息分发软件数据过滤中的应用方法 |
CN104243611A (zh) * | 2014-09-30 | 2014-12-24 | 浪潮软件股份有限公司 | 一种基于分发思想的消息服务中间件系统 |
CN105338086A (zh) * | 2015-11-04 | 2016-02-17 | 浪潮软件股份有限公司 | 一种分布式的消息转发方法 |
CN108270662A (zh) * | 2017-12-26 | 2018-07-10 | 微梦创科网络科技(中国)有限公司 | 一种消息分发方法、装置及设备 |
Non-Patent Citations (1)
Title |
---|
姚刚 ; 邓江沙 ; .基于JMS的消息过滤改进算法.计算机技术与发展.2006,(第07期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111245872A (zh) | 2020-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20040215590A1 (en) | System for assigning and monitoring grid jobs on a computing grid | |
US20080155038A1 (en) | Method and apparatus for aggregating change subscriptions and change notifications | |
CN110633442A (zh) | 一种推送方法、装置及电子设备 | |
CN105357296A (zh) | 一种Docker云平台下弹性缓存系统 | |
CN106713391B (zh) | 一种session信息的共享方法和共享系统 | |
CN110191165B (zh) | 一种处理代码执行请求的方法及装置 | |
CN113312165B (zh) | 一种任务处理方法及装置 | |
CN111245872B (zh) | 一种顺序消息过滤分发平台和方法 | |
Schwan et al. | Autoflow: Autonomic information flows for critical information systems | |
CN112286757A (zh) | 数据同步的监控方法、装置、电子设备及存储介质 | |
Hummer et al. | Dynamic migration of processing elements for optimized query execution in event-based systems | |
CN107908730B (zh) | 一种下载数据的方法和装置 | |
US11368410B2 (en) | System and method for scaling analytics collection | |
CN112468310B (zh) | 流媒体集群节点管理方法、装置及存储介质 | |
CN114598659A (zh) | 规则库优化方法和装置 | |
CN116719623A (zh) | 作业调度方法、作业结果处理方法及其装置 | |
CN115102999B (zh) | DevOps系统、服务提供方法、存储介质和电子装置 | |
CN115065686A (zh) | 分布式负载均衡系统的配置方法、装置及系统 | |
DE202021004327U1 (de) | Autoskalierung externer Funktionsanforderungen | |
CN110209475B (zh) | 数据采集方法及装置 | |
CN113032477A (zh) | 基于gtid的长距离数据同步方法、装置及计算设备 | |
CN107330089B (zh) | 跨网络结构化数据收集系统 | |
CN113296968A (zh) | 地址列表更新方法、装置、介质及电子设备 | |
CN105808585A (zh) | 一种流式数据的处理方法和装置 | |
CN110046319A (zh) | 社交媒体信息采集方法、装置、系统、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |