CN104731660B - 数据分配方法、装置和系统 - Google Patents
数据分配方法、装置和系统 Download PDFInfo
- Publication number
- CN104731660B CN104731660B CN201510072174.3A CN201510072174A CN104731660B CN 104731660 B CN104731660 B CN 104731660B CN 201510072174 A CN201510072174 A CN 201510072174A CN 104731660 B CN104731660 B CN 104731660B
- Authority
- CN
- China
- Prior art keywords
- server
- comparison
- management
- data
- node
- 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.)
- Active
Links
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种数据的分配方法、装置和系统,属于数据处理领域。所述方法包括步骤1:获取比对服务器的处理性能信息;步骤2:根据所述处理性能信息,计算所有比对服务器的总处理性能,以及每个比对服务器的处理性能相对于所有比对服务器的总处理性能的占比;步骤3:根据所述占比,将所有数据分配至每个比对服务器。通过本发明的数据分配方法,能够实现数据的合理分配并有效提高数据处理效率。
Description
技术领域
本发明涉及数据处理领域,特别是指一种数据分配方法、装置和系统。
背景技术
数据处理是对数据的采集、储存、检索、加工、变换和传输。从大量的冗杂抽象的数据中抽取并推导出有某些特定价值或意义的数据。数据处理离不开软件和服务器的支持,但是当前软件技术中对于大数据量处理以及高并发处理是一个技术瓶颈,所以随着数据量日益庞大,大数据处理以及高并发要求,对服务器的处理能力提出了更高的要求。
现有技术中,为了方便管理,增强数据并行处理能力,常采用并行数据处理结构,包括应用服务器、管理服务器、比对服务器。管理服务器与比对服务器进行通讯,应用服务器与管理服务器之间进行通讯。这种结构极大地提高了数据的处理能力,但由于比对服务器数量较多,极易造成各个比对服务器间的数据分配不合理,进而导致比对服务器超负荷运行或者性能得不到充分发挥。因此,如何能科学合理的分配各服务器的数据量,目前还没有较好的解决方案。
发明内容
本发明要解决的技术问题是提供一种能够实现数据的合理分配并有效提高数据处理效率的数据分配方法、装置和系统。
为解决上述技术问题,本发明提供的技术方案如下:
一种数据分配方法,包括:
步骤1:获取比对服务器的处理性能信息;
步骤2:根据所述处理性能信息,计算所有比对服务器的总处理性能,以及每个比对服务器的处理性能相对于所有比对服务器的总处理性能的占比;
步骤3:根据所述占比,将所有数据分配至每个比对服务器。
一种管理服务器,包括:
获取模块,用于获取比对服务器的处理性能信息;
第一计算模块,用于根据所述处理性能信息,计算所有比对服务器的总处理性能,以及每个比对服务器的处理性能相对于所有比对服务器的总处理性能的占比;
数据分配模块,用于根据所述占比,将所有数据分配至每个比对服务器。
一种服务器系统,包括应用服务器、至少一个权利要求6所述的管理服务器、以及至少两个比对服务器;所述应用服务器和管理服务器通过网络连接,所述管理服务器和比对服务器也通过网络连接;所述应用服务器和管理服务器为相同或不同的服务器。
本发明具有以下有益效果:
与现有技术相比,本发明的数据分配方法,首先根据比对服务器的处理性能信息,计算所有比对服务器的总处理性能,以及每个比对服务器的处理性能相对于所有比对服务器的总处理性能的占比,然后根据占比将所有数据分配至每个比对服务器。本发明依据比对服务器的处理性能,把数据分配到相应的比对服务器中,避免了比对服务器超负荷运行或者性能得不到充分发挥的情况,有效的解决了处理性能不同的多服务器协同工作的问题,使数据的分配具有合理性;本发明还有效的解决了大数据量和高并发数据的处理问题,提升了的数据处理能力,加快了数据处理速度,有效的提高了数据处理效率。
附图说明
图1为本发明的数据分配方法的流程示意图一;
图2为本发明的数据分配方法的流程示意图二;
图3为本发明的数据分配方法的流程示意图三;
图4为本发明的管理服务器的结构示意图一;
图5为本发明的管理服务器的结构示意图二;
图6为本发明的管理服务器的结构示意图三;
图7为本发明的服务器系统的结构示意图;
图8为本发明的服务器系统的流程示意图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
名词解释
1、识别:用给定的生物特征从一定范围的生物模板集合中找出一定数量的相符的生物模板,并根据生物模板获取对应的用户的过程,又称1:N比对,即为生物特征与多用户的生物特征模板比对。
2、认证:给定生物特征和用户的唯一标识,用给定的生物特征和该用户标识所关联的生物模板进行比对判断是否一致的过程;又称1:1比对,即,生物特征与指定用户的生物特征模板比对。
3、比对节点/比对服务器:一套运行生物特征比对算法的程序,即为生物特征的比对以及数据处理的服务器。
4、动态负载:实时动态的计算每个比对(包括新增、删除)服务器的数据范围。
5、管理节点/管理服务器:用于数据管理以及请求分发的服务器。
6、分片:数据范围。
7、分片号:数据范围的标识,比如分行号、网点号或者用户身份证号等。
8、应用系统/应用服务器:提供系统对外的接口与业务逻辑的实现的服务器。
9、hash算法:将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为hash值。hash值是一段数据唯一且极其紧凑的数值表示形式。
一方面,本发明提供一种数据分配方法,如图1所示,包括:
步骤1:获取比对服务器的处理性能信息;
本步骤中,管理服务器可以通过主动获取、被动接收或者第三方检测等方式,获取所有比对服务器的处理性能信息。
步骤2:根据处理性能信息,计算所有比对服务器的总处理性能,以及每个比对服务器的处理性能相对于所有比对服务器的总处理性能的占比;
本步骤中,管理服务器通过计算,得出每个比对服务器的处理性能相对于总处理性能所占的比例,为后续的数据分配提供依据。
步骤3:根据上述占比,将所有数据分配至每个比对服务器。
本步骤中,管理服务器把待处理的数据分成与占比相对应的份数,然后把分配好的数据分发给相应的比对服务器(例如,可以将这些数据的标识(如序号等)分发给比对服务器,由比对服务器到数据库中读取相应数据即可;或者,也可以直接指示数据库将相应数据传给比对服务器),达到对数据合理分配的目的。
本发明依据比对服务器的处理性能,把数据合理的分配到相应的比对服务器中,避免了比对服务器超负荷运行或者性能得不到充分发挥的情况,有效的解决了大数据量和高并发数据的处理问题,同时有效的解决了处理性能不同的多服务器协同工作的问题,提升了总体的数据处理能力,也加快了数据处理速度。
上述步骤1优选包括:接收比对服务器发送的注册请求,其中所述注册请求中包括比对服务器自身的处理性能信息。这样使得管理服务器在获取比对服务器注册请求的同时也能获得比对服务器的处理性能信息,管理服务器可以方便快捷的获取比对服务器的处理性能信息,这些信息被作为管理服务器为比对服务器分配数据的依据,并可以存储在管理服务器上。
当然,步骤1中管理服务器还可以通过各种其他方式获取比对服务器的处理性能信息,例如:人工向管理服务器输入比对服务器的处理性能信息、管理服务器通过第三方干预获得比对服务器的处理性能信息和比对服务器向管理服务器单独发送比对服务器的处理性能信息等,均不影响本发明技术方案的实现。
本发明中,优选的,对于每条用户记录,预先生成有分片号,其中每条用户记录中的一个或多个字段值经过hash运算计算得到hash值,对该hash值取靠前的一定位数得到所述分片号,所述一个或多个字段包括用户ID字段。同时,步骤3进一步为:根据所述占比,将所述分片号分配至每个比对服务器。
本步骤中,采用hash运算对数据进行处理,进而得到分片号,由此判断每个比对服务器的数据处理性能,为后续的数据分配提供依据。hash运算能够使任意长度的数据转换成固定长度的数据,方便数据的统一管理和查询,另外,分片号是通过对hash值靠前一定位数的选取得到的,之后,管理服务器按照比对服务器处理性能的占比,把分片号分成与占比相对应的份数,然后将分配好的分片号分发给相应比对服务器。该方法通过分片号方便了数据的分配,没有增加比对服务器工作负担。
例如,hash值可以仅由每条用户记录中的用户ID字段经过hash运算计算得到,也可以由每条用户记录中的用户ID字段、网点号(以银行的用户数据为例)这两个字段经过hash运算计算得到。这样做的好处在于,后续在进行1:1认证过程中,可以经过同样的运算过程,得知待认证用户的分片号是多少,然后仅将1:1认证任务分配至对应的那个比对服务器上。
本步骤中,具体选取几位作为分片号,可以结合比对节点的个数来选择,例如,取hash值的前两位作为分片号,可以最多支持扩展255个比对节点,取hash值的前四位作为分片号,可以最多支持扩展65535个比对节点。
本发明中,如图2所示,步骤1之前还可以包括:
步骤10:当比对服务器增加或减少时,执行步骤1。
本步骤中,可以对比对服务器的运行状态进行实时不间断的监听,及时发现出现故障和新增的比对服务器,从而获得比对服务器最新的工作状态,进而及时调整数据分配比例,重新分配数据。
依靠上述监听方法,管理服务器可以实时的对比对服务器进行动态调整。当有比对服务器发生故障时,管理服务器可以将发生故障的比对服务器上加载的数据按照处理性能的比例分配给其它比对服务器,而无需停止现有服务器;当发送故障的比对服务器恢复或者有新增的比对服务器,管理服务器会将恢复的或新增的比对服务器纳入管理,管理服务器动态计算数据分片,并通知比对服务器进行数据加载。保证了管理服务器以及比对服务器的高扩展性和有效性。真正意义上解决了不同服务器之间的松耦合以及连接状态无关联性的问题,确保了系统运行的稳定性,大大降低了由于比对服务器原因造成系统问题的可能性。
本发明中,当管理服务器接到1:1认证比对任务请求时,如图3所示,可以包括:
步骤4:接收1:1认证比对任务请求,所述1:1认证比对任务请求中携带有用于所述hash运算的字段;
本步骤中,为后续的hash运算提供输入量。
步骤5:对所述1:1认证比对任务请求中用于hash运算的字段进行相同的hash运算得到hash值,并对该hash值同样取靠前的一定位数得到分片号;
本步骤中,采用hash运算对数据进行处理,进而得到分片号,由此判断每个比对服务器的数据处理性能,为后续的数据分配提供依据。
步骤6:根据得到的分片号,将该1:1认证比对任务请求分配至相应的比对服务器。
本步骤中,管理服务器能够合理的将1:1认证比对任务请求分发给对应数据范围的比对服务器,避免了分配给无关的比对服务器既得不到期望的比对结果又浪费了比对服务器处理能力的情况。
本发明中,在执行1:N识别比对任务时,由于各个比对服务器所分得的数据量符合自身的处理能力,极大的加快了各比对服务器的数据处理速度,同时,对于多个比对服务器同时工作的情况,能够保证每个比对服务器的工作进度大致相同,加快了管理服务器进行比对结果汇总的时间,提高了总体的运行速度。
另一方面,与上述的方法相对应,本发明提供了一种数据分配装置,即管理服务器11,如图4所示,包括:
获取模块101,用于获取比对服务器的处理性能信息;
第一计算模块102,用于根据所述处理性能信息,计算所有比对服务器的总处理性能,以及每个比对服务器的处理性能相对于所有比对服务器的总处理性能的占比;
数据分配模块103,用于根据所述占比,将所有数据分配至每个比对服务器。
本发明依据比对服务器的处理性能,把数据合理的分配到相应的比对服务器中,避免了比对服务器超负荷运行或者性能得不到充分发挥的情况,有效的解决了大数据量和高并发数据的处理问题,同时有效的解决了处理性能不同的多服务器协同工作的问题,提升了总体的数据处理能力,也加快了数据处理速度。
本发明中的获取模块101还可以进一步用于接收比对服务器发送的注册请求,其中所述注册请求中包括比对服务器自身的处理性能信息。这样使得管理服务器在获取比对服务器注册请求的同时也能获得比对服务器的处理性能信息,管理服务器可以方便快捷的获取比对服务器的处理性能信息,这些信息被作为管理服务器为比对服务器分配数据的依据,并存储在管理服务器上。
本发明中的管理服务器11还可以进一步包括:
对于每条用户记录,预先生成有分片号,其中每条用户记录中的一个或多个字段值经过hash运算计算得到hash值,对该hash值取靠前的一定位数得到所述分片号;同时,数据分配模块103,进一步用于根据所述占比,将分片号分配至每个比对服务器。
本发明中,采用hash运算对数据进行处理,进而得到分片号,由此判断每个比对服务器的数据处理性能,为后续的数据分配提供依据。hash运算能够使任意长度的数据转换成固定长度的数据,方便数据的统一管理和查询,另外,分片号是通过对hash值靠前一定位数的选取得到的,之后,数据分配模块103按照比对服务器处理性能的占比,把分片号分成与占比相对应的份数,然后将分配好的分片号分发给相应比对服务器。该方法通过分片号方便了数据的分配,没有增加比对服务器工作负担。
为了避免动态负载对管理服务器产生的影响,如图5所示,管理服务器11还进一步包括:
跳转模块109,用于当比对服务器增加或减少时,转至获取模块101。
本发明中,当有比对服务器增加或者减少时,跳转模块109可以使进程跳转至获取模块101,进而及时调整数据分配比例,重新分配数据。保证了管理服务器以及比对服务器的高扩展性和有效性。真正意义上解决了不同服务器之间的松耦合以及连接状态无关联性的问题,确保了系统运行的稳定性,大大降低了由于网络或者服务器原因造成的系统问题的可能性。
本发明中,如图6所示,管理服务器还可以进一步包括:
请求接收模块104,用于接收1:1认证比对任务请求,所述1:1认证比对任务请求中携带有用于所述hash运算的字段;
第二计算模块105,用于对所述1:1认证比对任务请求中用于hash运算的字段进行相同的hash运算得到hash值,并对该hash值同样取靠前的一定位数得到分片号;
任务分配模块106,用于对所述1:1认证比对任务请求,根据得到的分片号,将该1:1认证比对任务请求分配至相应的比对服务器;
本发明中,任务分配模块106能够合理的将1:1认证比对任务请求分发给对应数据范围的比对服务器,避免了分配给无关的比对服务器既得不到期望的比对结果又浪费了比对服务器处理能力的情况。
本发明中,在执行1:N识别比对任务时,由于各个比对服务器所分得的数据量符合自身的处理能力,极大的加快了各比对服务器的数据处理速度,同时,对于多个比对服务器同时工作的情况,能够保证每个比对服务器的工作进度大致相同,加快了管理服务器进行比对结果汇总的时间,提高了总体的运行速度。
再一方面,与上述的数据分配装置相对应,本发明提供一种数据分配系统,即服务器系统,包括应用服务器、上述管理服务器、以及至少两个比对服务器;应用服务器和管理服务器通过网络连接,管理服务器和比对服务器也通过网络连接;应用服务器和管理服务器为相同或不同的服务器。
本发明中的服务器系统分为应用服务器、管理服务器和比对服务器。其中,应用服务器用于提供系统对外的接口与业务逻辑的实现;管理服务器用于管理比对服务器、接收比对服务器发送的生物特征相关请求和将请求转发给比对服务器等;比对服务器用于进行生物特征相关算法调用与调度、生物特征数据的加载与同步等。该服务器系统中,每个管理服务器连接所有比对服务器,每个比对服务器连接所有管理服务器,多个管理服务器之间通过设置唯一的主管理服务器,可以避免多个管理服务器之间权限的冲突,提高系统的运算效率。
本发明的系统功能概述
本发明提供一种动态负载处理方法、装置和系统,包括至少两个管理服务器和至少两个比对服务器,管理服务器和比对服务器启动时,将其中一个管理服务器注册为主管理服务器,主管理服务器根据比对服务器的个数,计算出每个比对服务器要加载的数据范围,并记录每个比对服务器的数据范围,管理服务器接收到比对请求之后,使用要查询数据的分片号与比对服务器绑定,以此决定接收到比对请求之后,通知哪一个所述比对服务器进行数据加载;
当管理服务器和比对服务器出现宕机时,管理服务器会将此服务器上加载的数据平均分发到其他的比对服务器上,当宕机的服务器恢复或者新增服务器之后,监听器会通知管理服务器将恢复的或者新增的服务器纳入管理,实现了对动态负载的有效处理。当主管理服务器宕机后,系统会进行计算,注册另外一个所述管理服务器作为主管理服务器,进而实现了系统的故障转移,保证了系统的稳定运行。
本发明中,当管理服务器和比对服务器出现宕机或者新增时,无需停止现有服务器。真正意义上实现了不同服务器之间的送耦合以及连接状态的无关联性,确保了系统的稳定运行,大大降低了由于网络或者服务器原因造成的系统问题。
作为本发明的一种改进,管理服务器接收到请求之后,使用要查询数据的分片号计算一个HASH值,HASH值取前2位作为与比对服务器绑定使用的KEY值,能够支持扩展255个比对服务器。
作为本发明的另外一种实施例,管理服务器接收到请求之后,使用要查询数据的分片号计算一个HASH值,HASH值取前四位作为与比对服务器绑定使用的KEY值,则最多支持扩展65535个比对服务器。
本发明的一种情况,当请求是1:1比对请求,管理服务器根据请求的分片号,计算得到HASH值,取HASH值的前2位来确定将请求分发到对应数据的比对服务器上,比对服务器进行生物特征比对以及数据处理,并将处理结构返回。
本发明的另一种情况,当请求是1:N和N:N比对请求,管理服务器将请求发送到所有的比对服务器,比对服务器根据自己的数据范围处理请求后将结果返回到所述管理服务器,所有比对服务器处理完成之后,管理服务器合并所有比对服务器的处理结果,管理服务器能够实现请求平均分发到所有的比对服务器上。
为了能够有效实现系统的故障转移,当部署服务器出现宕机时,管理服务器将此服务器上加载的数据平均分发到其他的比对服务器上,并且网络连接的监听器实时监听所有管理服务器与比对服务器的连接状态。
本发明中,当宕机的服务器恢复或者有新增的服务器时,监听器会第一时间获得服务器服务器的状态,并通知管理服务器把恢复的或者新增的服务器纳入管理,管理服务器动态计算数据分片,并通知所述比对服务器进行数据加载,保证了由于负载的变化而造成的系统问题,进一步提高了系统的稳定性。
本发明的系统架构
整体结构如图7所示:
整体结构说明:在整体结构上,应用系统与管理节点间为N:N的结构,即一个应用系统可以连接多个管理节点,多个应用系统也可以连接一个管理节点。管理节点与比对节点间也是一个N:N的结构。
应用系统与应用系统间不进行通讯;管理节点与管理节点间也不进行通讯;比对节点与比对节点间也不进行通讯。
应用系统仅与管理节点进行通讯,管理节点与比对节点进行通讯,应用系统不直接与比对节点进行通讯。
通讯方式:应用系统与管理节点、管理节点与比对节点间都是通过网络进行通讯,通讯协议为带长度校验的json格式。
管理节点功能与详细描述:
管理节点分为普通管理节点与主管理节点两类,主管理节点只能有一个。主管理节点通过管理节点与比对节点的自协商在运行期间动态设置。管理节点间不进行通讯,即各管理节点不知道其它管理节点的存在,也不关心其它管理节点的存在。主管理节点由最后一个发送设置主管理节点通知的比对节点进行确定。
确定主管理节点的协商机制如下:
管理服务器和比对服务器启动时,将一个管理节点注册为主管理节点,主管理节点会根据比对节点的个数,计算每个比对节点要加载的数据范围,并记录每个比对节点的数据范围。同时将分片号与比对节点绑定,以此决定接收到比对请求之后通知哪一个比对节点进行数据加载。具体如下:
管理节点启动后等待接收比对节点发送的消息。比对节点启动后向所有的管理节点询问每个管理节点是否是主管理节点,若已经存在主管理节点或有多个主管理节点时,通知除第一个返回的主管理节点外的其它的所有主管理节点为非主管理节点;不存在主管理节点时,设置第一个返回的管理节点为主管理节点,并通知其它管理节点为非主管理节点。
管理节点收到设置主管理节点的请求后,将自己设置为主管理节点或非主管理节点,并将新的状态(是否是主管理节点)通知所有注册到当前管理节点的比对节点上。
在所有节点启动完成后,通过上述循环广播机制,将可唯一确定一台管理节点为主管理节点。
管理节点作为应用系统与比对节点间的桥梁,有多种作用:
1、管理比对节点
管理节点需要保证比对节点的可用性,因此管理节点内置了比对节点状态与网络连接的检测机制:
通过定时检测与状态监听来检查管理节点的可用性,应用系统在发送生物特征运算请求时,从可用的管理节点中通过轮训选择一个可用的管理节点,并将生物特征运算请求发送到这个管理节点上。
2、管理数据
根据场景的不同,每一个生物特征由根据场景确定的一个KEY进行标识,并根据这个KEY用一定的算法计算一个分片号,使得对任意数量的KEY,每个分片中包含的KEY的数量是均匀分布的。
管理节点接收到请求之后,使用要查询数据的分片号计算一个HASH值,例如,取HASH值的前两位作为与比对服务器绑定使用的KEY值,以此来决定将请求发送到哪一个比对节点上。两位最多可支持扩展255个比对节点。若使用HASH值的前4位绑定比对节点,则最多支持65535个比对节点。
比对服务器在安装时,运行内置的标准运行生物运算能力测试程序,得到一个可提供的生物特征运算能力数据,并将此数据配置到比对节点内。
比对节点在启动时,将自己的ID和此生物特征运算能力数值和其它相关数据向所有的管理服务器进行注册。非主管理服务器仅接收注册请求,但不做处理。主管理节点在接收到请求后,将此比对节点加入到待处理列表。主管理节点每隔一段时间检查这个列表,统计当前已经注册的比对节点和这个列表中注册的比对节点的总生物特征运算能力,计算出每个节点相对总生物特征运算能力的的占比,根据每个节点的占比计算每个节点的就分配的数据量,结合各节点当前已经分配的数据范围(分片号),在尽量少调整数据范围的原则下,确定各节点新的数据范围(分片号),并将新的数据范围通知给比对节点。比对节点根据新的数据范围与当前已缓存的数据范围对比后得到需要调整的分片,根据分片从缓存的数据中删除或从数据库加载数据。
3、分发请求
生物特征运算请求分为1:1和1:N两类生物特征运算。1:1运算是指给定一张图片和一个用户的唯一标识,系统判断这张图片是否是这个用户。1:N运算是批给定一张图片和一些限定条件,系统根据所给定的限定条件,从满足限定条件的人中找出最相所的人。
对于认证请求,应用服务器收到请求后,将请求进行简单处理后选择一个管理节点并将请求转发到管理节点,管理节点收到请求后,根据用户标识计算出该用户标识所属的分片,找出该分片所在的比对节点,将此认证请求分发到包含这个分片的认证节点上。具体过程为:如果是1:1比对请求,管理服务器根据请求的分片号,计算得到HASH值,取HASH的前2位从而确定将请求分发到对应数据范围的比对服务器上。比对服务器进行生物特征比对以及数据处理,并将处理结果返回。
对于识别请求,应用服务器在收到请求后,进行处理后,选择一个管理节点,并将请求进行转发,管理节点收到请求后,将这个请求分发到所有的比对节点上,比对节点将收到请求后从管理的数据中找出最相似的记录返回给管理节点,管理节点对比对节点返回的数据进行再次排序后返回前几条给应用服务器,应用服务器将管理节点返回的数据处理后返回给调用者。具体过程为:如果是1:N或者N:N的请求,管理节点将请求发送到所有的比对服务器,比对服务器根据自己的数据范围处理请求后将结果返回到管理服务器,管理服务器等待所有比对服务器的处理结果,所有比对服务器处理完成之后,管理服务器合并所有比对节点的处理结果。管理节点基本可以实现请求平均分发到所有的比对节点,从而减轻服务器压力,并可以提高处理性能。并且确保了所有数据处理的完整性
4、故障转移
当主管理节点不可用之后,会进行相应计算注册一个管理节点作为主管理节点。
管理节点在检测到比对节点不可用时,重新对可用的比对节点进行数据分片分布计算,使得不可用的比对节点上分配的数据分片可以按各节点计算能力均匀的分散到其它可用的节点上。
具体的,当部署节点出现故障时,管理服务器会将此服务器上加载的数据平均分发到其他的比对服务器上。并且网络连接的监听器会实时监听所有管理节点与比对节点的连接状态。当故障的服务节点恢复或者新增节点之后,监听器会第一时间获得服务器节点的状态,并通知管理节点将恢复的或者新增的节点纳入管理。管理节点动态计算数据分片,并通知比对节点进行数据加载。保证了管理节点以及比对节点的高扩展性和有效性。
上述机制支持实时动态添加管理节点以及比对节点,而无需停止现有服务器。真正意义上实现了不同服务之间的松耦合以及连接状态无关联性,确保了系统运行的稳定性,大大降低了由于网络或者服务器原因造成的系统问题。
比对节点功能说明:
比对节点负责调用生物特征算法对生物特征进行运算。此外为加快运算速度,每个比对节点均缓存部分生物特征数据,所有比对节点缓存的生物特征数据之间无交集,所有比对节点缓存的生物特征数据的合集为当前可管理的所有生物特征。
每个比对节点缓存哪部分生物特征数据由主管理节点在运行时通过计算给出。各比对节点间不进行通讯,即各比对节点不知道其它比对节点的存在。比对节点接收所有管理节点的生物特征运算请求;仅接收主管理节点的发送的对缓存数据进行管理的请求,非主管理服务器发送的缓存管理请求将被忽略。
整体的请求的处理流程:
应用系统接收所有的请求,对需要进行生物特征运算的请求,将其发给管理节点。管理节点根据请求的不同,将请求转发到一个或多个比对节点上,收到比对节点的返回后,将结果响应给应用系统。流程图如图8所示。
上述介绍中,是以将该系统应用于生物识别领域的,事实上,该系统可以应用于任何数据处理的领域。
下面对系统的连接匹配机制及工作过程进行描述:
1.服务器的启动与发现机制
管理节点启动后监听指定的端口,不主要查找比对节点。
在比对节点内通过配置文件指定管理节点的地址或地址范围与监听端口,比对服务器在启动后向,不间断的向指定范围或指定地址的管理的服务器广播通知。管理服务器收到广播通知后,响应确认报文给比对节点。
通过不间断的广播,比对服务器可以随时发现新加入的管理服务器,管理服务器也可以发现新加入的比对服务器。
2.主管理服务器的确认机制
比对节点在启动后,向已收到响应的管理服务器发送报文,询问是否是主管理服务器,
+若还没有设置主管理服务器,向第一台响应的管理服务器发送设置主管理服务器消息。管理服务器收到调整自身状态,并响应新的状态给比对服务器。
-比对服务器收到管理服务器新的状态后,向其它管理服务器发送消息,设置其它服务器服务器为非主管理服务器(消息中包括当前主管理服务器名字、地址、设置的时间等)。
-其它管理服务器收到设置为非主管理服务器消息后,若当前非主管理服务器,则不做处理。若当前服务器已经由另外的比对服务器设置为主管理服务器,则比对设置时间与收到的消息中原主管理服务器设置的时间,若小于当前,忽略这个请求,否则调整自身为非主管服务器,并通知给原来发送设置主管理服务器消息的比对服务器。
-比对服务器在延迟一定时间后,检测主管理服务器的设置是否唯一。不唯一时取第一个为主管理服务器,重复上述过程。
+若已经设置主管理服务器,或有多个主管理服务器,则取第一个作为主管理服务器,并通知其它作为非主管理服务器。
-收到所有服务器的响应后,检查主管理服务器是否唯一,不唯一时重复上述过程直至唯一。
3.确定主管理服务器后,比对服务器向确定的唯一主管理服务器发送当前比对节点的配置、性能等相关信息,将自己注册到主管理服务器。
+主管理服务器的处理流程
-主管理服务器收到比对服务器的注册请求后,将注册的比对服务器加入到待处理列表。
-延时一定时间后,主管理服务器计算待处理列表与已连接的正常的比对服务器的总生物特征处理性能。
-计算每台比对服务器相对于总处理性能的比例。
-根据每台服务器的比例,确定每台服务器可处理的数据分片的分片数。
-比较新的分片数量与现有的已经分配的分片数量,计算是调整的分片数量(增加用正数表示,减小用负数表示)
-从已经分配的分片数中,采用大数优先的原则,从尾部去除指定数量的分片号,并将分片号加入到可用的分片号列表。
-去除完成后,将可用的分片号分配到需要增加的分片的比对服务器分片号分配方案中。
-将新的分片号列表通知比对服务器。
+比对服务器收到分片调整请求后处理流程
-比较当前已经加载的分片与新的分片的差异,根据分片号,从数据中移出要去除的分片号,对要增加的,从指定的数据源中加载对应分片号的数据。
-将加载结果发送给主管理服务器。
-将新的分片范围通知其它非主管理服务器。
+非主管理服务器收到分片请求后,用新的分片范围调整本身的分片范围,并检查范围是否完整。
通过以上步骤,实现了配置过程以及工作过程,并且将可以实现动态增加比对服务器从而动态增加运算能力的目的,且支持增加不同性能配置的服务器,并根据性能的不同达到了均匀分配数据的目的。在完全随机访问的情况下,请求将可以相对均衡的分配到所有的比对服务器上。
关于故障检测及处理:
因为未知、网络、BUG等等各种原因,主管理服务器出现异常时,系统可以达到自动调整主管理服务器的目的,具体方案如下:
1.比对节点上启用状态检查与监测机制
+比对节点监听网络状态
+比对节点定时向管理服务器发送检测报文,检查管理服务器的服务状态。
通过监测与检查,可侦测到管理服务器的异常。
2.侦测到管理服务器异常后,根据主管理服务器的确认机制,从剩余的管理服务器中选取第一个作为新主管理服务器,并执行主管理服务器确认流程。
+主管理服务器确认后,向新的主管理服务器注册当前的分片号
+主管理服务器延时检查分片范围是否完整,分片范围完整时,主管理服务器切换完成。
+分片范围不完整时,进行一定次数的延时并重新检测分片范围是否完整,仍不完整时,开始进行新的分片分配流程。
通过上述流程可以达到动态增加主管理服务器、动态调整主管理服务器的目的。
管理节点在检测到比对节点不可用时,重新对可用的比对节点进行数据分片分布计算,使得不可用的比对节点上分配的数据分片可以按各节点计算能力均匀的分散到其它可用的节点上。
结合上述两个流程,实现了一种N:N网络下的管理与比对服务器的任意扩展机制。
本发明在生物识别领域的应用
现有的生物识别的方式大多是单一生物特征的识别,例如单独用指纹识别、单独的人脸识别或者单独的用虹膜识别,某种识别方式都有各自的优缺点和使用环境的限制,并都存在一定的误差。如指纹识别对手指掉皮、经常出汗的人就不大实用,无法采集有效的指纹图像;人脸识别在光线比较差的情况下不大实用;虹膜识别对具有白内障等人不大实用。通过多种生物特征的相结合的方式可以解决掉这些问题。单一生物特征识别都存在一定的误识率,如人脸识别、指纹识别、虹膜识别都存在一定的误识率,当客户数量很大时,做1:N认证时,得到错误结果的可能性就比较大。怎样避免或者减少这种误识率呢,通过多生物特征综合认证可以减少这种问题。先通过某种生物特征缩小范围,然后再通过另外的一种或者几种生物特征再进行认证,这样就可以把误识率降到一个很小的范围。
通过多种生物特征综合认证的方式,例如指纹+人脸+虹膜,来避免各种生物识别所带来的误差和使用限制,可以提高1:1或者1:N认证时的准确率。在采集用户生物特征时,可以采集用户的指纹、人脸、虹膜信息,如果有的无法采集则为空。在进行身份认证时,可以选择单一生物特征认证、或者多生物特征认证,如人脸+指纹,这样可以提供认证的准确率,也可以解决单生物特征识别所带来的环境使用限制。
生物特征综合认证平台是多生物特征综合认证的服务平台,它分为比对节点和管理节点,比对节点负责特征比对,管理节点负责结果汇总,以及对比对节点的管理。统一认证平台的工作流程如下:
1.在用户采集信息时,尽可能全面的采集用户的各种生物特征信息。
2.对每一种生物识别方式分别提供认证服务节点,每一种认证服务节点相互独立互不影响,在某种认证服务节点故障的时候不影响其他认证服务的使用。各种认证服务之间可以协同合作。
3.提供多样的认证接口,各种单一特征的认证接口,以及多种生物特征相结合的认证接口。
4.调用单一特征的比对接口,管理节点收到请求后,把比对任务发到该特征所对应的认证服务节点,认证服务节点处理后,把结果反馈到管理节点,管理节点再把结果返回到客户端。
5.各种认证服务之间可以协同工作,在调用多种特征比对的接口时,管理节点会把比对任务发往对应的认证服务节点,认证服务进行比对,把比对结果发到管理节点,管理节点汇总结果返回客户端。
6.1:N多种特征相结合的接口调用,管理节点在收到客户端的1:N请求时,会把比对任务发到第一种特征的认证服务节点(第一个一般是比对相对较快的生物特征),认证服务节点处理后会把结果返回的管理节点,管理节点会收到一个比对后返回的结果列表,然后再把结果列表和特征信息发往第二种特征的认证服务节点,以此类推,等到最后管理节点收到的结果列表就是一个比较准确的结果,然后返回给客户端。
多生物特征综合认证的方式解决了目前单一生物特征所遇到的问题,提供了生物识别的准确率。
多生物特征综合认证平台同时支持以下几种功能:
1.在做1:N认证时,各认证服务节点可以同时进行1:N认证服务,然后把结果反馈到管理节点,管理节点把各认证服务节点反馈的结果取一个交集,得到最终的结果,返回给客户端。
2.图片认证服务支持从图片中从获取多张人脸的特征,然后用每一张人脸特征与模板进行比对,获得结果,返回客户端。
3.在1:1认证时,平台支持对结果进行各种操作,如与操作,当所有的认证都通过时才通过,或者或操作,当某个或某几个认证通过时也可以认为认证通过。
4.支持多指纹1:N认证操作,可以同时传入同一个人的多个手指的指纹,然后对每一个手指都进行1:N认证,这样可以减少单手指指纹的误识问题,提供指纹识别的准确率。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (9)
1.一种数据分配方法,其特征在于,包括:
步骤1:获取比对服务器的处理性能信息;
步骤2:根据所述处理性能信息,计算所有比对服务器的总处理性能,以及每个比对服务器的处理性能相对于所有比对服务器的总处理性能的占比;
步骤3:根据所述占比,将所有数据分配至每个比对服务器;
对于每条用户记录,预先生成有分片号,其中每条用户记录中的一个或多个字段值经过hash运算计算得到hash值,对该hash值取靠前的一定位数得到所述分片号,所述一个或多个字段包括用户ID字段;
所述步骤3进一步为:根据所述占比,将所述分片号分配至每个比对服务器。
2.根据权利要求1所述的数据分配方法,其特征在于,所述步骤1包括:接收比对服务器发送的注册请求,其中所述注册请求中包括比对服务器自身的处理性能信息。
3.根据权利要求1所述的数据分配方法,其特征在于,所述步骤1之前还包括:
步骤10:当比对服务器增加或减少时,执行所述步骤1。
4.根据权利要求1所述的数据分配方法,其特征在于,所述步骤3之后还包括:
步骤4:接收1:1认证比对任务请求,所述1:1认证比对任务请求中携带有用于所述hash运算的字段;
步骤5:对所述1:1认证比对任务请求中用于hash运算的字段进行相同的hash运算得到hash值,并对该hash值同样取靠前的一定位数得到分片号;
步骤6:根据得到的分片号,将该1:1认证比对任务请求分配至相应的比对服务器。
5.一种管理服务器,其特征在于,包括:
获取模块,用于获取比对服务器的处理性能信息;
第一计算模块,用于根据所述处理性能信息,计算所有比对服务器的总处理性能,以及每个比对服务器的处理性能相对于所有比对服务器的总处理性能的占比;
数据分配模块,用于根据所述占比,将所有数据分配至每个比对服务器;
对于每条用户记录,预先生成有分片号,其中每条用户记录中的一个或多个字段值经过hash运算计算得到hash值,对该hash值取靠前的一定位数得到所述分片号;
所述数据分配模块,进一步用于根据所述占比,将所述分片号分配至每个比对服务器。
6.根据权利要求5所述的管理服务器,其特征在于,所述获取模块,还用于接收比对服务器发送的注册请求,其中所述注册请求中包括比对服务器自身的处理性能信息。
7.根据权利要求5所述的管理服务器,其特征在于,还包括:
跳转模块,用于当比对服务器增加或减少时,转至所述获取模块。
8.根据权利要求5所述的管理服务器,其特征在于,还包括:
请求接收模块,用于接收1:1认证比对任务请求,所述1:1认证比对任务请求中携带有用于所述hash运算的字段;
第二计算模块,用于对所述1:1认证比对任务请求中用于hash运算的字段进行相同的hash运算得到hash值,并对该hash值同样取靠前的一定位数得到分片号;
任务分配模块,用于对所述1:1认证比对任务请求,根据得到的分片号,将该1:1认证比对任务请求分配至相应的比对服务器。
9.一种服务器系统,其特征在于,包括应用服务器、至少一个权利要求5所述的管理服务器、以及至少两个比对服务器;所述应用服务器和管理服务器通过网络连接,所述管理服务器和比对服务器也通过网络连接;所述应用服务器和管理服务器为相同或不同的服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510072174.3A CN104731660B (zh) | 2014-12-31 | 2015-02-11 | 数据分配方法、装置和系统 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2014108564943 | 2014-12-31 | ||
CN201410856494 | 2014-12-31 | ||
CN201510072174.3A CN104731660B (zh) | 2014-12-31 | 2015-02-11 | 数据分配方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104731660A CN104731660A (zh) | 2015-06-24 |
CN104731660B true CN104731660B (zh) | 2018-01-12 |
Family
ID=53455573
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510072174.3A Active CN104731660B (zh) | 2014-12-31 | 2015-02-11 | 数据分配方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104731660B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106656906A (zh) * | 2015-10-28 | 2017-05-10 | 北京天诚盛业科技有限公司 | 基于云平台的生物识别系统及其方法 |
CN110618880B (zh) * | 2019-09-19 | 2022-05-27 | 中国银行股份有限公司 | 一种跨系统数据传递系统和方法 |
CN111176842A (zh) * | 2019-12-23 | 2020-05-19 | 中国平安财产保险股份有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN114900471B (zh) * | 2021-11-29 | 2023-11-28 | 上海大学 | 一种高性能无阻塞数据传输方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102426544A (zh) * | 2011-11-04 | 2012-04-25 | 浪潮(北京)电子信息产业有限公司 | 任务分配方法和系统 |
CN103297767A (zh) * | 2012-02-28 | 2013-09-11 | 三星电子(中国)研发中心 | 一种适用于多核嵌入式平台的jpeg图像解码方法及解码器 |
CN103902379A (zh) * | 2012-12-25 | 2014-07-02 | 中国移动通信集团公司 | 一种任务调度方法、装置及服务器集群 |
CN103957251A (zh) * | 2014-04-28 | 2014-07-30 | 迈普通信技术股份有限公司 | 一种实现服务器负载均衡的方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI474673B (zh) * | 2012-12-06 | 2015-02-21 | Inst Information Industry | 工作負載分配裝置及其工作負載分配方法 |
-
2015
- 2015-02-11 CN CN201510072174.3A patent/CN104731660B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102426544A (zh) * | 2011-11-04 | 2012-04-25 | 浪潮(北京)电子信息产业有限公司 | 任务分配方法和系统 |
CN103297767A (zh) * | 2012-02-28 | 2013-09-11 | 三星电子(中国)研发中心 | 一种适用于多核嵌入式平台的jpeg图像解码方法及解码器 |
CN103902379A (zh) * | 2012-12-25 | 2014-07-02 | 中国移动通信集团公司 | 一种任务调度方法、装置及服务器集群 |
CN103957251A (zh) * | 2014-04-28 | 2014-07-30 | 迈普通信技术股份有限公司 | 一种实现服务器负载均衡的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104731660A (zh) | 2015-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210385171A1 (en) | Software load balancer to maximize utilization | |
US10430332B2 (en) | System and method for performance tuning of garbage collection algorithms | |
CN110290189A (zh) | 一种容器集群管理方法、装置及系统 | |
CN111225069B (zh) | 一种分布式行情数据处理系统及方法 | |
US9137172B2 (en) | Managing multiple proxy servers in a multi-tenant application system environment | |
US20080256248A1 (en) | Single server access in a multiple tcp/ip instance environment | |
CN104731660B (zh) | 数据分配方法、装置和系统 | |
CN110289999B (zh) | 一种数据处理方法、系统及装置 | |
EP2584756A1 (en) | Method and related device for enabling context aware service application | |
CN108833462A (zh) | 一种面向微服务的自注册服务发现的系统及方法 | |
CN104484167B (zh) | 任务处理方法及装置 | |
US20070192431A1 (en) | Method and apparatus for service oriented architecture infrastructure switch | |
CN108737527A (zh) | 一种适用于平台大规模用户访问方法及系统 | |
CN101771703A (zh) | 一种资讯服务系统和方法 | |
CN109729139A (zh) | 访问请求转发方法、装置、设备及可读存储介质 | |
CN109672721B (zh) | 媒体文件推送方法、装置、服务端及计算机可读存储介质 | |
CN109560940B (zh) | 一种内容分发网络cdn服务的计费方法及装置 | |
CN104754029B (zh) | 确定主管理服务器的方法、装置和系统 | |
WO2020006901A1 (zh) | 资金归集方法、装置、计算机设备和存储介质 | |
CN113506100A (zh) | 联盟链数据处理方法、装置、计算机设备及存储介质 | |
CN111159131A (zh) | 性能优化方法、装置、设备及计算机可读存储介质 | |
CN104702409B (zh) | 基于云平台的生物识别系统及其方法 | |
CN107819634A (zh) | 基于erp系统的资源协作方法、装置、服务器及系统 | |
WO2012000455A1 (zh) | 一种客户端及负载均衡的方法 | |
CN110909072B (zh) | 一种数据表建立方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |