CN113282941A - 获取对象标识的方法、装置、电子设备及存储介质 - Google Patents

获取对象标识的方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN113282941A
CN113282941A CN202110661086.2A CN202110661086A CN113282941A CN 113282941 A CN113282941 A CN 113282941A CN 202110661086 A CN202110661086 A CN 202110661086A CN 113282941 A CN113282941 A CN 113282941A
Authority
CN
China
Prior art keywords
target
address
original
target object
servers
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.)
Withdrawn
Application number
CN202110661086.2A
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.)
Shenzhen Sensetime Technology Co Ltd
Original Assignee
Shenzhen Sensetime 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 Shenzhen Sensetime Technology Co Ltd filed Critical Shenzhen Sensetime Technology Co Ltd
Priority to CN202110661086.2A priority Critical patent/CN113282941A/zh
Publication of CN113282941A publication Critical patent/CN113282941A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Abstract

本公开提供了一种获取对象标识的方法、装置、电子设备及存储介质,该方法包括:响应获取目标对象的目标ID的请求指令,获取微服务集群中的多个服务器的地址标识;所述微服务集群用于存储目标对象的目标ID;分别对所述目标对象的原始ID,以及所述多个服务器的地址标识进行一致性哈希运算,从所述多个服务器的地址标识中,确定目标服务器的地址标识;基于所述目标服务器的地址标识,请求获取所述目标对象的目标ID;所述原始ID与所述目标ID存在映射关系。本公开实施例,能够避免了因主控服务器处理的处理信息量过大而导致的宕机的情况发生,提高了远程调用的性能。

Description

