一种分布式的实时消息过滤系统技术方案

技术编号:19327878 阅读:44 留言:0更新日期:2018-11-03 14:44
本发明专利技术公开了一种分布式的实时消息过滤系统,包括主服务器、备用服务器、zookeeper模块、数据库、Web模块、代理服务器和消费端;主服务器启动代理服务器上的常驻进程,常驻进程包括过滤器、资源管理器和监控器;所述主服务器注册信息到zookeeper模块的服务器心跳节点,同时注册心跳节点变化事件,备用服务器注册zookeeper模块的服务器心跳节点变化事件,当发现zookeeper模块的服务器心跳节点变化时,通过通知主备服务器的方式,主备服务器自动完成角色切换;所述数据库存储过滤元数据信息和过滤监控信息。本发明专利技术将过滤条件智能合并,自我调节过滤速率,可在活跃和等待进行状态切换,资源分配合理。

A distributed real-time message filtering system

The invention discloses a distributed real-time message filtering system, which comprises a master server, a standby server, a zookeeper module, a database, a Web module, a proxy server and a consumer end; the master server starts a resident process on the proxy server, and the resident process includes a filter, a resource manager and a monitor; and the master server starts a resident process on the proxy server. The server registers information to the server heartbeat node of the zookeeper module, and registers the heartbeat node change event at the same time. The standby server registers the server heartbeat node change event of the zookeeper module. When the server heartbeat node of the zookeeper module changes, by notifying the main server, the main server and the standby server own. Dynamic completion of role switching; the database stores filtering metadata information and filtering monitoring information. The invention intelligently merges filtering conditions, self-adjusts filtering rate, can switch state between active and waiting, and has reasonable resource allocation.

