CN115237595A - 数据处理方法、装置、分发服务器、系统及存储介质 - Google Patents

数据处理方法、装置、分发服务器、系统及存储介质 Download PDF

Info

Publication number
CN115237595A
CN115237595A CN202210835821.1A CN202210835821A CN115237595A CN 115237595 A CN115237595 A CN 115237595A CN 202210835821 A CN202210835821 A CN 202210835821A CN 115237595 A CN115237595 A CN 115237595A
Authority
CN
China
Prior art keywords
data
server
rules
theme
partitions
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210835821.1A
Other languages
English (en)
Inventor
陈志伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Tuya Information Technology Co Ltd
Original Assignee
Hangzhou Tuya Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Tuya Information Technology Co Ltd filed Critical Hangzhou Tuya Information Technology Co Ltd
Priority to CN202210835821.1A priority Critical patent/CN115237595A/zh
Publication of CN115237595A publication Critical patent/CN115237595A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明实施例公开了一种数据处理方法、装置、分发服务器、系统及存储介质。该方法包括:获取实体设备的上报数据,并确定与所述上报数据关联的规则;按照设定分发策略将所述上报数据以及所述规则以组合的形式分发至主题分区,其中,每个所述组合包括一个实体设备的上报数据与所关联的单个规则,每个所述主题分区对应一个执行服务器,所述执行服务器用于处理对应所述主题分区中的上报数据以及规则。上述技术方案通过将上报数据按照实体设备和规则两个维度分发至不同的主题分区,将规则的处理压力分给各执行服务器,解决了数据倾斜、单个服务器的负载压力过大带来的业务不稳定问题。

Description

