一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于Actor模型的数据处理方法及系统与流程

2023-02-04 13:12:13 来源:中国专利 TAG:

一种基于actor模型的数据处理方法及系统
技术领域
1.本发明涉及数据处理技术领域,具体是一种基于actor模型的数据处理方法及系统。


背景技术:

2.数据采集功能主要在平台设备上开启数据采集服务,终端设备通过数据采集服务上报业务数据到平台设备,当平台收到数据后进行数据持久化操作,最终再由web技术展示给用户。
3.但是,不同终端设备上报的数据的结构是不相同的,就需要在平台设备上采集到数据后对数据进行处理,如数据的转换、过滤、转发、存储等操作。通常是通过内置定义一些字符串替换、正则匹配、字段合并等解析规则,对特定的字段进行特殊处理。但这类解析方式只适用于业务流程固定化的场景,若是遇到流程变更、业务拓展或是产品升级等需求,由于数据结构的不同,则需根据业务需求对采集数据重新规划数据处理流程,投入人力进行二次开发,耗时耗力。


技术实现要素:

4.为克服现有技术的不足,本发明提供了一种基于actor模型的数据处理方法及系统,解决现有技术存在的针对不同数据结构的数据进行数据处理时操作麻烦、耗时耗力等问题。
5.本发明解决上述问题所采用的技术方案是:
6.一种基于actor模型的数据处理方法,创建actor模型,并按照用户自定义的actor节点结构及actor节点间的关系,对采集到的数据进行数据处理。
7.作为一种优选的技术方案,包括以下步骤:
8.s1,数据采集:采集不同的终端设备发送的数据;
9.s2,模型创建:创建actor模型;
10.s3,处理链构建:自定义actor节点结构及actor节点间的关系,形成数据处理链;
11.s4,数据处理:按照定义好的数据处理链,对数据进行数据处理;所述数据处理,指数据转换、过滤、转发、储存中的一种或多种。
12.作为一种优选的技术方案,步骤s1中,采用kafka、mqtt或syslog进行数据采集。
13.作为一种优选的技术方案,步骤s2中,actor模型中包含了多个actor,actor为数据处理节点,每个数据处理节点具有不同的数据处理能力。
14.作为一种优选的技术方案,步骤s2中,而每个数据处理节点能力是预先定义好的。
15.作为一种优选的技术方案,步骤s2中,并且每个数据处理节点是可以复用的。
16.作为一种优选的技术方案,步骤s3中,对数据节点进行执行顺序的定义,定义内容如下:定义根节点为input节点,input节点的下一级节点为string_change节点,string_change节点用于将字符串中源字符串替换为目标字符串;string_change下一级节点包含2
个节点,分别为string_filter和save节点,其中,string_filter节点用于判断传递过来的数据中是否包含某个内容,save节点用于将采集数据保存到本地数据库;string_filter的下一级节点为external_kafka节点,external_kafka节点的用于将传递过来的数据发送给kafka服务器,并提供kafka服务器的配置。
17.作为一种优选的技术方案,步骤s4中,数据首先到达根节点,然后把数据发送给根节点的下一级所有节点,所有的节点按照节点定义的方法执行完后,将处理后的数据再发送给当前节点的下一级所有节点,直至所有节点中定义的方法全部执行完毕。
18.作为一种优选的技术方案,actor节点通过消息传递的方式通信。
19.一种基于actor模型的数据处理系统,用于实现所述的一种基于actor模型的数据处理方法,包括以下模块:
20.数据采集模块:用以,采集不同的终端设备发送的数据;
21.模型创建模块:用以,创建actor模型;
22.处理链构建模块:用以,自定义actor节点结构及actor节点间的关系,形成数据处理链;
23.数据处理模块:用以,按照定义好的数据处理链,对数据进行数据处理;所述数据处理,指数据转换、过滤、转发、储存中的一种或多种;
24.其中,模型创建模块、处理链构建模块、数据处理模块依次连接,数据采集模块与数据处理模块连接。
25.本发明相比于现有技术,具有以下有益效果:
26.本发明根据业务需求及功能模块,通过建立actor预处理节点进行数据转换、过滤、转发及储存等操作,将处理结果进一步下发到对应的actor子节点进行具体处理,按照用户自定义的节点关系及数据链,按序下发至各个actor节点,借助消息进行通信,完成数据处理;当遇到功能拓展或是业务需求变更,则可灵活配置,只需新增节点或修改部分节点逻辑即可完成要求,避免二次开发,提高了开发效率和业务灵活性。
附图说明
27.图1为本发明所述的一种基于actor模型的数据处理方法的步骤示意图;
28.图2为利用本发明进行数据处理的一种节点定义的业务场景图;
29.图3为本发明所述的一种基于actor模型的数据处理系统的结构示意图。
具体实施方式
30.下面结合实施例及附图,对本发明作进一步的详细说明,但本发明的实施方式不限于此。
31.实施例1
32.如图1至图3所示,本发明的目的是提供一种基于actor模型的数据处理方法,针对不同数据结构,只通过灵活配置,便可以实现数据的转换、过滤、转发、保存等操作,减少二次开发。
33.本发明提供一种基于actor模型的数据处理方法,包括:
34.启动数据采集服务进行外部数据采集;创建actor模型用于处理采集服务采集到
的数据;所述actor模型包括多个actor节点;所述actor节点是预先定义好的,提供了用户接口的,为了完成一种具体的数据处理操作的组件;定义actor节点结构及actor节点间的关系,形成数据处理链;所述数据处理链,通过消息传递的方式进行通信;按照定义好的数据处理链,依次对数据进行处理操作。
35.可选地,所述数据采集服务,是一种装置,可以从系统外部采集数据并输入到系统内部的一个接口,这个装置包括但不限于kafka、mqtt、syslog。
36.可选地,所述创建actor模型用于处理采集服务采集到的数据,所述处理包括:对数据进行转换、过滤、转发、存储中的一种操作,或者多种操作;其中,数据操作除转换、过滤、转发、存储外,还可以根据业务需求对操作进行扩展延伸。
37.可选地,所述actor节点是预先定义好的,提供了用户接口的,为了完成一种具体的数据处理操作的组件,方法包括:定义一类相同的数据处理方法,并提供参数接口,待用户填入具体参数值后,执行方法,完成数据处理。
38.可选地,actor节点是预定义的组件,actor节点间的关系是一个树形关系,首先,定义一个actor根节点作为数据处理的起始节点,所述actor根节点是没有任何数据处理的,仅代表数据开始处理;数据处理链是actor节点的实例按照用户自定义关系链接起来的从根节点出发的形成的树形结构,其中数据处理链可以是同一个actor节点的多个实例,也可以是多个不同actor节点,亦或二者皆可。
39.可选地,所述actor节点通过消息传递的方式通信,包括:用户根据已定义好的数据处理链,按照已定义好的节点关系,发送给下一级节点进行数据处理。
40.可选地,所述按照定义好的数据处理链,依次对数据进行处理操作,包括:数据首先到达根节点,然后把数据发送给根节点的下一级所有节点,同样,所有的节点按照节点定义的方法执行完后,把处理后的数据再发送给当前节点的下一级所有节点,直至所有节点中定义的方法全部执行完毕。
41.本发明还提供一种基于actor模型的数据处理装置,包括:
42.数据采集模块,用于采集外部数据;所述外部数据一般是由不同的终端设备发送的且没有固定结构的数据。
43.模型创建模块,预先定义数据处理操作的节点,包括数据转换、数据过滤、数据转发、数据存储等。
44.处理链构建模块,用于创建actor模型,所述actor模型包括了所有的数据处理节点,所述数据处理节点用于对数据转换、过滤和转发,所述所有的数据处理节点通过消息传递的方式通信;用于定义数据处理节点顺序和节点之间的关系;
45.数据处理模块,用于实现按照actor模型的通信方式,执行具体数据处理操作。
46.本发明应用于计算机和数据采集领域。与相关技术相比,数据采集模块负责采集外部数据,actor模型用于处理采集到的数据。主要是根据业务需求及功能模块,通过建立actor预处理节点进行数据转换、过滤、转发及储存等操作,将处理结果进一步下发到对应的actor子节点进行具体处理,按照用户自定义的节点关系及数据链,按序下发至各个actor节点,借助消息进行通信,完成数据处理。当遇到功能拓展或是业务需求变更,则可灵活配置,只需新增节点或修改部分节点逻辑即可完成要求,避免二次开发,提高了开发效率和业务灵活性。
47.实施例2
48.如图1至图3所示,作为实施例1的进一步优化,在实施例1的基础上,本实施例还包括以下技术特征:
49.本实施例中描述的数据处理方式包括但不限于数据的转换、过滤、转发等操作,其中数据的转换包括但不限于字符替换、字符串截取、字符串合并等;数据的过滤,包括但不限于正则匹配、字符包含等;数据转发包括但不限于发送邮件、发送短信、发送给消息队列服务等。
50.参见图1,是本发明实施例提供一种数据处理方法的示意流程图,如图1所示数据采集方法可包括:
51.步骤s1:启动数据采集服务进行数据采集
52.在本发明实施例中,主要是处理通过数据采集服务采集到的外部数据;外部数据一般是由不同的终端设备发送的且没有固定结构的数据。
53.步骤s2:创建actor模型用于处理采集服务采集到的数据。
54.在本实施例中,actor模型为一个数据处理的模型,用于处理并发计算。它定义了一系列系统组件应该如何动作和交互的通用规则。actor模型中包含了多个actor,actor在本发明实施例中为数据处理节点,每个数据处理节点具有不同的数据处理能力。而每个数据处理节点能力是预先定义好的,并提供方法配置,并且每个数据处理节点是可以复用的。
55.举例说明,上述数据处理能力,包括了数据的转换、过滤、转发。定义一个数据转换的节点,节点名称为string_change,提供的方法有replace(字符串替换)、substr(字符串截取)。定义一个数据过滤节点,节点名称string_filter,提供的方法有正则匹配;定义一个数据转发节点,名称为external_mail,提供的方法有pop3服务器、用户名、密码等信息配置。
56.步骤s3:定义actor节点结构及actor节点间的关系,形成数据处理链。
57.在本实施例中,对上述数据节点间进行执行顺序的定义,如图2所示,定义根节点为input节点,它的下一级节点为string_change节点,string_change节点包含replaceall、replace等方法,其中可以使用replaceall方法把字符串中所有的源字符串替换为目标字符串,例如把“level”替换为“等级”;string_change下一级节点包含2个节点,分别为string_filter和save节点,其中string_filter节点中包含contain、equal等方法,其中contain方法可以判断传递过来的数据中是否包含某个内容,例如“handle”,save节点的作用为将采集数据保存到本地数据库;string_filter的下一级节点为external_kafka节点,作用为把传递过来的数据发送给kafka服务器,并提供kafka服务器的配置,例如kafka服务器地址为192.168.1.10,端口为9092,topic为data,最终把这个关系保存到数据库中。
58.步骤s4:按照定义好的数据处理链,对数据进行处理。
59.按照上例定义好的数据处理链,对数据进行处理,即把数据处理链从数据库中查询出来,加载到内存里面,当采集到数据后,会把数据发送到根节点input,通过查询input节点与其它节点的关系,找到下一级节点string_change,结合actor模型中的消息通信机制,把原始数据作为message,发送给string_change节点。消息到达string_change节点后,会把数据内容中所有的“level”字符串替换为字符串“等级”,当方法执行完毕后,因为所有
的关系已经加载到内存里面,此时根据关系查询到string_change下一级的节点有string_filter和external_kafka两个节点,会把处理后的数据,通过消息的方式,发送给这两个节点。这两个节点会分别按照定义的业务进行数据处理,例如把已经经过替换的数据发送到ip为192.168.1.10的kafka服务器上,topic为data;在string_filter节点中,根据匹配规则是否包含“handle”内容,如果匹配上了,会把数据发往下一个节点save,否则,不会把数据发送给save节点,save节点会把没有过滤掉的数据保存到服务器上。
60.上述实施例,使用了一种最简单容易理解的方式来讲述实现过程,在真正的实现中,每个actor点的定义的方法远比实施例中复杂,并且所有的方法都是相对通用的方法,这样在定义actor节点时,不至于actor会很多。例如,在java环境中可以使用nashorn调用动态语言javascript,这样,便可在节点中提供javascript的方法,来执行特殊的数据处理。
61.如上所述,可较好地实现本发明。
62.本说明书中所有实施例公开的所有特征,或隐含公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合和/或扩展、替换。
63.以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,依据本发明的技术实质,在本发明的精神和原则之内,对以上实施例所作的任何简单的修改、等同替换与改进等,均仍属于本发明技术方案的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献