【技术实现步骤摘要】
一种分布式的实时消息过滤系统
本专利技术涉及一种消息过滤系统,尤其涉及一种分布式的实时消息过滤系统。
技术介绍
Kafka以其高吞吐量,高可用等特性成为海量数据生产消费订阅的首选组件,但是kafka作为一个数据流组件,数据是不带有schema的,只能单纯的数据订阅,无法进行过滤等操作;如需对数据流进行数据简单处理,普遍的处理方式基本都是由数据订阅方消费所有的数据,然后在消费端进行全量数据实时过滤操作,这样做的问题:1、订阅方网络io压力大,需要从海里数据流中过滤仅仅为得到少量数据;2、缺乏有效的监控手段,无法知道数据的消费和过滤情况;3、同一个数据源不同条件的消费端的业务过滤需求无法合并处理,导致了对于同一个数据源,需要全量消费多次数据。现有的解决消息过滤的技术方案有以下两种,有各自的优点和缺点:SparkStreaming+kafka:SparkStreaming基于Spark引擎,是核心API的一个扩展,是一种微批处理模型,可以实现高吞吐量的、具备容错机制的实时流数据的处理。支持从kafka获取数据,从数据源获取数据之后,可以使用诸如map、reduce等高级函数进行复杂算法的简单处理,与kafka的整合较为成熟。缺点是1、引入了spark这个第三方框架,有一定的学习成本和维护成本;2、处理结果写回kafka,需要创建多个topic,对kafka机器的运维带来负担;3、缺乏有效的消费过滤监控;4、Spark对内存的要求较高;5、spark属于微批处理,且数据流经过多个机器,数据延迟较高。KafkaStreams:KafkaStreams是一套kafka原生类库,它使得ApacheKafka可以拥有流处理的能力,通过使用KafkaStreamsAPI进行业务逻辑处理最后写回Kakfa或者其他系统中。开发者使用KafkaStream的门槛非常低,比如单机进行一些小数据量的功能验证而不需要在其他机器上启动一些服务,同时具有依赖轻量,低延迟消息处理和必要的流处理api。缺点是:1、topic数据增多,数据冗余,集群运维负担重;2、缺乏资源调度,造成资源分配不均;3、消息队列与流处理糅合在一起,缺乏资源隔离机制。因此,当前的技术有待改进和提高。
技术实现思路
本专利技术要解决的技术问题是提供一种分布式的实时消息过滤系统,解决消息过滤以及过滤情况监控的问题。本专利技术为解决上述技术问题而采用的技术方案是提供一种分布式的实时消息过滤系统,包括主服务器、备用服务器、zookeeper模块、数据库、Web模块、代理服务器和消费端;所述主服务器启动代理服务器上的常驻进程,所述常驻进程包括过滤器、资源管理器和监控器;所述主服务器注册信息到zookeeper模块的服务器心跳节点,同时注册心跳节点变化事件,所述备用服务器注册zookeeper模块的服务器心跳节点变化事件,当发现主服务器故障即zookeeper模块的服务器心跳节点变化时,通过通知主备服务器的方式,主备服务器自动完成角色切换;所述数据库存储过滤元数据信息和过滤监控信息;所述Web模块从数据库读取过滤和执行信息,并展示在web页面;所述过滤器用于消费代理服务器上的主题;所述资源管理器:存储过滤器的资源负载信息到zookeeper模块的资源管理器节点;所述监控器对过滤器运行状态进行监控。进一步的,所述主服务器从zookeeper模块同步常驻进程运行信息和过滤器监控信息;然后汇总过滤器运行信息,并在常驻进程内找出消费相同源数据的过滤条件进行合并,然后通过远程过程调用关闭原先多个条件的过滤器,并启动合并条件的过滤器进行过滤,最后将过滤结果根据不同消费端进行分发;当过滤器承载太多数据流,过滤器消费的数据远多于传输到消费端的数据时,则触发反压阀值,由主服务器进行干预,通过远程过程调用控制过滤器消费速率,直到消费的数据与传输的数据恢复正常再恢复过滤器消费速率。进一步的,所述主服务器包含流调度模块,所述流调度模块从zookeeper模块的常驻进程资源管理节点实时同步获取常驻进程资源和负载信息,然后根据加权轮询算法实时统计出所有常驻进程的负载权重,并实时更新负载权重;消费端进行数据消费先从流调度模块得到最小权重,并将数据流负载到最小权重的常驻进程上,然后由流调度模块启动过滤器,并返回数据流接口给消费端,实现常驻进程的数据流负载均衡。进一步的,所述消费端通过接口函数注册数据模式和过滤条件,并向流调度模块和过滤器传输过滤条件和数据模式,在流调度模块返回数据流接口给消费端后,消费端远程连接接口进行消费。进一步的,所述监控器使用观察者模式监控过滤器,所述监控器从过滤器获得运行信息、过滤监控信息和补偿信息,并存储过滤器监控信息和补偿信息到zookeeper模块的常驻进程监控器节点,然后定时存储过滤监控信息和运行信息到数据库;并发送心跳到zookeeper的常驻进程心跳节点。进一步的,所述主控制器通过zookeeper模块的常驻进程监控器节点检测到过滤器消费数据流失败时,所述主控制器先关闭失败的过滤器,然后从数据库读取元数据信息和过滤条件信息,并从zookeeper模块读取最新补偿信息,最后重启过滤器进行消费。进一步的,所述监控信息主要是业务信息,包括主题行数据的数据模式、过滤信息、过滤速率和过滤数据占比。本专利技术对比现有技术有如下的有益效果:本专利技术提供的分布式的实时消息过滤系统,过滤条件智能合并,数据流负载均衡,缓解常驻进程压力,自我调节过滤速率,调度系统可在活跃和等待进行状态切换,对消费端友好,资源分配合理,消费端学习成本低。附图说明图1为本专利技术实施例中分布式的实时消息过滤系统的架构图;具体实施方式下面结合附图和实施例对本专利技术作进一步的描述。图1为本专利技术实施例中分布式的实时消息过滤系统结构架构图。请参见图1,本专利技术提供的分布式的实时消息过滤系统,包括主服务器、备用服务器、zookeeper模块、数据库、Web模块、代理服务器和消费端;所述主服务器启动代理服务器上的常驻进程,所述常驻进程包括过滤器、资源管理器和监控器;所述主服务器注册信息到zookeeper模块的服务器心跳节点,同时注册心跳节点变化事件,所述备用服务器注册zookeeper模块的服务器心跳节点节点变化事件,当发现主服务器故障即zookeeper模块的服务器心跳节点变化时,通过通知主备服务器的方式,主备服务器自动完成角色切换;所述数据库存储过滤元数据信息和过滤监控信息;所述Web模块从数据库读取过滤和执行信息,并展示在web页面;所述过滤器用于消费代理服务器上的主题;所述资源管理器:存储过滤器的资源负载信息到zookeeper模块的资源管理器节点;所述监控器对过滤器运行状态进行监控。主服务器从zookeeper模块同步常驻进程运行信息和过滤器监控信息;然后汇总过滤器运行信息,并在常驻进程内找出消费相同源数据的过滤条件进行合并,然后通过远程过程调用关闭原先多个条件的过滤器,并启动合并条件的过滤器进行过滤,最后将过滤结果根据不同消费端进行分发,避免不同消费端对同一个源数据的不同过滤条件有业务需求时,每个消费端都全量消费源数据,造成的网络带宽的浪费;当过滤器承载太多数据流,过滤器消费的数据远多于传输到消费端的数据时,则触发反压阀值,本文档来自技高网
...