数据处理方法、装置、分发服务器、系统及存储介质
本申请是申请日为2022年04月13日、申请号为202210381778.6、发明名称为“数据处理方法、装置、分发服务器、系统及存储介质”的专利申请的分案申请。
技术领域
本发明实施例涉及数据处理技术领域,尤其涉及一种数据处理方法、装置、分发服务器、系统及存储介质。
背景技术
在物联网中常见的一种业务场景:设备上报数据到云端,云端将数据分发给多台服务器;上报的数据匹配大量的规则,对于一台服务器,计算其分发到的数据是否满足相关规则中的条件,如果满足则执行相关规则中指定的操作。在上述过程中,不同设备上报的数据对应不同的分区,为了保证各设备上报数据的顺序处理,云端需要通过特定分区算法将数据分发到特定的分区上。
由于每个设备上报数据的频率不同,比如移动侦测设备可能一直在运行状态,只要一直有移动物体存在会一直向云端上报设备当前数据,也就是说一些设备作为热点设备,其频繁上报数据会导致数据倾斜,即某个分区的消息较多,这些分区被分配给某台服务器之后,会导致这台服务器处理规则的时候占用更高的计算资源、负载过重,而其他的服务器资源消耗较低、负载较轻,严重时会影响到这台服务器的正常运行。在大规模服务器集群部署的情况下,这种数据倾斜导致业务不稳定的问题更加明显。
发明内容
本发明提供了一种数据处理方法、装置、分发服务器、系统及存储介质,以实现合理分发上报数据及规则,平衡执行服务器处理规则的压力,进而提高业务稳定性。
根据本发明实施例的一方面,提供了一种数据处理方法,包括:
获取实体设备的上报数据,并确定与所述上报数据关联的规则;
按照设定分发策略将所述上报数据以及所述规则以组合的形式分发至主题分区,其中,每个所述组合包括一个实体设备的上报数据与所关联的单个规则,每个所述主题分区对应一个执行服务器,所述执行服务器用于处理对应所述主题分区中的上报数据以及规则。
根据本发明实施例的另一方面,提供了一种数据处理装置,包括:
获取模块,设置为获取实体设备的上报数据,并确定与所述上报数据关联的规则;
分发模块,设置为按照设定分发策略将所述上报数据以及所述规则以组合的形式分发至主题分区,其中,每个所述组合包括一个实体设备的上报数据与所关联的单个规则,每个所述主题分区对应一个执行服务器,所述执行服务器用于处理对应所述主题分区中的上报数据以及规则。
根据本发明实施例的另一方面,提供了一种分发服务器,所述分发服务器包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的数据处理方法。
根据本发明实施例的另一方面,提供了一种数据处理系统,其特征在于,包括:实体设备、执行服务器以及本发明任一实施例所述的分发服务器;
所述实体设备用于向所述分发服务器发送上报数据;
所述执行服务器用于处理分发至相应的主题分区的上报数据以及规则。
根据本发明实施例的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的数据处理方法。
本发明实施例提供了一种数据处理方法、装置、分发服务器、系统及存储介质。首先获取实体设备的上报数据,并确定与所述上报数据关联的规则;然后按照设定分发策略将所述上报数据以及所述规则以组合的形式分发至主题分区,其中,每个所述组合包括一个实体设备的上报数据与所关联的单个规则,每个所述主题分区对应一个执行服务器,所述执行服务器用于处理对应所述主题分区中的上报数据以及规则。上述技术方案将上报数据按照实体设备和规则两个维度,分发至不同的主题分区,将规则的处理压力分给各执行服务器,解决了数据倾斜、单个服务器的负载压力过大带来的业务不稳定问题。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明一实施例提供的一种数据处理方法的流程图;
图2是根据本发明另一实施例提供的一种数据处理方法的流程图;
图3是根据本发明一实施例提供的一种基于实体设备划分主题分区的示意图;
图4是根据本发明一实施例提供的一种将上报数据和规则分发至主题分区的示意图;
图5是根据本发明一实施例提供的一种数据处理装置的结构示意图;
图6是根据本发明一实施例提供的一种数据处理系统的结构示意图;
图7是根据本发明一实施例提供的一种执行服务器处理上报数据和规则的示意图;
图8示出了可以用来实施本发明的实施例的分发服务器的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
为了更好地理解本发明实施例,下面对相关术语进行介绍。
规则:业务的执行规则,可用于对接内外部服务,由预先定义好的规则结构(条件,动作,关系)组成,产生上报事件时,首先判断业务数据满足哪些规则的条件(比如:温度大于20℃),此过程可理解为规则匹配或者规则的消费过程;然后执行这些规则的动作(比如发短信或调用某个服务接口等)。
消息中间件:针对接口外部消息(例如:实体设备的上报数据)进行数据流的存储和分发的软件技术,可部署在分发服务器中。
消息:通信的基本单位,消息的生产者可向主题发布一些消息。
主题(Topic):用于实现消息的分类。例如,同一实体设备的上报数据可以通过消息分发至同一主题下的不同分区。
分区(Partition):一个主题可以分为多个分区,每个分区是一个有序的队列,分区中的每条消息都被分配一个有序的标识,该标识即偏移量(Offset)。消息中间件的消息会分配到某个具体的分区上,通常情况下消息量较大,一般会创建很多分区,需要利用分发策略来计算这些消息被分发到哪个分区来存储。对于单个分区可保证其内部数据的顺序性。
分发策略:用于计算上报数据被分发到消息中间件的哪个分区存储。
分区分配算法:既然有数据的存储,就会有数据的消费,分区分配算法用于将设置的分区按照一定的分配策略分配给多台服务器,每台服务器对应于一部分分区并专门消费来自这部分分区的数据。这里的服务器也可以理解为执行服务器或者消费端。
数据倾斜:某个或某些分区的数据量比其他分区高。
上报数据:用于描述实体设备上报的数据内容,或描述数据将被上报到消息中间件等服务。
执行服务器:用于处理上报数据和关联的规则,也可以理解为分发到相应分区中的上报数据和规则的消费端,每个分区都有对应的执行服务器来处理其被分发到的上报数据和规则。
图1是根据本发明一实施例提供的一种数据处理方法的流程图。本实施例可适用于将上报数据和规则分发给不同分区的情况。该方法可应用于分发服务器,分发服务器可以是云端服务器、消息中心、控制中心或集群中的主服务器等。该方法可以由数据处理装置来执行,该数据处理装置可以采用硬件和/或软件的形式实现,该数据处理装置可配置于分发服务器中。
如图1所示,该方法包括:
S110、获取实体设备的上报数据,并确定与所述上报数据关联的规则。
本实施例中,实体设备可能是用户端、计算机、移动终端、产品等发起业务或产生业务数据的设备,不同的实体设备可以通过不同的实体号区分。通常情况下,数据处理系统中有多个实体设备。
实体设备产生业务数据后向分发服务器发送上报数据,上报数据包括用于描述业务数据的元数据信息(例如业务数据的数据来源、存储位置、历史变化以及占用的资源等,供处理者实现对业务数据的有效发现、查找、一体化组织和有效管理)。不同实体设备的上报数据的格式或数据结构可能不同。
上报数据与规则之间具有关联关系。每个实体设备的上报数据对应的业务可能不同,因此关联的规则也可能不同。每个实体设备的上报数据可以关联于一个或多个规则。利用关联的规则可以判断上报数据相应的业务是否需要执行,具体可以根据业务数据是否满足规则中的条件来判断。示例性的,实体设备1可能关联于规则A、规则B和规则C,实体设备2可能关联于规则D。
S120、按照设定分发策略将所述上报数据以及所述规则以组合的形式分发至主题分区,其中,每个所述组合包括一个实体设备的上报数据与所关联的单个规则,每个所述主题分区对应一个执行服务器,所述执行服务器用于处理对应所述主题分区中的上报数据以及规则。
本实施例中,以组合的形式分发上报数据以及规则,可以理解为以实体设备和规则两个维度进行分发,即,既考虑上报数据来自于哪个实体设备,也考虑上报数据关联的规则,以将各实体设备的上报数据所关联的规则均衡分发到各执行服务器对应的主题分区,有效避免基于实体设备分发时单个主题分区的负载较重的情况。其中,主题分区可以理解为经过消息分类得到的主题下的分区,本实施例中,主要指以“实体设备+规则”作为分类依据得到的分区,分发到其中的上报数据和规则由对应的执行服务器负责消费。
设定分发策略主要指将上报数据和规则分发至主题分区的策略。本实施例中,设定分发策略主要包括将每个实体设备的上报数据分别与所关联的单个规则作为一个组合,以组合为单位进行分发,这种情况下,可以明确对各实体设备的上报数据和规则进行匹配的工作量,为实现均衡分发提供基础。如上述的示例,实体设备1的上报数据和规则A作为一个组合,实体设备1的上报数据和规则B作为一个组合,实体设备1的上报数据和规则C作为一个组合,实体设备2的上报数据和规则D作为一个组合,可见,共有四组规则需要由执行服务器处理。在此基础上,可以根据实体设备数量和规则数量,将消息均衡分发至不同的主题分区,将处理压力分给不同的执行服务器。
具体的,如果基于实体设备一个维度分发,则上述示例中,实体设备1的上报数据会分发至第一主题分区,由第一执行服务器处理,第一执行服务器需要将第一主题分区的上报数据与其关联的三条规则(存储在规则的存储仓库中)分别匹配,判断是否执行这三条规则中的操作;实体设备2的上报数据会分发至第二主题分区,由第二执行服务器处理,第二执行服务器需要将第二主题分区的上报数据与其关联的一条规则匹配,判断是否执行该规则中的操作。可见,第一执行服务器的负载相对较重,处理压力较大。而采用本实施例的方法,可以考虑到将四个组合分发到两个执行服务器的实际情况,将实体设备1的上报数据和规则A、实体设备1的上报数据和规则C分发至第一主题分区,将实体设备1的上报数据和规则B、实体设备2的上报数据和规则D分发至第二主题分区,从而以上报数据和规则两个维度,实现均衡分发,解决流量倾斜带来的业务不稳定问题。
本实施例中,每个主题分区对应一个执行服务器,该执行服务器用于处理对应主题分区中的上报数据以及规则。需要说明的是,一个主题中的每个主题分区中的规则只会被一个执行服务器消费,但一个执行服务器可以消费多个主题分区中的规则。主题分区与执行服务器的对应关系可以预先设定,例如可以采用分区分配算法设定。
本实施例的数据处理方法,通过以实体设备和规则两个维度,将实体设备的上报数据及其关联的规则,以组合为单位分发至主题分区,将规则的处理压力分给各执行服务器,解决了数据倾斜、单个服务器的负载压力过大的问题,可提高处理效率以及业务稳定性。
在一实施例中,按照设定分发策略将上报数据以及规则以组合的形式分发至主题分区可具体包括:
S1210、根据组合对应的实体设备的实体号和组合对应的规则的编号确定关键字,基于哈希运算将关键字转换为对应的哈希值;
S1220、根据哈希值的绝对值对主题分区的数量进行取模运算,得到组合对应的模值;
S1230、根据模值将组合分发至对应的主题分区。
本实施例中,设定分发策略可以是一种基于哈希运算的分发策略。对于一个组合,可以利用实体设备的唯一标识和规则的唯一标识构成关键字(关键字可以是数值、字符或字符串等),并通过哈希运算得到该字符串的哈希值,用于以数值的形式唯一表示该组合。
利用各组合的哈希值可通过哈希运算实现组合的分发,具体的,将哈希值的绝对值对主题分区的数量取模,得到的模值可代表该组合要分发至哪个主题分区。取模相当于求哈希值的绝对值除以主题分区数量的余数,余数不大于主题分区数量,因此利用余数的值可以指向一个固定的主题分区。采用基于哈希运算的分发策略,可以保证各组合的均衡分发。
示例性的,对于一个组合,首先构造关键字:KEY=entityId+rule ID,即关键字为实体设备的实体号与规则的编号之和,其中,实体号可以是实体设备标识(Identitydocument,ID)、区域ID或产品ID等;然后,基于哈希运算将该关键字转换为哈希值(hash):hash=fnv(KEY),其中,fnv是一种哈希运算(Fowler-Noll-Vo,FNV)。本实施例不对哈希运算进行限定,例如也可以采用Murmur哈希运算等。
在此基础上,根据哈希值的绝对值(value)对主题分区的数量(size)进行取模运算,得到组合对应的模值:mod=value%size,根据模值将该组合分发至对应的主题分区,其中,value=abs(hash)。
可选的,根据模值将组合分发至对应的主题分区,包括:确定与组合对应的模值相匹配的配置范围,将组合分发至所匹配的配置范围对应的主题分区;其中,配置范围根据主题分区设置,配置范围包括配置值或配置区间。
本实施例中,可以为各主题分区设置配置范围,如果一个组合的模值落入某个配置范围,表明该组合可以分发至该配置范围对应的主题分区。此处的配置范围可以是一个固定的值(即配置值,Direct),也可以是一个确定的区间(即配置区间,Section,一个配置区间由区间最小值min和区间最大值max表示),例如,一个配置区间为[0,100],一个配置区间为[200,400]。
具体的,确定与组合对应的模值相匹配的配置范围:如果配置了Direct,则判断Direct中是否存在该组合的mod,如果存在,就将该组合分发至对应的主题分区,否则,说明模值计算过程有误,无法确定该组合的分发路径,可以重新计算或者报错等;如果配置了Section,则判断mod是否满足某个Section,即min≤mod≤max,如果是,就将该组合分发至对应的主题分区,否则,可以重新计算或者报错等。
在一实施例中,按照设定分发策略将上报数据以及规则以组合的形式分发至主题分区可具体包括:
S1240、根据各执行服务器的处理能力确定各执行服务器的权值;
S1250、根据各执行服务器的权值,将各组合轮流分发至各执行服务器的主题分区。
本实施例中,设定分发策略可以是一种加权轮询的分发策略。处理能力用于衡量执行服务器可承载的处理量,可以根据执行服务器的计算能力和内存空间大小等确定,例如,在单位时间内可处理的数据量越大或者内存空间越大,则执行服务器处理能力越强。处理能力与权值呈正相关,即,对于处理能力强的执行服务器赋予更高的权重。加权轮询(Round Robin)可以理解为,轮询每个执行服务器,并将一定数量的组合分发给当前的执行服务器。在轮流分发过程中,处理能力较强的执行服务器分发到的上报数据以及规则相对较多,处理能力较弱的执行服务器分发到的上报数据以及规则相对较少,进而充分利用网络资源,提高分发效率和处理效率。
可选的,根据各执行服务器的权值,将各组合轮流分发至各执行服务器的主题分区,包括:轮流将每个执行服务器作为目标服务器,并将与目标服务器的权值相符的数量的组合分发至目标服务器的主题分区,直至各组合均分发至相应的主题分区。
本实施例中,轮询每个执行服务器,对于当前的目标服务器,根据其权值确定分发多少个组合至其对应的主题分区。示例性的,两个执行服务器的权值满足3:1的比例关系,则在上述示例中,可以将实体设备1的上报数据和规则A、规则B、规则C都分发至第一主题分区,由第一执行服务器处理,将实体设备2的上报数据和规则D分发至第二主题分区,由第二执行服务器处理。这种情况下,虽然各执行服务器的处理量有差异,但处理量是与执行服务器的处理能力相匹配的,并不会给单个执行服务器造成处理压力,因此也能够保证业务稳定性。
需要说明的是,上述实施例中的设定分发策略,可适用于各执行服务器的处理能力相当的情况,也可适用于处理能力有明显差异的情况。以基于哈希运算的分发策略为例,通过合理设置每个主题分区对应的配置范围,可以调整落入配置范围的模值的数量或概率,从而合理控制分发至相应主题分区的组合的数量,即便各执行服务器的处理能力有差异,也可以实现负载均衡,保证业务稳定性。
图2是根据本发明另一实施例提供的一种数据处理方法的流程图。本实施例在上述各实施例的基础上进行细化,在本实施例中,对划分主题分区、过滤上报数据及规则等过程进行了具体描述。需要说明的是,未在本实施例中详尽描述的技术细节可参见上述任意实施例。
如图2所示,该方法包括:
S210、基于实体设备划分主题分区,其中,每个主题分区用于存储一个实体设备的上报数据。
本实施例中,可以首先基于实体设备作为分类依据来划分主题分区,以此保证各实体设备的上报数据能够被分发到特定的主题分区,从而保证不同实体设备的业务能够被顺序执行。
图3是根据本发明一实施例提供的一种基于实体设备划分主题分区的示意图。本实施例中,一个实体设备的上报数据会分到特定主题下的一个或多个主题分区,执行服务器(可以理解为消费服务)根据分区分配算法获取消费指定主题分区的能力。如图3所示,执行服务器1将在后续持续消费主题1下的分区1和主题2下的分区2;执行服务器2将在后续持续消费主题1下的分区2和主题2下的分区1。可见,执行服务器1的消息数量是13,而执行服务器2的消息数量是11,即出现了不均衡的情况。这种情况下,采用本实施例的设定分发策略,可以提供一种重分发方案,即,在数据处理系统中出现负载不均衡的情况时,可以启用设定分发策略,以实体设备和规则两个维度进行重新分发。
S220、从各主题分区中读取上报数据。
需要注意的是,此处的主题分区是基于实体设备划分的,所以可能存在负载不均衡的情况。
在一些实施例中,分发服务器也可以直接接收实体设备的上报数据,并以实体设备和规则两个维度划分主题分区并完成上报数据和规则的分发。
S230、确定与上报数据关联的规则。
S240、对上报数据以及规则进行过滤。
本实施例中,可以对上报数据以及规则进行过滤,以排除不需要或不适合分发的上报数据和规则,避免不必要的工作量,提高分发和处理效率。
可选的,根据以下至少一项对上报数据以及规则进行过滤:设定分发策略的开关状态;过滤名单;设定实体号;设定数据类型。
具体的,在设定分发策略开启的情况下,可以对获取的上报数据以及关联的规则进行分发,在设定分发策略关闭的情况下,不需要分发,即都由基于实体设备划分主题分区的结果由相应的执行服务器处理即可。
过滤名单可以为黑名单和/或白名单,例如,可以通过黑名单指定特定实体设备的上报数据不被分发,直接按照基于实体设备划分主题分区的结果由相应的执行服务器处理;又如,可以通过白名单指定特定实体设备的上报数据需要考虑规则维度进行分发。
设定实体号可以为预先设定的实体号(entityId),例如设备ID、区域ID或产品ID,用于指定特定实体设备的上报数据及关联的规则需要被分发或不被分发。
设定数据类型(entityType)可以为预先设定的数据类型,例如实体设备产生的数据或天气类型的数据等,利用设定数据类型可以指定特定类型的上报数据及关联的规则需要被分发或不被分发。
S250、按照设定分发策略将上报数据以及规则以组合的形式分发至主题分区。
S260、按照设定数据结构记录上报数据和规则的处理信息。
本实施例中,设定数据结构用于统一描述所有上报数据和规则从上报到分发后的处理逻辑,便于追溯和管理。
可选的,处理信息包括以下至少一项:链路追踪标识;上报事件标识;实体号;设备类型标识;数据名称;数据结构;上报数据点;规则处理时间;设备上报时间;规则分发时间;处理器类型;数据属性。
示例性的,设定数据结构如下:
Figure BDA0003748078710000131
Figure BDA0003748078710000141
需要说明的是,本实施例不限定S260和其他步骤的执行顺序。可以理解的是,上报数据和规则的处理信息在获取、分发、重分发以及处理等过程中都可以被实时记录。
图4是根据本发明一实施例提供的一种将上报数据和规则分发至主题分区的示意图。如图4所示,首先从基于实体设备的主题分区中读取上报数据并确定关联的规则,此过程可以理解为针对上报数据的消费过程;然后判断是否打开设定分发策略,如果设定分发策略未打开(N),则上报数据和规则直接按照基于实体设备的主题分区的分发结果由相应的执行服务器处理,执行规则中的操作即可;如果设定分发策略打开(Y),则需要将上报数据和规则重分发至主题分区,此处的主题分区是基于实体设备和规则两个维度分发得到的,重分发过程可能会改变每个规则所分发到的主题分区,从而改变相应的执行服务器,以平衡各执行服务器的处理压力,保证系统的负载均衡和业务稳定性,各规则由重分发后的执行服务器处理,然后执行规则中的操作。
上述实施例的数据处理方法,可以根据需求灵活采用基于哈希运算的分发策略或加权轮询的分发策略,将上报数据及关联的规则以组合为单位分发至主题分区;通过合理设置哈希运算的关键字和主题分区的配置范围,或者根据处理能力确定各执行服务器的权重,在保证负载均衡的同时,也能够充分利用网络资源,提高分发和处理效率;通过对上报数据和规则进行过滤,使分发及处理方式更灵活,可满足不同场景的实际需求;通过基于实体设备划分主题分区可以优先保证各实体设备的执行顺序,在此基础上采用设定分发策略可以实现上报数据与规则的重分发,进一步完善系统性能。
图5是根据本发明一实施例提供的一种数据处理装置的结构示意图。如图5所示,该装置包括:
获取模块310,设置为获取实体设备的上报数据,并确定与所述上报数据关联的规则;
分发模块320,设置为按照设定分发策略将所述上报数据以及所述规则以组合的形式分发至主题分区,其中,每个所述组合包括一个实体设备的上报数据与所关联的单个规则,每个所述主题分区对应一个执行服务器,所述执行服务器用于处理对应所述主题分区中的上报数据以及规则。
本实施例的数据处理装置,通过将上报数据按照实体设备和规则两个维度,分发至不同的主题分区,将规则的处理压力分给各执行服务器,解决了数据倾斜、单个服务器的负载压力过大带来的业务不稳定问题。
在一实施例中,所述设定分发策略包括基于哈希运算的分发策略;
分发模块320,包括:
计算单元,设置为根据所述组合对应的实体设备的实体号和所述组合对应的规则的编号确定关键字,基于哈希运算将所述关键字转换为对应的哈希值;
取模单元,根据所述组合对应的哈希值的绝对值对主题分区的数量进行取模运算,得到所述组合对应的模值;
分发单元,根据所述组合对应的模值将所述组合分发至对应的主题分区。
在一实施例中,分发单元,设置为:
确定与所述组合对应的模值相匹配的配置范围,将所述组合分发至所匹配的配置范围对应的主题分区;
其中,所述配置范围根据主题分区设置,所述配置范围包括配置值或配置区间。
在一实施例中,所述设定分发策略包括加权轮询的分发策略;
分发模块320,包括:
权值确定单元,设置为根据各所述执行服务器的处理能力确定各所述执行服务器的权值;
轮流分发单元,设置为根据各所述执行服务器的权值,将各组合轮流分发至各所述执行服务器的主题分区。
在一实施例中,轮流分发单元,设置为:
轮流将每个执行服务器作为目标服务器,并将与所述目标服务器的权值相符的数量的组合分发至所述目标服务器的主题分区,直至各所述组合均分发至相应的主题分区。
在一实施例中,该装置还包括:
过滤模块,设置为在按照设定分发策略将所述上报数据以及所述规则以组合的形式分发至主题分区之前,根据以下至少一项对所述上报数据以及所述规则进行过滤:
所述设定分发策略的开关状态;过滤名单;设定实体号;设定数据类型。
在一实施例中,获取模块310,包括:
分区单元,设置为基于实体设备划分主题分区,其中,每个主题分区用于存储一个实体设备的上报数据;
读取单元,设置为从各所述主题分区中读取所述上报数据。
在一实施例中,该装置还包括:
记录模块,设置为按照设定数据结构记录所述上报数据和所述规则的处理信息;
其中,所述处理信息包括以下至少一项:
链路追踪标识;上报事件标识;实体号;设备类型标识;数据名称;数据结构;上报数据点;规则处理时间;设备上报时间;规则分发时间;处理器类型;数据属性。
本发明实施例所提供的数据处理装置可执行本发明任意实施例所提供的数据处理方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节可参见上述任意实施例。
图6是根据本发明一实施例提供的一种数据处理系统的结构示意图。如图6所示,该系统包括:包括:实体设备410、执行服务器420以及如上述任意实施例所述的分发服务器430;实体设备410用于向分发服务器430发送上报数据;执行服务器420用于处理分发至相应的主题分区的上报数据以及规则。
本实施例的数据处理系统,分发服务器通过将上报数据按照实体设备和规则两个维度,分发至不同的主题分区,将规则的处理压力分给各执行服务器,解决了数据倾斜、单个服务器的负载压力过大带来的业务不稳定问题。
在一实施例中,执行服务器420具体用于:
将分发至主题分区的上报数据转换为标准格式,并从标准格式的上报数据中提取元数据信息;
根据元数据信息确定业务数据;
将业务数据以及分发至主题分区的规则加入规则池;
触发执行器执行规则池中的规则。
需要说明的是,此处执行服务器对应的主题分区是以实体设备和规则两个维度分发得到的主题分区。
图7是根据本发明一实施例提供的一种执行服务器处理上报数据和规则的示意图。如图7所示,执行服务器可以从其对应的主题分区中读取上报数据,由于不同实体设备的上报数据的格式可能不同,可以对其进行格式转换,得到标准格式的上报数据,并根据其中的元数据信息确定业务数据;其对应的主题分区中还存储有与上报数据关联的规则,将业务数据这些规则进行匹配,将匹配成功(即业务数据满足规则中的条件)的业务数据和规则加入规则池,由执行器依次执行规则池中各规则的操作。此外,还可以增加规则过滤的流程,例如根据规则的黑名单或白名单、业务逻辑(例如在特定天气条件下执行或在特定时间内执行等)进行过滤,或者剔除无效规则(例如执行服务器禁用的操作)等。
本发明实施例所提供的数据处理系统可实现本发明任意实施例所提供的数据处理方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节可参见上述任意实施例。
图8示出了可以用来实施本发明的实施例的分发服务器10的结构示意图。分发服务器10旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。分发服务器10可以是云端服务器、消息中心、控制中心或集群中的主服务器等。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图8所示,分发服务器10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储分发服务器10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
分发服务器10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许分发服务器10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如数据处理方法。
在一些实施例中,数据处理方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到分发服务器10上。当计算机程序加载到RAM13并由处理器11执行时,可以执行上文描述的方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据处理方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在分发服务器10上实施此处描述的系统和技术,该分发服务器10具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给分发服务器10。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (9)

