本发明涉及大数据处理,涉及一种数据分发系统,具体是一种统一数据过滤分发系统。
背景技术:
1、在一些实时系统中,常常会产生大量的数据信息,人们需要对庞杂的数据进行分析,得到其所需要的那一部分数据。由于不同的用户对数据的关心角度不太一样,其需要的数据是不同的,这就需要将数据源的数据按一定的视角和数据表现方式过滤分发后再展示给用户,数据分发能够根据用户提出的订阅请求,对系统中产生的各类数据进行过滤和匹配,最终分发至用户,从而为用户提供精准的信息服务,根据不同种类信息包含的属性和字段不同,订阅条件与信息类型紧密关联。现有的数据过滤和分发流程,是一个项目或者一个产品设置一个数据过滤和分发流程,存在数据过滤规则不统一,数据分发流程不统一,分发流程过多过乱等问题。
技术实现思路
1、为解决背景技术中存在的技术问题,本发明提出了一种统一数据过滤分发系统,采用统一的数据过滤规则和分发流程,为数据推送提供效率和标准统一的数据处理流程。
2、本发明的目的可以通过以下技术方案实现:
3、一种统一数据过滤分发系统,包括用于从数据源获取原始数据的数据过滤分发模块以及连接数据过滤分发模块的多组数据消费模块,所述数据过滤分发模块采用统一的数据过滤规则和数据分发流程,将数据源中符合相应数据过滤规则的原始数据分发给对应的数据消费模块。
4、进一步地,所述数据过滤分发模块可分布式启动多个数据过滤分发模块节点,在多个数据过滤分发模块节点之间基于raft协议选出一个主节点,其它数据过滤分发模块节点作为备份节点,当主节点出现异常时,从备份的数据过滤分发模块节点中选出一个新的数据过滤分发模块节点作为主节点。
5、进一步地,所述数据消费模块包括注册单元和数据接收单元,所述数据过滤分发模块包括注册中心单元、数据处理单元和数据分发单元;
6、所述注册单元用于向注册中心单元发送包含数据消费模块所在服务器的ip地址信息、数据接收端口信息以及数据过滤规则的注册信息,完成数据消费模块注册;
7、所述注册中心单元用于接受数据消费模块的注册信息,并将注册结果反馈给注册单元;
8、所述数据处理单元用于从注册中心单元得到各个数据消费模块的注册信息,将注册信息中的数据过滤规则应用到从数据源得到的原始数据,若原始数据和数据过滤规则相匹配,则在原始数据中添加对应数据消费模块所在服务器的ip地址信息和数据接收端口信息后形成分发数据,然后把分发数据推送给数据分发单元;
9、所述数据分发单元根据分发数据携带的数据消费模块所在服务器的ip地址信息和数据接收端口信息,把分发数据发送到相应数据消费模块的数据接收单元;
10、所述数据接收单元,用于接收数据分发单元发送的分发数据,并在接收到分发数据后反馈数据消费结果给数据分发模块。
11、进一步地,所述数据消费模块的注册单元和数据过滤分发模块的注册中心单元使用基于protobuf的私有协议进行数据交换通信,并基于grpc协议进行网络通信。
12、进一步地,所述数据处理单元从各个数据消费模块的注册信息中提取数据过滤规则,并将所有数据消费模块的数据过滤规则进行汇总统一存储。
13、进一步地,所述数据处理单元通过预设的sql解析规则对存储的数据过滤规则进行解析,所述sql解析规则主要是把sql中需要的字段以及过滤条件等翻译成对应的代码以及执行代码,所述数据处理单元在得到原始数据后,把翻译后过滤条件对应的执行代码应用到原始数据。
14、进一步地,所述数据分发单元根据数据接收单元反馈的数据消费结果进行判断是否需要进行重试,若数据分发单元在多次分发后仍失败,则会对分发数据进行暂存,并发出异常警告信息,通知管理人员进行人工处理。
15、进一步地,所述数据过滤分发模块的数据分发单元和数据消费模块的数据接收单元使用基于protobuf的私有协议进行数据交换通信,并基于grpc协议进行网络通信。
16、进一步地,所述数据消费模块的注册单元在接收到注册中心单元反馈的注册结果后,开启心跳进程,所述注册单元相隔固定的时间把心跳信息发送给注册中心单元,若注册中心单元在固定的时间段内没有接收到注册单元的心跳信息,则通知数据处理单元和数据分发单元停止将分发数据继续发送给对应的数据消费模块,并对该分发数据进行临时存储,直到注册中心单元再次接收到相应注册单元的心跳信息。
17、本发明的有益效果:本发明提供的统一数据过滤分发系统,包括用于从数据源获取原始数据的数据过滤分发模块以及连接数据过滤分发模块的多组数据消费模块,数据过滤分发模块采用统一的数据过滤规则和数据分发流程,将数据源中符合相应数据过滤规则的原始数据分发给对应的数据消费模块,解决了现有技术中一个项目或者一个产品设置一个数据过滤和分发流程导致的数据过滤规则不统一、数据分发流程不统一以及分发流程过多过乱等问题,为数据推送提供了效率和标准统一的数据处理流程。
1.一种统一数据过滤分发系统,其特征在于,包括用于从数据源获取原始数据的数据过滤分发模块以及连接数据过滤分发模块的多组数据消费模块,所述数据过滤分发模块采用统一的数据过滤规则和数据分发流程,将数据源中符合相应数据过滤规则的原始数据分发给对应的数据消费模块。
2.根据权利要求1所述的一种统一数据过滤分发系统,其特征在于,所述数据过滤分发模块可分布式启动多个数据过滤分发模块节点,在多个数据过滤分发模块节点之间基于raft协议选出一个主节点,其它数据过滤分发模块节点作为备份节点,当主节点出现异常时,从备份的数据过滤分发模块节点中选出一个新的数据过滤分发模块节点作为主节点。
3.根据权利要求1所述的一种统一数据过滤分发系统,其特征在于,所述数据消费模块包括注册单元和数据接收单元,所述数据过滤分发模块包括注册中心单元、数据处理单元和数据分发单元;
4.根据权利要求3所述的一种统一数据过滤分发系统,其特征在于,所述数据消费模块的注册单元和数据过滤分发模块的注册中心单元使用基于protobuf的私有协议进行数据交换通信,并基于grpc协议进行网络通信。
5.根据权利要求3所述的一种统一数据过滤分发系统,其特征在于,所述数据处理单元从各个数据消费模块的注册信息中提取数据过滤规则,并将所有数据消费模块的数据过滤规则进行汇总统一存储。
6.根据权利要求5所述的一种统一数据过滤分发系统,其特征在于,所述数据处理单元通过预设的sql解析规则对存储的数据过滤规则进行解析,所述sql解析规则主要是把sql中需要的字段以及过滤条件等翻译成对应的代码以及执行代码,所述数据处理单元在得到原始数据后,把翻译后过滤条件对应的执行代码应用到原始数据。
7.根据权利要求3所述的一种统一数据过滤分发系统,其特征在于,所述数据分发单元根据数据接收单元反馈的数据消费结果进行判断是否需要进行重试,若数据分发单元在多次分发后仍失败,则会对分发数据进行暂存,并发出异常警告信息,通知管理人员进行人工处理。
8.根据权利要求3所述的一种统一数据过滤分发系统,其特征在于,所述数据过滤分发模块的数据分发单元和数据消费模块的数据接收单元使用基于protobuf的私有协议进行数据交换通信,并基于grpc协议进行网络通信。
9.根据权利要求3所述的一种统一数据过滤分发系统,其特征在于,所述数据消费模块的注册单元在接收到注册中心单元反馈的注册结果后,开启心跳进程,所述注册单元相隔固定的时间把心跳信息发送给注册中心单元,若注册中心单元在固定的时间段内没有接收到注册单元的心跳信息,则通知数据处理单元和数据分发单元停止将分发数据继续发送给对应的数据消费模块,并对该分发数据进行临时存储,直到注册中心单元再次接收到相应注册单元的心跳信息。