【技术保护点】
1.一种分布式的实时消息过滤系统,其特征在于,包括主服务器、备用服务器、zookeeper模块、数据库、Web模块、代理服务器和消费端;所述主服务器启动代理服务器上的常驻进程,所述常驻进程包括过滤器、资源管理器和监控器;所述主服务器注册信息到zookeeper模块的服务器心跳节点,同时注册心跳节点变化事件,所述备用服务器注册zookeeper模块的服务器心跳节点变化事件,当发现主服务器故障即zookeeper模块的服务器心跳节点变化时,通过通知主备服务器的方式,主备服务器自动完成角色切换;所述数据库存储过滤元数据信息和过滤监控信息;所述Web模块从数据库读取过滤和执行信息,并展示在web页面;所述过滤器用于消费代理服务器上的主题;所述资源管理器:存储过滤器的资源负载信息到zookeeper模块的资源管理器节点;所述监控器对过滤器运行状态进行监控。

【技术特征摘要】
1.一种分布式的实时消息过滤系统,其特征在于,包括主服务器、备用服务器、zookeeper模块、数据库、Web模块、代理服务器和消费端;所述主服务器启动代理服务器上的常驻进程,所述常驻进程包括过滤器、资源管理器和监控器;所述主服务器注册信息到zookeeper模块的服务器心跳节点,同时注册心跳节点变化事件,所述备用服务器注册zookeeper模块的服务器心跳节点变化事件,当发现主服务器故障即zookeeper模块的服务器心跳节点变化时,通过通知主备服务器的方式,主备服务器自动完成角色切换;所述数据库存储过滤元数据信息和过滤监控信息;所述Web模块从数据库读取过滤和执行信息,并展示在web页面;所述过滤器用于消费代理服务器上的主题;所述资源管理器:存储过滤器的资源负载信息到zookeeper模块的资源管理器节点;所述监控器对过滤器运行状态进行监控。2.如权利要求1所述的分布式的实时消息过滤系统,其特征在于,所述主服务器从zookeeper模块同步常驻进程运行信息和过滤器监控信息;然后汇总过滤器运行信息,并在常驻进程内找出消费相同源数据的过滤条件进行合并,然后通过远程过程调用关闭原先多个条件的过滤器,并启动合并条件的过滤器进行过滤,最后将过滤结果根据不同消费端进行分发;当过滤器承载太多数据流,过滤器消费的数据远多于传输到消费端的数据时,则触发反压阀值,由主服务器进行干预,通过远程过程调用控制过滤器消费速率,直到消费的数据与传输的数据恢复正常再恢复过滤器消费速率。3.如权利要求1所述的分布式的实时消息过滤系统,其特征在于,所述主服...

【专利技术属性】
技术研发人员:程永新宋辉
申请(专利权)人:上海新炬网络技术有限公司
类型:发明
国别省市:上海,31

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

1