获取对象标识的方法、装置、电子设备及存储介质
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种获取对象标识的方法、装置、电子设备及存储介质。
背景技术
随着数据存储技术的发展,目标存储数据可能存在第三方应用系统中,比如,视频图像信息应用系统中的大量的人脸、人体、车辆等对象元数据和图片,会存在B公司设计的视频图像信息数据库(简称视图库)中,使用时,A公司设计的视频图像信息应用系统需要通过GA/T 1400协议从视图库得到数据。A公司为了方便对数据的管理及调用会对目标存储数据进行相应的编码,形成目标ID。
现有技术中,是通过远程过程调用方式访问A公司的微服务集群,为了保证获取到的目标ID和原始ID的关联关系是一一映射的,在微服务集群中确定一个主控服务器,其他服务器收到请求都转发到该主控服务器上。然而,该方法在主控服务器处理信息量过大的情况下会出现宕机的情况,进而影响整个服务集群对目标ID的获取。
发明内容
本公开实施例至少提供一种获取对象标识的方法、装置、电子设备及计算机可读存储介质。
第一方面,本公开实施例提供了一种获取对象标识的方法,包括:
响应获取目标对象的目标ID的请求指令,获取微服务集群中的多个服务器的地址标识;所述微服务集群用于存储目标对象的目标ID;
分别对所述目标对象的原始ID,以及所述多个服务器的地址标识进行一致性哈希运算,从所述多个服务器的地址标识中,确定目标服务器的地址标识;
基于所述目标服务器的地址标识,请求获取所述目标对象的目标ID;所述原始ID与所述目标ID存在映射关系。
本公开实施例中,在接收到获取目标对象的目标ID的请求指令时,获取微服务集群中的多个服务器的地址标识,然后分别对所述目标对象的原始ID,以及所述多个服务器的地址标识进行一致性哈希运算,从所述多个服务器的地址标识中,确定目标服务器的地址标识,再基于所述目标服务器的地址标识,请求获取所述目标对象的目标ID,如此,通过一致性哈希,将不同的目标对象ID范围映射到不同的服务器上,每个服务器只负责一小部分的映射ID,而不是将所有请求都转发到主控服务器上,进而分担了主控服务器的压力,避免了因主控服务器处理的处理信息量过大而导致的宕机的情况发生,提高了远程调用的性能。
根据第一方面,在一种可能的实施方式中,所述分别对所述目标对象的原始ID,以及所述多个服务器的地址标识进行一致性哈希运算,从所述多个服务器的地址标识中,确定目标服务器的地址标识,包括:
对所述多个服务器的地址标识进行一致性哈希运算,得到与所述多个服务器的地址标识分别对应的第一哈希值;
对所述目标对象的原始ID进行一致性哈希运算,得到与所述目标对象的原始ID对应的第二哈希值;
从多个所述第一哈希值中,查找与所述第二哈希值最接近的目标第一哈希值;
将所述目标第一哈希值所对应的服务器的地址标识,确定为所述目标服务器的地址标识。
本公开实施例中,通过一致性哈希,将不同的原始ID范围映射到不同服务器上,每个服务器负责一小部分的映射ID,分担了主控服务器的压力。
根据第一方面,在一种可能的实施方式中,所述从多个所述第一哈希值中,查找与所述第二哈希值最接近的目标第一哈希值,包括:
将所述第二哈希值以及所述多个第一哈希值,分别映射到哈希环中,以所述第二哈希值在所述哈希环中的位置为起点,按照顺时针方向查找,将查找到的第一个第一哈希值确定为所述目标第一哈希值;所述哈希环为由一致性哈希算法的若干哈希值所构成的一个虚拟的圆环,且所述哈希环上的每个节点对应部分原始ID;所述第一个第一哈希值所对应的服务器与所述目标对象的原始ID对应。
根据第一方面,在一种可能的实施方式中,所述目标对象的原始ID包括关键字编码;所述对所述目标对象的原始ID进行一致性哈希运算,得到与所述目标对象的原始ID对应的第二哈希值,包括:
对所述目标对象的原始ID中的关键字编码进行一致性哈希运算,得到与所述目标对象的原始ID中的关键字编码对应的第二哈希值。
本公开实施例中,只将目标对象原始ID的关键字编码进行一致性哈希运算,得到对应的第二哈希值,映射到哈希环上。如此,起到了负载均衡的作用,减少了处理量。
根据第一方面,在一种可能的实施方式中,所述关键字编码包括所述目标对象的原始ID中的所有编码中的前预设数量的编码。
根据第一方面,在一种可能的实施方式中,所述获取微服务集群中的多个服务器的地址标识,包括:
通过集群管理系统,监听所述微服务集群中的多个服务器,以获取所述多个服务器的地址标识。
第二方面,本公开实施例还提供一种获取目标对象ID的装置,包括:
获取模块,用于响应获取目标对象的目标ID的请求指令,获取微服务集群中的多个服务器的地址标识;所述微服务集群用于存储目标对象的目标ID;
计算模块,用于分别对所述目标对象的原始ID,以及所述多个服务器的地址标识进行一致性哈希运算,从所述多个服务器的地址标识中,确定目标服务器的地址标识;
请求模块,用于基于所述目标服务器的地址标识,请求获取所述目标对象的目标ID;所述原始ID与所述目标ID存在映射关系。
根据第二方面,在一种可能的实施方式中,所述计算模块具体用于:
对所述多个服务器的地址标识进行一致性哈希运算,得到与所述多个服务器的地址标识分别对应的第一哈希值;
对所述目标对象的原始ID进行一致性哈希运算,得到与所述目标对象的原始ID对应的第二哈希值;
从多个所述第一哈希值中,查找与所述第二哈希值最接近的目标第一哈希值;
将所述目标第一哈希值所对应的服务器的地址标识,确定为所述目标服务器的地址标识。
根据第二方面,在一种可能的实施方式中,所述计算模块具体用于:
将所述第二哈希值以及所述多个第一哈希值,分别映射到哈希环中,以所述第二哈希值在所述哈希环中的位置为起点,按照顺时针方向查找,将查找到的第一个第一哈希值确定为所述目标第一哈希值;所述哈希环为由一致性哈希算法的若干哈希值所构成的一个虚拟的圆环,且所述哈希环上的每个节点对应部分原始ID;所述第一个第一哈希值所对应的服务器与所述目标对象的原始ID对应。
根据第二方面,在一种可能的实施方式中,所述目标对象的原始ID包括关键字编码,所述计算模块具体用于:
对所述目标对象的原始ID中的关键字编码进行一致性哈希运算,得到与所述目标对象的原始ID中的关键字编码对应的第二哈希值。
根据第二方面,在一种可能的实施方式中,所述关键字编码包括所述目标对象的原始ID中的所有编码中的前预设数量的编码。
根据第二方面,在一种可能的实施方式中,所述获取模块具体用于:
通过集群管理系统,监听所述微服务集群中的多个服务器,以获取所述多个服务器的地址标识。
第三方面,本公开实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中所述的获取对象标识的方法的步骤。
第四方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中所述的获取对象标识的方法的步骤。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种获取目标对象ID方法的应用场景架构图;
图2示出了本公开实施例所提供的一种获取对象标识的方法的流程图;
图3示出了本公开实施例所提供的一种确定目标服务器的IP地址的流程图;
图4示出了本公开实施例所提供的一种对多个服务器的IP地址进行一致性哈希运算的示意图;
图5示出了本公开实施例所提供的一种对目标对象原始ID的关键字编码进行一致性哈希运算的示意图;
图6示出了本公开实施例所提供的一种查找目标第一哈希值的示意图;
图7示出了本公开实施例所提供的一种获取对象标识的装置的结构示意图;
图8示出了本公开实施例所提供的一种电子设备的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
随着数据存储技术的发展,目标存储数据可能存在第三方应用系统中,比如,视频图像信息应用系统中的大量的人脸、人体、车辆等对象元数据和图片,会存在B公司设计的视频图像信息数据库(简称视图库)中,使用时,A公司设计的视频图像信息应用系统需要通过GA/T 1400协议从视图库得到数据。视频图像信息应用系统中的每个对象都有一个通用技术要求规定的48位“视频图像信息基本对象统一标识编码”,也即原始ID,A公司为了方便对数据的管理及调用,对每个对象本身有一套自己的编码规则,这里就需要通过一些方式将这些对象统一的原始ID映射到内部更容易处理的目标ID,因此在调用的过程中需要获取目标ID,进而获取与该目标ID相对应的目标存储数据。
具体地,可以从目标服务器的本地map中获取目标ID,所述map是由具有一一映射关系的键-值数据结构组成的映射表,在map中通过键能迅速获取到值,本公开中的map中的键(key)是指目标对象的原始ID,值(value)是指目标对象的目标ID,在map中,目标对象的原始ID和目标ID是存在一一映射关系的,也即在map中通过原始ID能迅速获取到目标ID。
经研究发现,现有技术中,是通过远程过程调用方式访问A公司的微服务集群,为了保证获取到的目标ID和原始ID的关联关系是一一映射的,在微服务集群中确定一个主控服务器,其他服务器收到请求都转发到该主控服务器上。然而,该方法在主控服务器处理信息量过大的情况下会出现宕机的情况,进而影响整个服务集群对目标ID的获取。基于上述研究,本公开提供了一种获取对象标识的方法,该方法可以响应获取目标对象的目标ID的请求指令,获取微服务集群中的多个服务器的地址标识;所述微服务集群用于存储目标对象的目标ID;分别对所述目标对象的原始ID,以及所述多个服务器的地址标识进行一致性哈希运算,从所述多个服务器的地址标识中,确定目标服务器的地址标识;基于所述目标服务器的地址标识,请求获取所述目标对象的目标ID。如此,通过一致性哈希,将不同的目标对象ID范围映射到不同的服务器上,每个服务器只负责一小部分的映射ID,而不是将所有请求都转发到主控服务器上,进而分担了主控服务器的压力,避免了因主控服务器处理的处理信息量过大而导致的宕机的情况发生,提高了远程调用的性能。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种获取对象标识的方法进行详细介绍,本公开实施例所提供的获取对象标识的方法的执行主体一般为具有一定计算能力的电子设备,该电子设备例如包括:终端设备或服务器或其它处理设备,终端设备可以为移动设备、用户终端、终端、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该获取对象标识的方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
参见图1所示,为本公开实施例中的一种获取目标对象ID的应用场景架构图,该系统架构1000可以包括服务端100和客户端200。其中,服务端100和客户端200之间通过网络300建立通信连接。也即,网络300用于在服务端100和客户端200之间提供通信链路的介质。网络300可以包括各种类型的有线通信链路或无线通信链路,例如:有线通信链路包括光纤、双绞线或同轴电缆的,无线通信链路包括窄带物联网(Narrow Band Internet ofThings,NB-IoT)、蓝牙通信链路、无线保真(Wireless-Fidelity,Wi-Fi)通信链路或微波通信链路等。
其中,客户端200也称为工作站,指连入网络的计算机,它接受网络服务器的控制和管理,需要与服务端互相配合运行。一些实施方式中,客户端200包括但不限于台式电脑、平板电脑、智能手机等。
服务端100可以是提供各种服务的服务器。示例性地,服务端100可以是多个服务器组成的分布式服务器集群。
应理解,图1中的服务端100、客户端200和网络300的数目仅是示意性的。根据实现需要,可以是任意数量的服务端、客户端和网络。
示例性地,在实际应用场景中,比如服务端100可以是A公司的服务集群,服务集群中的目标服务器存储有客户端200需要获取的目标对象的目标ID,A公司通过客户端200通过远程过程调用的方式下发指令请求服务端100的目标服务器,本公开实施例中的获取对象标识的方法就是在这个过程中利用一致性哈希算法确定目标服务器,然后向目标服务器发出请求获取到目标对象的目标ID的。
参见图2所示,为本公开实施例所提供的一种获取对象标识的方法的流程图,其中,该方法可以应用于上述电子设备中,或应用于本地或云端的服务器中。图1所示的获取对象标识的方法包括以下S101~S103:
S101,响应获取目标对象的目标ID的请求指令,获取微服务集群中的多个服务器的地址标识。
其中,本实施例中,所述目标对象为上述视频图像信息应用系统中存储着的人脸、人体、车辆等对象,在其他实施例中,也可以是其他系统中与个人信息相关的其他对象,在此不做限定。所述目标ID为所述目标对象的原始ID一一映射的关联ID,其中,原始ID为目标对象在《GAT 1400.1-2017视频图像信息应用系统第1部分:通用技术要求》中规定的48位“视频图像信息基本对象统一标识编码”。
所述微服务集群为多个执行相同功能的服务器组成的集群,本实施例中,微服务集群是存储有目标对象的目标ID的服务器集群,而与微服务集群建立通信的方式,也即获取目标对象的目标ID的方式,大多数是采用远程过程调用(Remote Procedure Call,RPC)方式。在分布式系统里面,远程过程调用是在另一个地址空间(通常是另一台计算机)上执行一段程序并拿到结果的过程。对于调用RPC的人来说,就像调用本地函数一样,不用关注底层网络通讯细节。RPC通常作为一个独立的代码库使用,分服务端代码和客户端代码,是一个服务器-客户端结构,比较著名的有谷歌的gRPC,facebook的thrift等。
地址标识是指服务器的身份标识,可以包括pod名称、域名、互联网协议IP地址等。本实施方式中,地址标识为IP地址,下文关于地址标识以IP地址为例进行描述。
可以理解,在一些实施方式中,可以通过集群管理系统,监听所述微服务集群中的多个服务器,以获取所述多个服务器的地址标识。在本实施方式中,是通过谷歌云平台的开源容器集群管理系统(Kubernetes,通常称为k8s)来监听所述微服务集群中的多个服务器,获取到所述多个服务器的IP地址。
S102,分别对所述目标对象的原始ID,以及所述多个服务器的地址标识进行一致性哈希运算,从所述多个服务器的地址标识中,确定目标服务器的地址标识。
示例地,在获取到微服务集群中的多个服务器的IP地址后,采用负载均衡策略,对所述多个服务器的IP地址以及所述目标对象的原始ID分别进行一致性哈希运算,然后根据哈希运算结果,从多个服务器的IP地址中确定能够获取到目标对象的目标ID的目标服务器的IP地址,具体的运算方法将在下述实施例中阐述。
其中,IP地址即因特网上的每台计算机、服务器或其它设备都规定的一个唯一的地址,由于有这种唯一的地址,才保证了用户在连网的计算机或服务器上操作时,能够高效而且方便地从多台设备中选出自己所需的对象来,才能保证多台设备之间的正常通信。IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)。IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。例:点分十进IP地址(100.4.5.6),实际上是32位二进制数(01100100.00000100.00000101.00000110)。
可以理解,负载均衡策略是将流量负载分摊到不同的服务单元上进行运行,例如FTP服务器、Web服务器、企业核心应用服务器和其它主要任务服务器等,从而协同完成工作任务,保证服务器的高可用,保证响应足够快,给用户良好的体验。本实施例中,是通过一致性哈希的负载均衡策略,将不同的原始ID范围映射到不同服务器上,每个服务器只负责一小部分的映射ID,而不是维护一个全局映射ID的关系,如此,既能保证通过原有的远程过程调用方式获取到目标对象的目标ID,又能分担微服务集群中主控服务器的压力,避免了主控服务器处理量过大容易发生宕机导致的整个集群获取目标ID都受到影响。
S103,基于所述目标服务器的地址标识,请求获取所述目标对象的目标ID;所述原始ID与所述目标ID存在映射关系。
示例地,确定了目标服务器的IP地址后,也就从微服务集群中的多个服务器中确定了能够提供目标ID的目标服务器,接下来就通过远程过程调用的方式获取到目标对象的目标ID。
本实施方式中,获取目标对象的目标ID,是从目标服务器的本地map中获取的,所述map是由具有一一映射关系的键-值数据结构组成的映射表,在map中通过键能迅速获取到值,本公开中的map中的键(key)是指目标对象的原始ID,值(value)是指目标对象的目标ID,在map中,目标对象的原始ID和目标ID是一一映射的,也即在map中通过原始ID能迅速获取到目标ID。需要说明的是,在map里,如果之前没为原始ID生成过目标ID,那么直接生成目标ID,并以原始ID为键,目标ID为值,存进map里,以便随时能够获取到目标ID;如果之前为原始ID生成过目标ID,那么直接从这个map中取出之前生成的目标ID,从目标服务器返回即可。
本公开实施例中,在接收到获取目标对象的目标ID的请求指令时,获取微服务集群中的多个服务器的IP地址,然后分别对所述目标对象的原始ID,以及所述多个服务器的IP地址进行一致性哈希运算,根据哈希运算结果,从所述多个服务器的IP地址中,选择提供ID查询服务的目标服务器的IP地址,再基于所述目标服务器的IP地址,请求获取所述目标对象的目标ID,如此,通过一致性哈希,将不同的目标对象ID范围映射到不同的服务器上,每个服务器只负责一小部分的映射ID,而不是将所有请求都转发到主控服务器上,进而分担了主控服务器的压力,避免了因主控服务器处理的处理信息量过大而导致的宕机的情况发生,提高了远程调用的性能。
针对上述S102,参见图3所示,为确定目标服务器的IP地址的流程图,具体包括以下S1021~S1024:
S1021,对所述多个服务器的地址标识进行一致性哈希运算,得到与所述多个服务器的地址标识分别对应的第一哈希值。
所述一致性哈希即将哈希函数的整个哈希值空间映射成一个虚拟的圆环,整个哈希空间的取值范围为(0~2^32-1),整个空间按照顺时针方向组织。接下来对多个服务器的IP地址进行一致性哈希运算,得到对应的多个第一哈希值,然后将所述多个第一哈希值放到哈希环中,作为一个个节点,所述哈希环上的每个节点对应部分原始ID。
示例地,参见图4所示,为一种对多个服务器的IP地址进行一致性哈希运算的示意图,首先,我们把2^32想象成一个圆,就像钟表一样,钟表的圆可以理解成由60个点组成的圆,而此处我们把这个圆想象成由2^32个点组成的圆,圆环的正上方的点代表0,0点右侧的第一个点代表1,以此类推,2、3、4、5、6……直到2^32-1,也就是说0点左侧的第一个点代表2^32-1,我们把这个由2^32个点组成的圆环称为哈希环。接下来假设有3台服务器,服务器A、服务器B、服务器C,这三台服务器有自己唯一的IP地址,然后将3台服务器的IP地址进行一致性哈希运算,得到对应的3个第一哈希值即A、B、C,通过一致性哈希运算出来的结果一定是0到2^32-1之间的整数,那么图3中的哈希环上必定存在3个点与这三个第一哈希值一一对应,所以这三个第一哈希值A、B、C就可以映射到这个哈希环上,并作为3个节点。
S1022,对所述目标对象的原始ID进行一致性哈希运算,得到与所述目标对象的原始ID对应的第二哈希值。
参见图5所示,使用上述S1021步骤中的同样方法,也可以将目标对象的原始ID进行一致性哈希运算,得到对应的第二哈希值a,映射到哈希环上。
可以理解,由于目标对象的数量是巨大的,且目标对象的原始ID位数较多(比如,可能是48位编码),如果将每一个目标对象的原始ID都进行一次一致性哈希运算,那么计算量是非常大的。本实施例中,可以将目标对象的原始ID的前预设数量的编码作为关键字编码,在多个目标对象中,只要关键字编码相同,计算出的哈希值就一定是唯一的,也即将多个目标对象中关键字编码相同的归为一类,然后将关键字编码作为key,通过一致性哈希运算映射到哈希环上,只要key相同,就会都计算成同一哈希值,请求到一个节点上。因此,在一些实施方式中,可以只将目标对象原始ID的关键字编码进行一致性哈希运算,得到对应的第二哈希值,映射到哈希环上。如此,起到了负载均衡的作用,减少了处理量。其中,关键字编码为所述目标对象的原始ID中的前预设数量的编码,可以是原始ID的前20位编码,也可以是前10位编码,在此不做限定。
S1023,从多个所述第一哈希值中,查找与所述第二哈希值最接近的目标第一哈希值。
在一些实施方式中,将所述第二哈希值以及所述多个第一哈希值,分别映射到哈希环中之后,以所述第二哈希值在所述哈希环中的位置为起点,按照顺时针方向查找,将查找到的第一个第一哈希值确定为所述目标第一哈希值。其中,所述第一个第一哈希值所对应的服务器与所述目标对象的原始ID对应,也即,目标对象的原始ID存储于第一个第一哈希值所对应的服务器中。
示例地,参见图6所示,为一种查找目标第一哈希值的示意图,假设A、B、C代表3个服务器对应的第一哈希值,a代表目标对象原始ID的关键字编码对应的第二哈希值,以第二哈希值a在哈希环中的位置为起点,沿顺时针方向查找,将查找到的第一个第一哈希值A确定为目标第一哈希值。
S1024,将所述目标第一哈希值所对应的服务器的地址标识,确定为所述目标服务器的地址标识。
在查找到目标第一哈希值之后,就可以将目标第一哈希值对应的服务器的IP地址,确定为目标服务器的IP地址,然后向这个目标服务器的IP地址发起远程过程调用,根据目标服务器的本地map以及目标对象的原始ID,即可以获取到目标对象的目标ID。
本公开实施例中,由于服务器的IP地址和目标对象的原始ID经过一致性哈希运算后的哈希值是固定的,所以,一个目标对象的原始ID必定会查找到固定的目标服务器上,那么,当下次想要获取该目标对象原始ID对应的目标ID时,只要再次使用相同的算法进行计算,即可查找到目标ID被存储到哪个服务器上,直接去对应的服务器查找即可,而无需再次遍历整个微服务集群的所有服务器,再通过主控服务器来确定目标ID的唯一性;同时,通过一致性哈希,将不同的原始ID范围映射到不同服务器上,每个服务器负责一小部分的映射ID,分担了主控服务器的压力。
在一些实施方式中,基于一致性哈希构建的服务集群的服务器数量可以动态增减,而在服务器数量增减过程中,影响范围只是部分。当有某个服务器出现故障时,请再次参见图6,比如服务器B出现故障,之前服务器B的数据请求被定位到服务器C上处理,仅仅是服务器A到服务器B之间的数据请求受到影响,而服务器C到服务器A以及服务器B到服务器C之间的数据请求没受到任何影响,对于整个服务集群来说影响范围很小。
同理,也可以水平扩展,即增加新的服务器。请再次参见图6,比如在服务器B和服务器C之间增加一个服务器D,此时服务器A和服务器B的数据请求不受影响,只有服务器B到服务器D之间的数据请求被定位到服务器D上处理,而新增服务器D之前这些数据请求是定位到服务器C上处理的,影响范围同样很小,同时,每个服务器都可以独立提供服务,不受主控服务器的影响。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一技术构思,本公开实施例中还提供了与获取对象标识的方法对应的获取目标对象ID的装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述获取对象标识的方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图7所示,为本公开实施例提供的一种获取目标对象ID的装置的结构示意图,所述装置500包括:
获取模块501,用于响应获取目标对象的目标ID的请求指令,获取微服务集群中的多个服务器的地址标识;所述微服务集群用于存储目标对象的目标ID;
计算模块502,用于分别对所述目标对象的原始ID,以及所述多个服务器的地址标识进行一致性哈希运算,从所述多个服务器的地址标识中,确定目标服务器的地址标识;
请求模块503,用于基于所述目标服务器的地址标识,请求获取所述目标对象的目标ID;所述原始ID与所述目标ID存在映射关系。
在一种可能的实施方式中,所述计算模块502具体用于:
对所述多个服务器的地址标识进行一致性哈希运算,得到与所述多个服务器的地址标识分别对应的第一哈希值;
对所述目标对象的原始ID进行一致性哈希运算,得到与所述目标对象的原始ID对应的第二哈希值;
从多个所述第一哈希值中,查找与所述第二哈希值最接近的目标第一哈希值;
将所述目标第一哈希值所对应的服务器的地址标识,确定为所述目标服务器的地址标识。
在一种可能的实施方式中,所述计算模块502具体用于:
将所述第二哈希值以及所述多个第一哈希值,分别映射到哈希环中,以所述第二哈希值在所述哈希环中的位置为起点,按照顺时针方向查找,将查找到的第一个第一哈希值确定为所述目标第一哈希值;所述哈希环为由一致性哈希算法的若干哈希值所构成的一个虚拟的圆环,且所述哈希环上的每个节点对应部分原始ID;所述第一个第一哈希值所对应的服务器与所述目标对象的原始ID对应。
在一种可能的实施方式中,所述计算模块502具体用于:
对所述目标对象的原始ID中的关键字编码进行一致性哈希运算,得到与所述目标对象的原始ID中的关键字编码对应的第二哈希值。
在一种可能的实施方式中,所述关键字编码包括所述目标对象的原始ID中的所有编码中的前预设数量的编码。
在一种可能的实施方式中,所述获取模块501具体用于:
通过集群管理系统,监听所述微服务集群中的多个服务器,以获取所述多个服务器的地址标识。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
基于同一技术构思,本公开实施例还提供了一种电子设备。参照图8所示,为本公开实施例提供的电子设备600的结构示意图,包括处理器601、存储器602、和总线603。其中,存储器602用于存储执行指令,包括内存6021和外部存储器6022;这里的内存6021也称内存储器,用于暂时存放处理器701中的运算数据,以及与硬盘等外部存储器6022交换的数据,处理器601通过内存6021与外部存储器6022进行数据交换。
本申请实施例中,存储器602具体用于存储执行本申请方案的应用程序代码,并由处理器601来控制执行。也即,当电子设备600运行时,处理器601与存储器602之间通过总线603通信,使得处理器601执行存储器602中存储的应用程序代码,进而执行前述任一实施例中所揭示的方法。
其中,存储器602可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。
处理器601可能是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备700的具体限定。在本申请另一些实施例中,电子设备700可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中的获取对象标识的方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机程序产品载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中的获取对象标识的方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。