1.一种数据处理方法,其特征在于,包括:
获取实体设备的上报数据,并确定与所述上报数据关联的规则;
按照设定分发策略将所述上报数据以及所述规则以组合的形式分发至主题分区,其中,每个所述组合包括一个实体设备的上报数据与所关联的单个规则,每个所述主题分区对应一个执行服务器,所述执行服务器用于处理对应所述主题分区中的上报数据以及规则;
所述按照设定分发策略将所述上报数据以及所述规则以组合的形式分发至主题分区,包括:
根据各所述执行服务器的处理能力确定各所述执行服务器的权值;
根据各所述执行服务器的权值,将各所述组合轮流分发至各所述执行服务器的主题分区;
根据各所述执行服务器的权值,将各所述组合轮流分发至各所述执行服务器的主题分区,包括:
轮流将每个执行服务器作为目标服务器,并将与所述目标服务器的权值相符的数量的组合分发至所述目标服务器的主题分区,直至各所述组合均分发至相应的主题分区。
2.根据权利要求1所述的方法,其特征在于,在按照设定分发策略将所述上报数据以及所述规则以组合的形式分发至主题分区之前,还包括:
根据以下至少一项对所述上报数据以及所述规则进行过滤:
所述设定分发策略的开关状态;过滤名单;设定实体号;设定数据类型。
3.根据权利要求1所述的方法,其特征在于,所述获取实体设备的上报数据,包括:
基于实体设备划分主题分区,其中,每个主题分区用于存储一个实体设备的上报数据;
从各所述主题分区中读取所述上报数据。
4.根据权利要求1所述的方法,其特征在于,还包括:
按照设定数据结构记录所述上报数据和所述规则的处理信息;
其中,所述处理信息包括以下至少一项:
链路追踪标识;上报事件标识;实体号;设备类型标识;数据名称;数据结构;上报数据点;规则处理时间;设备上报时间;规则分发时间;处理器类型;数据属性。
5.一种数据处理装置,其特征在于,包括:
获取模块,设置为获取实体设备的上报数据,并确定与所述上报数据关联的规则;
分发模块,设置为按照设定分发策略将所述上报数据以及所述规则以组合的形式分发至主题分区,其中,每个所述组合包括一个实体设备的上报数据与所关联的单个规则,每个所述主题分区对应一个执行服务器,所述执行服务器用于处理对应所述主题分区中的上报数据以及规则;
所述分发模块,包括:
权值确定单元,设置为根据各所述执行服务器的处理能力确定各所述执行服务器的权值;
轮流分发单元,设置为根据各所述执行服务器的权值,将各组合轮流分发至各所述执行服务器的主题分区。
所述轮流分发单元设置为:
轮流将每个执行服务器作为目标服务器,并将与所述目标服务器的权值相符的数量的组合分发至所述目标服务器的主题分区,直至各所述组合均分发至相应的主题分区。
6.一种分发服务器,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-4中任一所述的数据处理方法。
7.一种数据处理系统,其特征在于,包括:实体设备、执行服务器以及如权利要求6所述的分发服务器;其中,
所述实体设备用于向所述分发服务器发送上报数据;
所述执行服务器用于处理分发至相应的主题分区的上报数据以及规则。
8.根据权利要求7所述的系统,其特征在于,所述执行服务器具体用于:
将分发至所述主题分区的上报数据转换为标准格式,并从标准格式的上报数据中提取元数据信息;
根据所述元数据信息确定业务数据;
将所述业务数据以及分发至所述主题分区的规则加入规则池;
触发执行器执行所述规则池中的规则。
9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,其特征在于,所述计算机指令用于使处理器执行时实现权利要求1-4中任一所述的数据处理方法。
CN202210835821.1A 2022-04-13 2022-04-13 数据处理方法、装置、分发服务器、系统及存储介质 Pending CN115237595A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210835821.1A CN115237595A (zh) 2022-04-13 2022-04-13 数据处理方法、装置、分发服务器、系统及存储介质

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202210381778.6A CN114461407B (zh) 2022-04-13 2022-04-13 数据处理方法、装置、分发服务器、系统及存储介质
CN202210835821.1A CN115237595A (zh) 2022-04-13 2022-04-13 数据处理方法、装置、分发服务器、系统及存储介质

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN202210381778.6A Division CN114461407B (zh) 2022-04-13 2022-04-13 数据处理方法、装置、分发服务器、系统及存储介质

