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 ...
【技术保护点】
1.一种分布式的实时消息过滤系统,其特征在于,包括主服务器、备用服务器、zookeeper模块、数据库、Web模块、代理服务器和消费端;所述主服务器启动代理服务器上的常驻进程,所述常驻进程包括过滤器、资源管理器和监控器;所述主服务器注册信息到zookeeper模块的服务器心跳节点,同时注册心跳节点变化事件,所述备用服务器注册zookeeper模块的服务器心跳节点变化事件,当发现主服务器故障即zookeeper模块的服务器心跳节点变化时,通过通知主备服务器的方式,主备服务器自动完成角色切换;所述数据库存储过滤元数据信息和过滤监控信息;所述Web模块从数据库读取过滤和执行信息,并展示在web页面;所述过滤器用于消费代理服务器上的主题;所述资源管理器:存储过滤器的资源负载信息到zookeeper模块的资源管理器节点;所述监控器对过滤器运行状态进行监控。
【技术特征摘要】
1.一种分布式的实时消息过滤系统,其特征在于,包括主服务器、备用服务器、zookeeper模块、数据库、Web模块、代理服务器和消费端;所述主服务器启动代理服务器上的常驻进程,所述常驻进程包括过滤器、资源管理器和监控器;所述主服务器注册信息到zookeeper模块的服务器心跳节点,同时注册心跳节点变化事件,所述备用服务器注册zookeeper模块的服务器心跳节点变化事件,当发现主服务器故障即zookeeper模块的服务器心跳节点变化时,通过通知主备服务器的方式,主备服务器自动完成角色切换;所述数据库存储过滤元数据信息和过滤监控信息;所述Web模块从数据库读取过滤和执行信息,并展示在web页面;所述过滤器用于消费代理服务器上的主题;所述资源管理器:存储过滤器的资源负载信息到zookeeper模块的资源管理器节点;所述监控器对过滤器运行状态进行监控。2.如权利要求1所述的分布式的实时消息过滤系统,其特征在于,所述主服务器从zookeeper模块同步常驻进程运行信息和过滤器监控信息;然后汇总过滤器运行信息,并在常驻进程内找出消费相同源数据的过滤条件进行合并,然后通过远程过程调用关闭原先多个条件的过滤器,并启动合并条件的过滤器进行过滤,最后将过滤结果根据不同消费端进行分发;当过滤器承载太多数据流,过滤器消费的数据远多于传输到消费端的数据时,则触发反压阀值,由主服务器进行干预,通过远程过程调用控制过滤器消费速率,直到消费的数据与传输的数据恢复正常再恢复过滤器消费速率。3.如权利要求1所述的分布式的实时消息过滤系统,其特征在于,所述主服...
【专利技术属性】
技术研发人员:程永新,宋辉,
申请(专利权)人:上海新炬网络技术有限公司,
类型:发明
国别省市:上海,31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。