Claims (10)

1.一种获取对象标识的方法,其特征在于,包括:
响应获取目标对象的目标ID的请求指令,获取微服务集群中的多个服务器的地址标识;所述微服务集群用于存储目标对象的目标ID;
分别对所述目标对象的原始ID,以及所述多个服务器的地址标识进行一致性哈希运算,从所述多个服务器的地址标识中,确定目标服务器的地址标识;
基于所述目标服务器的地址标识,请求获取所述目标对象的目标ID;所述原始ID与所述目标ID存在映射关系。
2.根据权利要求1所述的方法,其特征在于,所述分别对所述目标对象的原始ID,以及所述多个服务器的地址标识进行一致性哈希运算,从所述多个服务器的地址标识中,确定目标服务器的地址标识,包括:
对所述多个服务器的地址标识进行一致性哈希运算,得到与所述多个服务器的地址标识分别对应的第一哈希值;
对所述目标对象的原始ID进行一致性哈希运算,得到与所述目标对象的原始ID对应的第二哈希值;
从多个所述第一哈希值中,查找与所述第二哈希值最接近的目标第一哈希值;
将所述目标第一哈希值所对应的服务器的地址标识,确定为所述目标服务器的地址标识。
3.根据权利要求2所述的方法,其特征在于,所述从多个所述第一哈希值中,查找与所述第二哈希值最接近的目标第一哈希值,包括:
将所述第二哈希值以及所述多个第一哈希值,分别映射到哈希环中,以所述第二哈希值在所述哈希环中的位置为起点,按照顺时针方向查找,将查找到的第一个第一哈希值确定为所述目标第一哈希值;所述哈希环为由一致性哈希算法的若干哈希值所构成的一个虚拟的圆环,且所述哈希环上的每个节点对应部分原始ID;所述第一个第一哈希值所对应的服务器与所述目标对象的原始ID对应。
4.根据权利要求2或3所述的方法,其特征在于,所述目标对象的原始ID包括关键字编码;所述对所述目标对象的原始ID进行一致性哈希运算,得到与所述目标对象的原始ID对应的第二哈希值,包括:
对所述目标对象的原始ID中的关键字编码进行一致性哈希运算,得到与所述目标对象的原始ID中的关键字编码对应的第二哈希值。
5.根据权利要求4所述的方法,其特征在于,所述关键字编码包括所述目标对象的原始ID中的所有编码中的前预设数量的编码。
6.根据权利要求1-5任一所述的方法,其特征在于,所述获取微服务集群中的多个服务器的地址标识,包括:
通过集群管理系统,监听所述微服务集群中的多个服务器,以获取所述多个服务器的地址标识。
7.一种获取目标对象ID的装置,其特征在于,包括:
获取模块,用于响应获取目标对象的目标ID的请求指令,获取微服务集群中的多个服务器的地址标识;所述微服务集群用于存储目标对象的目标ID;
计算模块,用于分别对所述目标对象的原始ID,以及所述多个服务器的地址标识进行一致性哈希运算,从所述多个服务器的地址标识中,确定目标服务器的地址标识;
请求模块,用于基于所述目标服务器的地址标识,请求获取所述目标对象的目标ID;所述原始ID与所述目标ID存在映射关系。
8.根据权利要求7所述的装置,其特征在于,所述计算模块具体用于:
对所述多个服务器的地址标识进行一致性哈希运算,得到与所述多个服务器的地址标识分别对应的第一哈希值;
对所述目标对象的原始ID进行一致性哈希运算,得到与所述目标对象的原始ID对应的第二哈希值;
从多个所述第一哈希值中,查找与所述第二哈希值最接近的目标第一哈希值;
将所述目标第一哈希值所对应的服务器的地址标识,确定为所述目标服务器的地址标识。
9.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至6任一所述的获取对象标识的方法的步骤。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至6任意一项所述的获取对象标识的方法的步骤。
CN202110661086.2A 2021-06-15 2021-06-15 获取对象标识的方法、装置、电子设备及存储介质 Withdrawn CN113282941A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110661086.2A CN113282941A (zh) 2021-06-15 2021-06-15 获取对象标识的方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110661086.2A CN113282941A (zh) 2021-06-15 2021-06-15 获取对象标识的方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN113282941A true CN113282941A (zh) 2021-08-20