Publications (1)

Publication Number Publication Date
CN115237595A true CN115237595A (zh) 2022-10-25

Family

ID=81418436

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202210835821.1A Pending CN115237595A (zh) 2022-04-13 2022-04-13 数据处理方法、装置、分发服务器、系统及存储介质
CN202210381778.6A Active CN114461407B (zh) 2022-04-13 2022-04-13 数据处理方法、装置、分发服务器、系统及存储介质

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202210381778.6A Active CN114461407B (zh) 2022-04-13 2022-04-13 数据处理方法、装置、分发服务器、系统及存储介质

Country Status (1)

Country Link
CN (2) CN115237595A (zh)

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102955717B (zh) * 2012-11-05 2015-05-20 北京奇虎科技有限公司 在分布式消息处理系统中的消息管理设备和方法
CN103942287B (zh) * 2014-04-10 2017-06-06 大唐移动通信设备有限公司 海量数据处理方法、数据库服务器及应用服务器
CN107273100B (zh) * 2017-06-15 2021-06-08 华为技术有限公司 一种数据实时处理及存储装置
US10922284B1 (en) * 2017-09-25 2021-02-16 Cloudera, Inc. Extensible framework for managing multiple Hadoop clusters
CN108038226A (zh) * 2017-12-25 2018-05-15 郑州云海信息技术有限公司 一种数据快速采集系统及方法
CN108737539A (zh) * 2018-05-18 2018-11-02 济南浪潮高新科技投资发展有限公司 一种基于工业互联网平台IOT Hub服务的方法
CN110941497B (zh) * 2018-09-21 2022-05-24 马上消费金融股份有限公司 一种数据发送方法及装置
CN109493076B (zh) * 2018-11-09 2022-06-17 武汉斗鱼网络科技有限公司 一种Kafka消息唯一消费方法、系统、服务器及存储介质
CN109709389B (zh) * 2018-11-30 2021-09-28 珠海派诺科技股份有限公司 针对电力仪表分布式大容量实时数据采样告警方法和系统
CN110995851B (zh) * 2019-12-11 2021-12-24 贝壳找房(北京)科技有限公司 消息处理方法、装置、存储介质及设备
CN112269661B (zh) * 2020-10-30 2022-04-15 上海哔哩哔哩科技有限公司 基于Kafka集群的分区迁移方法和装置
CN112671870B (zh) * 2020-12-16 2023-12-12 珠海格力电器股份有限公司 一种数据处理方法、装置、电子设备及存储介质
CN112988423A (zh) * 2021-03-19 2021-06-18 北京京东拓先科技有限公司 消息消费、消息分发方法、装置、服务器及存储介质
CN114048217A (zh) * 2021-10-21 2022-02-15 微民保险代理有限公司 增量数据的同步方法和装置、电子设备和存储介质
CN113946449A (zh) * 2021-10-29 2022-01-18 北京工业大学 一种基于Kafka的消费者端负载均衡方法

