【技术实现步骤摘要】
一种顺序消息过滤分发平台和方法
本专利技术涉及消息中间件
,尤其涉及一种顺序消息过滤分发的方法和系统。
技术介绍
消息是应用程序交由消息队列传输的数据,实际应用中可以定义消息的内容并对消息进行广义的理解,比如:用户的各种类型的数据文件,某个应用程序向其他应用程序发出的处理请求等都可以作为消息。消息有两部分组成:消息描述符即消息头(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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。