Family

ID=77284531

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110661086.2A Withdrawn CN113282941A (zh) 2021-06-15 2021-06-15 获取对象标识的方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN113282941A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114095565A (zh) * 2021-11-18 2022-02-25 税友信息技术有限公司 一种服务发现方法、装置、设备及介质
CN114124797A (zh) * 2021-11-19 2022-03-01 中国电信集团系统集成有限责任公司 一种服务器路由方法、装置、电子设备及存储介质
CN114143196A (zh) * 2021-11-25 2022-03-04 北京百度网讯科技有限公司 实例配置更新方法、装置、设备、存储介质及程序产品

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114095565A (zh) * 2021-11-18 2022-02-25 税友信息技术有限公司 一种服务发现方法、装置、设备及介质
CN114095565B (zh) * 2021-11-18 2023-08-29 税友信息技术有限公司 一种服务发现方法、装置、设备及介质
CN114124797A (zh) * 2021-11-19 2022-03-01 中国电信集团系统集成有限责任公司 一种服务器路由方法、装置、电子设备及存储介质
CN114124797B (zh) * 2021-11-19 2023-08-04 中电信数智科技有限公司 一种服务器路由方法、装置、电子设备及存储介质
CN114143196A (zh) * 2021-11-25 2022-03-04 北京百度网讯科技有限公司 实例配置更新方法、装置、设备、存储介质及程序产品