Also Published As

Publication number Publication date
CN114461407A (zh) 2022-05-10
CN114461407B (zh) 2022-08-26

Similar Documents

Publication Publication Date Title
US9954758B2 (en) Virtual network function resource allocation and management system
CN112860695B (zh) 监控数据查询方法、装置、设备、存储介质及程序产品
US20210119854A1 (en) Scalable statistics and analytics mechanisms in cloud networking
CN108804383B (zh) 基于度量空间的支撑点并行枚举方法及装置
CN114911598A (zh) 任务调度方法、装置、设备以及存储介质
CN115658311A (zh) 一种资源的调度方法、装置、设备和介质
CN112615795A (zh) 流量控制方法、装置、电子设备、存储介质及产品
CN114461407B (zh) 数据处理方法、装置、分发服务器、系统及存储介质
CN116594563A (zh) 分布式存储扩容方法、装置、电子设备和存储介质
CN111858657B (zh) 一种基于高频数据处理进行数据并行查询加速的方法和设备
CN114035906A (zh) 虚拟机迁移方法、装置、电子设备及存储介质
CN115328612A (zh) 资源分配方法、装置、设备以及存储介质
CN114237902A (zh) 一种服务部署方法、装置、电子设备及计算机可读介质
CN108595367B (zh) 一种基于局域网内计算机集群的服务器系统
CN114817344A (zh) 一种数据获取方法和装置
KR102569002B1 (ko) 멀티 클러스터 환경에서의 가상 머신 자동 최적화를 위한 장치 및 방법
CN114328604B (zh) 一种提高集群数据采集能力的方法、装置及介质
CN115577958A (zh) 一种风险处理方法、装置、设备以及存储介质
CN116954922A (zh) 一种分布式存储方法、装置、设备和介质
CN117411761A (zh) 消息处理方法、装置、计算机设备及计算机可读存储介质
CN116361008A (zh) 基于电力物联网的任务均衡分配方法、装置、设备和介质
CN116801001A (zh) 视频流的处理方法、装置、电子设备及存储介质
CN117667397A (zh) 一种gpu资源调度方法、装置、电子设备及存储介质
CN113946702A (zh) 图像特征的存储方法、装置、存储介质及电子设备
CN116781694A (zh) 一种应用于边缘计算系统的调度方法、装置、设备及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination