基于Kafka的实时数据解析订阅处理方法和装置
技术领域
本发明涉及数据解析处理技术领域,更具体地,涉及一种基于Kafka实时数据解析订阅处理分发数据的方法和装置。
背景技术
实时数据解析订阅处理是指在设备数据上报云端后,云端根据用户订阅关系进行订阅分发的一种行为,为了满足用户对数据安全性的要求,将用户订阅关系存储于服务器数据库中,需要用户发起订阅行为,服务器校验用户对设备的权限处理,从而保证数据安全准确地达到用户系统,传统的数据抓取通过客户端进行主动轮询方式进行获取,但传统的数据获取方式吞吐量比较小、实效慢、不支持分片消费,目前常用的消息队列有Kafka,RabbitMq,AMQP等,Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写,Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理用户消费者在网站中的所有动作流数据,为了满足高吞吐量,实现分布式部署,采用Kafka技术实现分布式部署,分片消费,以达到高吞吐量,实效快,确保数据准确无误地、实时地到达用户客户端。
发明内容
本发明的目的提供一种基于Kafka实时数据解析订阅处理分发数据的方法和装置,设备的实时数据通过用户订阅关系模型进行数据分批发送给不同的用户,用以改善分布式环境下用户数据分发的实时性和针对性需求。
为达到上述目的,本发明采用以下技术方案:
一种基于Kafka的实时数据解析订阅处理方法,包括步骤如下:
步骤1:订阅端向云端服务器发送订阅数据模型;
步骤2:订阅端与服务端建立数据推送通道;
步骤3:服务端接收用户数据并进行权限校验;
步骤4:服务端校验后发送消息给中间件进行数据转发;
步骤5:服务端的订阅关系部分通过消息中间件接收订阅关系并进行本地存储;
步骤6:服务端的数据解析部分在接收到数据后上报中间件;
步骤7:服务端的数据分发部分接收数据后与订阅关系进行数据合并处理;
步骤8:服务端向订阅端发送实时数据。
进一步的,所述步骤3中的权限校验是用户订阅关系的合法性校验。
进一步的,所述步骤4中的中间件为Kafka集群服务器。
进一步的,所述步骤5中的服务端的订阅关系部分通过消息中间件接收订阅关系包括以下步骤:
S51:订阅端向云端服务器发起订阅关系;
S52:服务器进行设备权限判断并进行订阅关系处理;
S53:通过Kafka消费用户订阅关系;
S54:存储用户关系模型数据至本地库;
S55:存储用户关系模型数据进行数据库存储。
进一步的,所述步骤7包括以下步骤:
S71:设备端发送用户数据;
S72:服务端进行数据解析;
S73:服务端加载订阅关系模型;
S74:服务端进行数据解析成用户所要的数据后进行与订阅关系进行复合运算;
S75:服务端对用户数据进行过滤筛选;
S76:服务端将用户数据上传至Kafka;
S77:由云端服务器发送进行消费Kafka中数据后根据用户进行数据转发。
一种基于Kafka的实时数据解析订阅处理方法的装置,包括:
数据推送模块,用于与服务端建立数据推送通道;
权限校验模块,用于接收用户数据并进行权限校验;
数据转发模块,用于发送消息给Kafka进行数据转发;
数据解析模块,用于对用户数据解析;
存储模块,用于存储用户订阅关系;
复合运算模块,用于对数据解析成用户所要的数据后进行与订阅关系进行复合运算;
过滤筛选模块,用于对用户所要的数据进行过滤筛选。
一种基于Kafka的实时数据解析订阅处理方法的系统,包括:
数据源端,用于读取消息队列中Kafka缓存的消息,加上临时缓存一天数据的量,并在客户端解析Kafka缓存消息后,将解析后的Kafka缓存消息存储在上述存储模块中;
客户端,用于初始化后,解析Kafka缓存消息的内容。
采用上述技术方案,本发明具有以下优点:
1.本发明提供了一种基于Kafka的实时数据分发订阅处理方法,该实时数据分发订阅处理方法通过用户订阅关系建立与设备数据进行匹配,并将设备数据发送到用户订阅端,由于用户订阅关系是由用户发起,从而使得用户可以根据自己实际需求来定义关系,无需修改任何配置文件,从而减少了资源消耗,确保了数据按照用户自定义要求送达用户端,服务器中也进行了权限校验,判断设备是否挂载在订阅者名下进行校验,确保了数据的安全性。
2.本发明在传统的数据分发基础上,加上临时缓存一天数据的量,以便用户进行查询历史,方便用户进行针对一天的数据进行分析,从而达到分析未来可预见性行为,通过实时数据解析订阅关系处理可以及时、便捷地让用户得到自己想要的实时数据,数据处理效率高,减少了用户处理数据的压力。采用Kafka技术实现分布式部署,分片消费,能够达到高吞吐量,实效块,确保数据准确无误地,实时地到达用户端。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显。
图1是本发明的基于Kafka的实时数据解析订阅处理方法的流程图;
图2是本发明的订阅端发起订阅关系并存储数据库流程图;
图3是本发明的设备数据上报后进行数据分发流程图;
图4是本发明的基于Kafka的实时数据解析订阅处理方法的装置的结构示意图;
图5是本发明的基于Kafka的实时数据解析订阅处理方法的系统结构示意图。
具体实施方式
以下结合说明书附图对本发明的技术方案进行具体说明。
以下在具体实施方式中详细叙述本发明的详细特征以及优点,其内容足以使任何本领域技术人员了解本发明的技术内容并据以实施,且根据本说明书所揭露的说明书、权利要求及附图,本领域技术人员可轻易地理解本发明相关的目的及优点。
第一实施例
如附图1所示,一种基于Kafka的实时数据解析订阅处理方法,包括步骤如下:
步骤1:订阅端向云端服务器发送订阅数据模型;
步骤2:订阅端与服务端建立数据推送通道;
步骤3:服务端接收用户数据并进行权限校验;
步骤4:服务端校验后发送消息给中间件进行数据转发;
步骤5:服务端的订阅关系部分通过消息中间件接收订阅关系并进行本地存储;
步骤6:服务端的数据解析部分在接收到数据后上报中间件;
步骤7:服务端的数据分发部分接收数据后与订阅关系进行数据合并处理;
步骤8:服务端向订阅端发送实时数据。
其中:订阅数据模型是现有技术的一种访问订阅平台,包括订阅端和云端服务器,订阅端通过云端服务器对数据平台系统订阅,实现数据的订阅和获取。
步骤3中的权限校验是用户订阅关系的合法性校验,如果用户订阅关系是合法权限,进行下一步操作,如果用户订阅关系是非法权限,返回步骤1直到取得合法权限。
步骤4中的中间件为Kafka集群服务器,Kafka是一个分布式的消息发布-订阅系统,Kafka可以作为流计算系统的数据源,支持通过Kafka服务器和消费机集群来分区消息,Kafka集群服务器能够读取服务端校验后发送的消息,能够处理消费者用户在网站中的所有动作流数据,经过Kafka集群服务器处理后,磁盘数据可持久化,吞吐量高,每秒可达百万消息。
第二实施例
如附图2所示,本发明的第二实施例类似于第一实施例,只是有如下的设计变化。上述步骤5中的服务端的订阅关系部分通过消息中间件接收订阅关系包括以下步骤:
S51:订阅端向云端服务器发起订阅关系;
S52:服务器进行设备权限判断并进行订阅关系处理;
S53:通过Kafka消费用户订阅关系;
S54:存储用户关系模型数据至本地库;
S55:存储用户关系模型数据进行数据库存储。
其中:订阅端向云端服务器发起订阅关系,服务器进行设备权限判断并进行订阅关系处理,并将加工后的订阅关系进行发送给中间件Kafka集群服务器,以确保数据不丢失,服务端收取订阅关系进行数据库存储(本地库加上关系型数据库同时存储来确保数据不丢失),用户订阅关系使用RocksDB本地库进行快速响应,计算速度快,确保了数据的时效性;订阅关系数据也进行缓存处理,数据处理效率高。通过接收设备的实时数据,计算实时数据与订阅者的关系,向用户推送实时数据。
第三实施例
如附图3所示,本发明的第三实施例类似于第二实施例,只是有如下的设计变化。其中:步骤7包括以下步骤:
S71:设备端发送用户数据;
S72:服务端进行数据解析;
S73:服务端加载订阅关系模型;
S74:服务端进行数据解析成用户所要的数据后进行与订阅关系进行复合运算;
S75:服务端对用户数据进行过滤筛选;
S76:服务端将用户数据上传至Kafka;
S77:由云端服务器发送进行消费Kafka中数据后根据用户进行数据转发。
设备端数据上报后由服务端进行数据解析成用户所要的数据后进行与订阅关系进行复合运算,将用户所要的数据进行过滤筛选,上传至Kafka确保数据不丢失,最终由服务器发送进行消费Kafka中数据后根据用户进行数据转发。订阅关系是由用户端发起,使得用户若要取消订阅关系时只需向中间件发送取消订阅后,复合处理层就会取消用户数据推送。
第四实施例
如附图4所示,本发明的第四实施例类似于第三实施例,只是有如下的设计变化。一种基于Kafka的实时数据解析订阅处理方法的装置,包括:
数据推送模块,用于与服务端建立数据推送通道;
权限校验模块,用于接收用户数据并进行权限校验;
数据转发模块,用于发送消息给Kafka进行数据转发;
数据解析模块,用于对用户数据解析;
存储模块,用于存储用户订阅关系;
复合运算模块,用于对数据解析成用户所要的数据后进行与订阅关系进行复合运算;
过滤筛选模块,用于对用户所要的数据进行过滤筛选。
第五实施例
如附图5所示,本发明的第五实施例类似于第四实施例,只是有如下的设计变化。一种基于Kafka的实时数据解析订阅处理方法的系统,包括:
数据源端,用于读取消息队列中Kafka缓存的消息,加上临时缓存一天数据的量,并在客户端解析Kafka缓存消息后,将解析后的Kafka缓存消息存储在上述存储模块中;
客户端,用于初始化后,解析Kafka缓存消息的内容。
最后,需要指出的是,虽然本发明已参照当前的具体实施例来描述,但是本技术领域中的普通技术人员应当认识到,以上的实施例仅是用来说明本发明,而并非用作为对本发明的限定,在不脱离本发明构思的前提下还可以作出各种等效的变化或替换,因此,只要在本发明的实质精神范围内对上述实施例的变化、变型都将落在本发明的权利要求书范围内。