Similar Documents

Publication Publication Date Title
CN113282941A (zh) 获取对象标识的方法、装置、电子设备及存储介质
CN108769111B (zh) 一种服务器连接方法、计算机可读存储介质及终端设备
US10417064B2 (en) Method of randomly distributing data in distributed multi-core processor systems
JP2021500649A (ja) シャード・データベースのシャード・テーブルにレコードを記憶するためのコンピュータ実装方法、コンピュータ・プログラム製品、およびシステム、シャード・データベースのシャード・テーブルからレコードを検索するためのコンピュータ実装方法、コンピュータ・プログラム製品、およびシステム、ならびにシャード・データベースを記憶するためのシステム
CN110099112B (zh) 基于点对点网络的数据存储方法、装置、介质及终端设备
CN109873839B (zh) 数据访问的方法、服务器与分布式系统
CN111683144B (zh) 一种访问请求处理的方法、装置、计算机设备及存储介质
TW202008763A (zh) 資料處理方法和裝置、用戶端
WO2020094064A1 (zh) 性能优化方法、装置、设备及计算机可读存储介质
US20150278543A1 (en) System and Method for Optimizing Storage of File System Access Control Lists
US11108854B2 (en) Peer-to-peer network for internet of things resource allocation operation
CN108696418B (zh) 一种社交网络中隐私保护方法及装置
CN113486060A (zh) 数据访问处理方法和装置、存储介质及电子设备
CN117176796A (zh) 消息推送方法、装置、计算机设备和存储介质
US11442632B2 (en) Rebalancing of user accounts among partitions of a storage service
US20220263759A1 (en) Addressing method, addressing system, and addressing apparatus
US11882181B2 (en) Method, device, and computer program product for data storage
JP6233846B2 (ja) 可変長ノンスの生成
US20240036772A1 (en) Method and system for storage management, storage medium and device
US11233739B2 (en) Load balancing system and method
US11652746B1 (en) Resilient consistent hashing for a distributed cache
US11683316B2 (en) Method and device for communication between microservices
US11151110B2 (en) Identification of records for post-cloning tenant identifier translation
US10958580B2 (en) System and method of performing load balancing over an overlay network
CN112839071A (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
WW01 Invention patent application withdrawn after publication

Application publication date: 20210820

WW01 Invention patent application withdrawn after publication