专利类型 | 发明公开 | 法律事件 | 实质审查; |
专利有效性 | 实质审查 | 当前状态 | 实质审查 |
申请号 | CN202411936421.5 | 申请日 | 2024-12-26 |
公开(公告)号 | CN119883613A | 公开(公告)日 | 2025-04-25 |
申请人 | 北京神州泰岳软件股份有限公司; | 申请人类型 | 企业 |
发明人 | 王扬; 刘鹏; 蔡国兴; 王震新; | 第一发明人 | 王扬 |
权利人 | 北京神州泰岳软件股份有限公司 | 权利人类型 | 企业 |
当前权利人 | 北京神州泰岳软件股份有限公司 | 当前权利人类型 | 企业 |
省份 | 当前专利权人所在省份:北京市 | 城市 | 当前专利权人所在城市:北京市海淀区 |
具体地址 | 当前专利权人所在详细地址:北京市海淀区海淀大街34号8层818室 | 邮编 | 当前专利权人邮编:100080 |
主IPC国际分类 | G06F9/50 | 所有IPC国际分类 | G06F9/50 ; G06F15/16 ; H04L45/02 |
专利引用数量 | 0 | 专利被引用数量 | 0 |
专利权利要求数量 | 10 | 专利文献类型 | A |
专利代理机构 | 北京弘权知识产权代理有限公司 | 专利代理人 | 朱紫晓; 赵云屏; |
摘要 | 本 申请 提供一种针对CMDB集群负载的自适应路由方法及装置,该方法包括:接收多个从 节点 主机按预设周期发送的实时性能数据;基于实时性能数据计算各个从节点主机的权重值;基于权重值更新集群路由规则;当客户端向主节点主机发送业务数据流时,根据集群路由规则,将业务数据流映射至各个从节点主机进行存储。本申请提供的方法可以基于权重值对各个从节点主机进行区分,支持根据不同性能的主机的资源使用情况确定存储策略。并且,由于各个从节点主机具有不同的权重值,当某个从节点主机发生故障时,也可以基于权重值确定待存储数据的存储策略,避免出现单一从节点因接收数据过多而过载的问题。 | ||
权利要求 | 1.一种针对CMDB集群负载的自适应路由方法,其特征在于,所述集群包括主节点主机及多个从节点主机,所述方法应用于所述主节点主机,所述方法包括: |
||
说明书全文 | 一种针对CMDB集群负载的自适应路由方法及装置技术领域背景技术[0002] 在大数据背景下,数据规模已经由千兆字节(GB)级跨越到了拍字节(PB)级,这对数据存储和处理能力提出了极高的要求。单机系统由于硬件资源的限制,显然无法有效应对如此庞大的数据量,因此,大规模集群成了处理大数据的必然选择。 [0004] 一般的,集群中的各台计算机节点按顺序依次执行存储任务,当某个计算机节点发生故障时,因故障导致未存储成功的数据将顺延至下一计算机节点进行存储,在这一过程中,由于未考虑到不同计算机节点性能不同,对数据处理的能力不同,容易导致高性能计算机节点处于空闲状态,而低性能计算机节点过载运行,从而造成资源利用不均衡的问题。发明内容 [0005] 本申请实施例提供一种针对CMDB集群负载的自适应路由方法及装置,以解决传统路由方法容易造成资源利用不均衡的问题。 [0006] 第一方面,本申请实施例提供一种针对CMDB集群负载的自适应路由方法,集群包括主节点主机及多个从节点主机,方法应用于主节点主机,方法包括:接收多个从节点主机按预设周期发送的实时性能数据;基于实时性能数据计算各个从节点主机的权重值;基于权重值更新集群路由规则;当客户端向主节点主机发送业务数据流时,根据集群路由规则,将业务数据流映射至各个从节点主机进行存储。 [0007] 在一种可实现的方式中,业务数据流包括多条业务数据;当客户端向主节点主机发送业务数据流时,根据集群路由规则,将业务数据流映射至各个从节点主机进行存储的步骤包括:对每条业务数据分别进行哈希处理,得到每条业务数据的哈希过程值;基于集群路由规则,确定当前哈希空间划分形成的多个分片区间;其中,当前哈希空间的大小为默认值,不同分片区间具有不同的哈希空间范围,每一分片区间包括多个数据分片,不同数据分片对应于哈希空间范围中的不同哈希值;针对每条业务数据,按照其对应的哈希过程值将其分配至各个数据分片。 [0008] 在一种可实现的方式中,针对每条业务数据,按照其对应的哈希过程值将其分配至各个数据分片的步骤后,还包括:基于集群路由规则,确定分片区间包括的各个从节点主机;针对每一分片区间,按照其对应的各个从节点主机的权重值的大小,将其包括的数据分片映射至各个从节点主机,以使从节点主机存储数据分片中的业务数据。 [0009] 在一种可实现的方式中,方法还包括:针对目标分片区间,当其包括的一个或多个从节点主机发生故障时,确定发生故障的从节点主机对应的未存储数据分片;按照第一从节点主机的权重值大小,将未存储数据分片重新映射至各个第一从节点主机,以使第一从节点主机存储未存储数据分片中的业务数据;其中,第一从节点主机为目标分片区间包括的未发生故障的从节点主机。 [0010] 在一种可实现的方式中,集群路由规则是可变更的,集群路由规则发生第一变更是指当前哈希空间的分片区间增多;方法还包括:响应于集群路由规则发生第一变更,确定新增分片区间是否包括新增从节点主机和/或原有从节点主机;如果新增分片区间包括新增从节点主机,基于集群路由规则确定原有分片区间更新后的哈希空间范围;针对每一原有分片区间,确定其对应的原有哈希空间范围与更新后的哈希空间范围的范围差;确定范围差对应的待迁移数据分片,以及确定待迁移数据分片的迁移地址,其中,迁移地址是由待迁移数据分片对应的哈希值确定的,迁移地址为其他原有分片区间或新增分片区间;基于迁移地址,迁移第一业务数据至原有从节点主机或新增从节点主机,第一业务数据为待迁移数据分片对应的业务数据。 [0011] 在一种可实现的方式中,响应于集群路由规则发生第一变更,确定新增分片区间是否包括新增从节点主机和/或原有从节点主机的步骤后,方法还包括:如果新增分片区间包括原有从节点主机,将新增分片区间对应的原有从节点主机确定为待迁移主机;确定待迁移主机在集群路由规则发生第一变更前所属的目标原有分片区间;按照第二从节点主机的权重值大小,将第二业务数据迁移至各个第二从节点主机;其中,第二从节点主机为目标原有分片区间包括的除待迁移主机外的其他从节点主机;当新增分片区间仅包括原有从节点主机时,第二业务数据为待迁移主机存储的全部业务数据,当新增分片区间包括新增从节点主机及原有从节点主机时,第二业务数据为待迁移主机存储的业务数据中除第一业务数据外的部分。 [0012] 在一种可实现的方式中,实时性能数据是各项性能指标的实时数据,性能指标包括资源性能指标和/或业务性能指标,资源性能指标包括CPU占用率、内存占用率和/或存储占用率,业务性能指标包括从节点主机在预设周期内各次存储的响应时长,以及包括从节点主机在预设周期内发生存储异常的次数;基于实时性能数据计算各个从节点主机的权重值的步骤包括:针对每一从节点主机,按照预设权重规则,计算各项性能指标的实时数据对应的权重分数;将各个权重分数与其对应的权重系数相乘,得到各项性能指标的实时数据对应的子权重值;其中,不同性能指标的权重系数相同或不同;将子权重值求和,得到从节点主机的权重值。 [0013] 第二方面,本申请实施例还提供一种针对CMDB集群负载的自适应路由方法,集群包括主节点主机及多个从节点主机,方法应用于任一从节点主机,方法包括:按照预设周期,采集实时性能数据;将实时性能数据发送至主节点主机;以及,方法还包括:当客户端向主节点主机发送业务数据流时,响应于主节点主机的映射,存储相应的业务数据流。 [0014] 第三方面,本申请实施例还提供一种针对CMDB集群负载的自适应路由装置,集群包括主节点主机及多个从节点主机,装置应用于主节点主机,装置包括:接收模块,用于接收多个从节点主机按预设周期发送的实时性能数据;计算模块,用于基于实时性能数据计算各个从节点主机的权重值;更新模块,用于基于权重值更新集群路由规则;映射模块,用于当客户端向主节点主机发送业务数据流时,根据集群路由规则,将业务数据流映射至各个从节点主机进行存储。 [0015] 第四方面,本申请实施例还提供一种针对CMDB集群负载的自适应路由装置,集群包括主节点主机及多个从节点主机,装置应用于任一从节点主机,装置包括:采集模块,用于按照预设周期,采集实时性能数据;发送模块,用于将实时性能数据发送至主节点主机;以及, [0016] 装置还包括:存储模块,用于当客户端向主节点主机发送业务数据流时,响应于主节点主机的映射,存储相应的业务数据流。 [0017] 由以上内容可知,本申请提供一种针对CMDB集群负载的自适应路由方法及装置,该方法包括:接收多个从节点主机按预设周期发送的实时性能数据;基于实时性能数据计算各个从节点主机的权重值;基于权重值更新集群路由规则;当客户端向主节点主机发送业务数据流时,根据集群路由规则,将业务数据流映射至各个从节点主机进行存储。本申请提供的方法可以基于权重值对各个从节点主机进行区分,支持根据不同性能的主机的资源使用情况确定存储策略。并且,由于各个从节点主机具有不同的权重值,当某个从节点主机发生故障时,也可以基于权重值确定待存储数据的存储策略,避免出现单一从节点因接收数据过多而过载的问题。附图说明 [0018] 图1为本申请实施例提供的集群的结构示意图; [0019] 图2为本申请实施例提供的第一种针对CMDB集群负载的自适应路由方法的流程示意图; [0020] 图3为本申请实施例提供的数据处理流程示意图; [0021] 图4为本申请实施例提供的计算从节点主机的权重值的流程示意图; [0022] 图5为本申请实施例提供的将业务数据存储至从节点主机的流程示意图; [0023] 图6为本申请实施例提供的数据分片重新映射的流程示意图; [0024] 图7为本申请实施例提供的数据迁移的第一种流程示意图; [0025] 图8为本申请实施例提供的数据迁移的第二种流程示意图; [0026] 图9为本申请实施例提供的第二种针对CMDB集群负载的自适应路由方法的流程示意图; [0027] 图10为本申请实施例提供的第一种针对CMDB集群负载的自适应路由装置的结构示意图; [0028] 图11为本申请实施例提供的第二种针对CMDB集群负载的自适应路由装置的结构示意图。 具体实施方式[0029] 为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。 [0030] 在介绍本申请实施例技术方案之前,首先对本申请实施例涉及的术语做示例性介绍。 [0031] 1、配置管理数据库(Configuration Management Database,简称CMDB):是一个用于存储和管理IT资产及其配置的数据库,包含了各种硬件、软件、网络设备等资源的信息。 [0032] CMDB提供一个集中的数据库来管理和记录集群中每个组件的配置信息。对于大数据集群来说,可能有数千个节点、虚拟机、容器等,而CMDB可以帮助管理员清晰地了解这些资源的详细配置,确保集群的稳定性和可管理性。 [0033] 2、CMDB运维管理平台:是一种致力于帮助企业有效管理和维护IT基础设施信息的工具,对IT人员提供了统一、可视化和全面的配置管理信息,帮助他们更好地管理和维护整个IT基础设施,提高工作效率,降低风险,并为企业的IT运营和管理提供支持。 [0034] 3、数据分片(sharding):一种数据管理和存储的策略或方法,目的是将大型数据库或数据集拆分成更小的部分(即分片),这些分片可以分布在不同的存储介质或节点上,以便提高系统的可扩展性、性能和可用性。 [0035] 4、哈希空间(Hash Space)指的是哈希算法生成的所有可能哈希值的集合。在进行哈希操作时,我们通过哈希函数将某个输入值(如字符串、数字等)映射到一个特定的哈希值,哈希空间就是所有这些可能哈希值的集合。 [0036] 在大数据背景下,数据规模已经由GB级跨越到了PB级,这对数据存储和处理能力提出了极高的要求。单机系统由于硬件资源的限制,显然无法有效应对如此庞大的数据量,因此,大规模集群成为了处理大数据的必然选择。系统可扩展性作为衡量系统优劣的重要指标,在大数据处理中显得尤为重要。系统的可扩展性具体是指一个系统在面对增加的工作负载或数据量时,通过增加资源(如硬件、节点、存储等)来提升性能和处理能力的能力。 [0037] 传统并行数据库系统通常采用纵向扩展的方式来支持更多的数据。这种方式主要依赖于提升单机硬件的性能,如增加CPU核心数、扩大内存容量、使用更快的存储设备等,以此来增强单个服务器的数据处理能力。然而,这种方式存在明显的局限性,即硬件资源的提升往往伴随着高昂的成本,并且受到物理极限的制约。 [0038] 相比之下,目前主流的大数据存储与计算系统更倾向于采用横向扩展的方式。这种方式通过增加机器数量来扩展系统的处理能力,实现水平扩展。横向扩展不仅能够以更低的成本获得更强的处理能力,还能够在不中断服务的情况下进行扩展,提高了系统的灵活性和可用性。 [0039] 为了有效管理和处理海量数据,大数据系统通常采用数据分片技术。数据分片是指将大规模数据集切分成多个较小的部分,并将这些部分分布到不同的机器上进行存储和处理。数据分片后,如何快速定位到某条记录的存储位置就成为了一个关键问题,这通常通过数据路由技术来实现。 [0040] 数据路由技术能够根据一定的规则(如哈希函数、范围划分等)将查询请求映射到相应的数据分片上,从而实现对数据的快速访问。同时,为了保证数据的高可用性,大数据系统还可以采用数据复制技术,将数据分片的多个副本存储在不同的机器上,以防止单点故障导致的数据丢失。 [0041] 综上所述,大数据背景下系统可扩展性成为了衡量系统优劣的重要指标。通过采用横向扩展的方式和数据分片与数据路由技术,大数据系统能够高效地处理海量数据,满足企业和组织对数据处理能力的需求。常见的路由算法有:轮询算法、一致性哈希(Hash)算法等。 [0042] 轮询算法的路由方案是指按顺序将读写请求分配给服务器(或称节点)。比如,先把第一个读写请求发给第一个服务器,接着将第二个读写请求发给第二个服务器,依此类推,等一轮请求都分配完后,再从第一个服务器开始重新分配。但是,如果集群中的服务器性能差异很大,那么有些服务器可能处理得很快,而有些则可能处理得很慢,使用轮询算法可能导致高性能的服务器没有得到充分利用,而性能差的服务器可能会过载。 [0043] 一致性哈希算法的路由方案是,当某个节点发生故障时,该节点原本负责的部分数据会迁移到下一个节点。但是,如果需要迁移的数据量过大,或者多个节点同时故障,那么接收这些数据的节点可能会因为负载过重而崩溃,这就会导致“雪崩效应”。可见,一致性哈希算法本身并没有考虑各个节点的性能差异,这就可能导致性能强的节点和性能弱的节点处理的请求数量相同,从而造成系统资源使用不均衡,无法充分发挥高性能节点的优势。 [0044] 本申请实施例提供一种针对CMDB集群负载的自适应路由方法及装置,其中,CMDB是一种存储和管理组织中所有IT资源(如服务器、网络设备、软件应用等)配置和状态信息的数据库。集群(Cluster)是指由多台计算机或服务器(称为节点)组成的系统,各个节点之间可以通过网络连接协同工作,以完成特定的计算任务。在实际应用中,运维人员可以通过CMDB运维管理平台对CMDB进行管理和维护,以使CMDB能够应用至集群环境中。具体而言,在一个集群环境中,集群中的每一台计算机(或服务器)、数据库、存储设备等都是IT资源,均可以作为CMDB中的配置项(CI)。在CMDB运维管理平台的管理下,CMDB可以记录集群的结构信息,例如集群节点、节点之间的关系、应用部署的信息等。或者,在集群环境中,节点可能会频繁变动,例如节点的增加、减少、故障恢复等。在CMDB运维管理平台的管理下,这些变动可以在CMDB中进行同步更新。在实际应用中,通过CMDB运维管理平台,运维人员能够高效管理和监控集群在CMDB中的各种配置项,确保集群的高可用性、性能优化、故障快速响应等。 [0045] 本申请实施例提供的方法可以应用至集群运维工具,例如CMDB运维管理平台,使其自适应集群中的变化(例如集群节点增减、减少,分片区间增减、减少等)而改变路由规则,并且,该方法可以基于各个集群节点的权重的不同,对不同集群节点做区分,使得高性能节点能够承担更多的业务负载,而低性能节点承担相对较少的业务负载,从而避免高性能节点空闲、低性能节点过载,更加合理地利用节点的资源,实现动态资源调度和负载均衡。 [0046] 图1为本申请实施例提供的集群的结构示意图。 [0047] 如图1所示,本申请实施例提供的集群可以包括一个主节点主机和多个从节点主机,从节点主机的数量可以基于实际情况进行配置,本申请实施例对此不做具体限定。图1中示出的集群可以是高可用性集群(HA Cluster)、负载均衡集群(Load Balancing Cluster)、计算集群(Compute Cluster)、存储集群(Storage Cluster)及大数据集群(Big Data Cluster)中的任意一种,本申请实施例对此不做具体限定。 [0048] 客户端可以将需要存储的业务数据发送至主节点主机,之后,主节点主机可以将数据分配到不同的从节点主机进行存储。业务数据例如是用户行为日志、交易记录、网络流量记录及视频监控数据等。客户端与主节点主机之间可以通过轻量级协议进行通信,例如TCP/IP协议或HTTP/HTTPS协议,本申请实施例对此不做具体限定。 [0049] 图2为本申请实施例提供的第一种针对CMDB集群负载的自适应路由方法的流程示意图。 [0050] 图3为本申请实施例提供的数据处理流程示意图。 [0051] 如图2及图3所示,本申请实施例提供的方法可以应用于集群中的主节点主机,可以包括以下步骤S100‑S400。 [0052] S100:接收多个从节点主机按预设周期发送的实时性能数据。 [0053] 其中,实时性能数据可以是各项性能指标的实时数据,性能指标可以包括资源性能指标和/或业务性能指标,资源性能指标可以包括CPU占用率、内存占用率和/或存储占用率,业务性能指标包括从节点主机在预设周期内各次存储的响应时长,以及可以包括从节点主机在预设周期内发生存储异常的次数。通过监控性能数据,主节点主机能够及时了解每个从节点主机的健康状况及资源使用情况。 [0054] 预设周期例如是1min、2min或5min,可以基于实际情况进行确定,本申请实施例对此不做具体限定。 [0055] S200:基于实时性能数据计算各个从节点主机的权重值。 [0056] 本申请实施例可以基于从节点主机的实时运行情况,计算各个从节点主机的权重值,在本申请实施例中,权重值可以与从节点主机的负载能力、处理能力以及当前资源使用情况相关联。进一步的,负载较低或性能较强的从节点主机可以获得较高的权重值,而负载较高或性能较差的从节点主机则会获得较低的权重值。这样,有助于动态调整各个从节点主机在集群中的负载分配,提高集群的整体性能和资源利用效率。 [0057] 具体计算权重值的步骤将在下文详述,此处不做赘述。 [0058] 继续参见图3,本申请实施例中,可以在每个集群从节点主机均安装“探针(Probe)”,利用“探针”收集节点的实时性能数据,之后实时性能数据被发送至主节点主机,具体发送至主节点主机的集群服务,集群服务可以利用这些信息来进行权重处理,即根据各从节点主机的实时性能情况动态评估各个从节点主机的负载能力。需要补充说明的是,“探针”可以是一种部署在从节点主机上的软件组件或工具。探针的主要功能是监控、收集并报告从节点主机的实时性能数据。 [0059] S300:基于权重值更新集群路由规则。 [0060] 可以理解的是,本申请实施例可以按预设周期更新集群路由规则。在此步骤中,主节点主机可以根据计算得出的各个从节点的权重值,动态更新集群路由规则。集群路由规则定义了业务数据流如何在不同的从节点之间分配,确保数据能够比较合理地分布到各个节点上,从而避免某些节点过载而影响系统性能。主节点主机可以在计算出实时权重值后,更新集群路由规则,以调整数据流的路由策略。这样,当新的业务数据流到来的时候,可以优先将业务数据流发送到负载较轻、性能较高的从节点,以提高集群的响应速度和吞吐量。 [0061] S400:当客户端向主节点主机发送业务数据流时,根据集群路由规则,将业务数据流映射至各个从节点主机进行存储。 [0062] 当客户端发送业务数据流到主节点主机时,主节点主机可以根据前一周期更新的集群路由规则,确定该业务数据流应该存储到哪一个或多个从节点主机。通过将数据映射至性能最优的从节点主机进行存储,可以确保数据处理的高效性与可靠性,避免过载现象并提高集群的处理能力,确保数据的分布和存储符合集群的负载均衡要求。 [0063] 还需要说明的是,业务数据流可以是小数据包,也可以是大型数据块,业务数据流具体可以包括多条业务数据,具体条数可以基于实际情况确定,本申请实施例对此不做具体限定。 [0064] 由以上内容可知,本申请实施例提供一种针对CMDB集群负载的自适应路由方法,该方法包括:接收多个从节点主机按预设周期发送的实时性能数据;基于实时性能数据计算各个从节点主机的权重值;基于权重值更新集群路由规则;当客户端向主节点主机发送业务数据流时,根据集群路由规则,将业务数据流映射至各个从节点主机进行存储。本申请实施例提供的方法可以基于权重值对各个从节点主机进行区分,以解决物理节点的异构性问题,支持根据不同性能的机器(主机)的资源使用情况确定存储策略。并且,由于各个从节点主机具有不同的权重值,当某个从节点主机发生故障时,也可以基于权重值确定待存储数据的存储策略,避免出现单一从节点因接收数据过多而过载的问题。 [0065] 下面对计算从节点主机的权重值的步骤做介绍。 [0066] 图4为本申请实施例提供的计算从节点主机的权重值的流程示意图。 [0067] 如图4所示,步骤S200的步骤可以包括以下步骤S201‑S203。 [0068] S201:针对每一从节点主机,按照预设权重规则,计算各项性能指标的实时数据对应的权重分数。 [0069] 其中,预设权重规则定义了不同性能指标的阈值、权重分数及权重系数。表1对预设权重规则做了示例性介绍。 [0070] 表1预设权重规则表 [0071]性能指标 阈值 权重系数 权重分数 CPU 80% 10 0.1 内存 85% 10 0.1 存储 90% 10 0.1 响应时长 1000ms 40 0.4 异常次数 >1 30 0.3 100 1.0 [0072] 按照预设权重规则计算各项性能指标的实时数据对应的权重分数时,如果性能指标的实时数据小于或者等于其对应的阈值,则得分,如果性能指标的实时数据大于其对应的阈值,则不得分,或记零分。例如,某台从节点主机的实时性能数据如下,CPU占用率70%,内存占用率60%,存储占用率60%,在1分钟内各次存储响应时长为200ms、300ms及600ms,在1min内发生存储异常的次数为1次。那么,该从节点主机各项性能指标参与权重值计算的权重分数分别为0.1,0.1,0.1,0.4和0。 [0073] S202:将各个权重分数与其对应的权重系数相乘,得到各项性能指标的实时数据对应的子权重值;其中,不同性能指标的权重系数相同或不同。 [0074] 可以理解的是,权重分数需要与其对应的权重系数相乘,例如,对于前述从节点主机,其各项性能指标的实时数据对应的子权重值分别为:10*0.1、10*0.1、10*0.1、40*0.4。 [0075] S203:将子权重值求和,得到从节点主机的权重值。 [0076] 示例性的,对于前述从节点主机,其最终的权重值为10*0.1+10*0.1+10*0.1+40*0.4=19。 [0077] 这样,权重值可以反映各个预设周期内从节点主机的实时运行情况。 [0078] 图5为本申请实施例提供的将业务数据存储至从节点主机的流程示意图。 [0079] 进一步的,本申请实施例中,当客户端向主节点主机发送业务数据流时,主节点主机可以对业务数据进行哈希计算,然后根据哈希计算结果及预设的哈希空间范围将业务数据划分至不同的数据分片,最终基于数据分片将业务数据映射至从节点主机进行存储。具体而言,步骤S400具体可以包括以下步骤S401‑S403。 [0080] S401:对每条业务数据分别进行哈希处理,得到每条业务数据的哈希过程值。 [0081] 在该步骤中,可以对接收到的每一条业务数据进行哈希运算。哈希运算是一种将任意长度的数据转换为固定长度的数值的算法。通过哈希运算,可以为每一条业务数据生成一个唯一的标识符,即哈希过程值。这个哈希过程值将用于后续的数据分配和路由决策。本申请实施例中,可以使用MD5算法、SHA‑1算法等哈希算法计算哈希过程值,本申请实施例对此不做具体限定。 [0082] S402:基于集群路由规则,确定当前哈希空间划分形成的多个分片区间。 [0083] 其中,当前哈希空间的大小为默认值,例如,当前哈希空间的大小为1024。如图3所示,当前哈希空间可以划分为两个分片区间,即分片1及分片2。进一步的,不同分片区间可以具有不同的哈希空间范围,当当前哈希空间的大小为1024时,分片1的哈希空间范围可以为0‑511,分片2的哈希空间范围可以为512‑1023。每一分片区间包括多个数据分片,不同数据分片对应于哈希空间范围中的不同哈希值。当当前哈希空间的大小为1024、分片1的哈希空间范围为0‑511、分片2的哈希空间范围为512‑1023时,那么分片1包括512个数据分片,分片2包括512个数据分片。每个数据分片对应于一个哈希值,分片1包括的512个数据分片对应的哈希值分别为0、1、2……511,分片2包括的512个数据分片对应的哈希值分别为512、513、514……1023。例如分片1中的第1个数据分片对应于哈希值“0”,依次类推。 [0084] S403:针对每条业务数据,按照其对应的哈希过程值将其分配至各个数据分片。 [0085] 其中,本申请实施例可以对哈希过程值进行取余计算,具体是与当前哈希空间的大小1024进行取余,例如,计算得到某条业务数据的哈希过程值为a591a6d40bf420404a011733cfb7b190d62c65bf0bcda88e5a99e3cbb6db05ee,该哈希过程值对1024取余的步骤包括将哈希过程值由16进制转换为2进制再进行取余,取余具体包括:757067611871047453397 74078915663541050433676615548413841373198493263910094%1024=862,即取余结果为 862,那么该条业务数据可以被分配至对应于哈希值862的数据分片,该数据分片具体位于分片2。 [0086] 进一步的,继续参见图5,步骤S403之后还可以包括以下步骤S404‑S405。 [0087] S404:基于集群路由规则,确定分片区间包括的各个从节点主机。 [0088] 示例性的,如图3所示,对于分片1这一分片区间,其包括从节点主机1、从节点主机2、从节点主机3及从节点主机4,共四个从节点主机。对于分片2这一分片区间,其包括从节点主机5、从节点主机6、从节点主机7及从节点主机8,共四个从节点主机。 [0090] S405:针对每一分片区间,按照其对应的各个从节点主机的权重值的大小,将其包括的数据分片映射至各个从节点主机,以使从节点主机存储数据分片中的业务数据。 [0091] 该步骤即为节点映射的步骤,主节点主机的节点映射服务端可以根据集群中各个从节点主机的权重值,按比例将数据分片映射到具体的从节点主机上,由于权重值支持动态更新,因此节点映射也支持动态调整。在实际应用中,可以基于各个从节点主机的权重值的比例进行节点映射。 [0092] 示例性的,当从节点主机1的权重值等于30、从节点主机2的权重值等于30、从节点主机3的权重值等于20,从节点主机4的权重值等于20,那么对于分片1中的待存储的数据分片,可以按数据分片的片数进行划分,将其中的30%映射至从节点主机1,30%映射至从节点主机2,20%映射至从节点主机3,20%映射至从节点主机4,映射比例即为3:3:2:2。 [0093] 本申请实施例提供的方法还可以基于集群规模的扩大或缩小,动态调整系统的数据路由能力,而无需重新分配所有数据,并且,在从节点主机发生故障时,也可以将待存储数据分配至同一分片区间包括的另外几个从节点主机,而不会由单一从节点主机承担故障从节点主机的存储任务。下面结合附图对该步骤做详述。 [0094] 图6为本申请实施例提供的数据分片重新映射的流程示意图。 [0095] 如图6所示,本申请实施例还可以包括以下步骤S501‑S502。 [0096] S501:针对目标分片区间,当其包括的一个或多个从节点主机发生故障时,确定发生故障的从节点主机对应的未存储数据分片。 [0097] 当从节点主机发生故障时,其节点映射服务将自动断开与主节点主机的连接,主节点主机将不再与该故障的从节点主机进行服务交互。进一步的,主节点主机可以在分片区间包括一个或多个发生故障的从节点主机时,确定该目标分片区间中还未被存储的数据分片。 [0098] S502;按照第一从节点主机的权重值大小,将未存储数据分片重新映射至各个第一从节点主机,以使第一从节点主机存储未存储数据分片中的业务数据;其中,第一从节点主机为目标分片区间包括的未发生故障的从节点主机。 [0099] 本申请实施例可以利用目标分片区间中所有未发生故障的从节点主机共同分担存储任务,并且,主节点主机可以按照剩余从节点主机的权重值大小映射。示例性的,当从节点主机4发生故障、且此时集群路由规则显示从节点主机1的权重值为20、从节点主机2的权重值为40、从节点主机3的权重值为30,那么,未存储数据分片中的业务数据将按比例被映射至从节点主机1、从节点主机2及从节点主机3,映射比例为从节点主机1:从节点主机2:从节点主机3=2:4:3,可以理解的是,映射比例是基于权重大小确定的。进一步的,各个从节点主机可以对未存储数据分片中的业务数据进行存储,这样,可以避免出现故障过载的问题,可以显著提高系统的稳定性和可靠性。 [0100] 本申请实施例中,集群路由规则是可变更的,例如发生第一变更、第二变更,集群路由规则发生第一变更是指当前哈希空间的分片区间增多,集群路由规则发生第二变更可以指当前哈希空间的分片区间减少。此外,集群规模也可以扩大或缩小,具体可以体现在从节点主机数量的增多或减小。下面将以分片区间增多、减少,从节点主机增多、减少以及从节点主机更换所属分片区间等情况进行分类讨论。 [0101] 本申请实施例提供的方法还包括以下步骤S601。 [0102] S601:响应于集群路由规则发生第一变更,确定新增分片区间是否包括新增从节点主机和/或原有从节点主机。 [0103] 第一种情况:分片区间增多、且新增分片区间仅包括新增从节点主机。 [0104] 图7为本申请实施例提供的数据迁移的第一种流程示意图。 [0105] 如图7所示,在第一种情况中,步骤S601之后还可以包括以下步骤S602‑S605。 [0106] S602:如果新增分片区间包括新增从节点主机,基于集群路由规则确定原有分片区间更新后的哈希空间范围。 [0107] 如图7所示,新增分片区间可以为分片3,也就是说,当前哈希空间由两个分片区间变更为三个分片区间,那么,三个分片区间的哈希空间范围分别为:0‑341、342‑683及684‑1023。也就是说,分片1的哈希空间范围由0‑511更新为0‑341,分片2的哈希空间范围由512‑ 1023更新为342‑683。 [0108] S603:针对每一原有分片区间,确定其对应的原有哈希空间范围与更新后的哈希空间范围的范围差。 [0109] 可以理解的是,对于分片1,其范围差为342‑511,对于分片2,其范围差为684‑1023。 [0110] S604:确定范围差对应的待迁移数据分片,以及确定待迁移数据分片的迁移地址,其中,迁移地址是由待迁移数据分片对应的哈希值确定的,迁移地址为其他原有分片区间或新增分片区间。 [0111] 可以理解的是,对于分片1,其范围差对应的待迁移数据分片,即为对应于哈希值342‑511的各个数据分片,对于分片2,其范围差对应的待迁移数据分片,即为对应于哈希值 684‑1023的各个数据分片。 [0112] 本申请实施例中,对待迁移数据分片进行迁移的步骤可以是将待迁移数据分片对应的业务数据(原有从节点主机存储的业务数据)迁移至新增从节点主机存储的步骤,这样,可以缓解原有从节点主机的存储压力。具体的,可以确定待迁移数据分片的迁移地址为新增分片区间,此时待迁移数据分片为哈希值342‑511的各个数据分片及哈希值684‑1023的各个数据分片,那么可以直接将待迁移数据分片对应的业务数据迁移至新增从节点主机进行存储。 [0113] 在一些实现方式中,迁移地址也可以是其他原有分片区间,其他原有分片区间也可以被称为目的分片区间,具体可以基于范围差及目的分片区间更新后的哈希空间范围确定,当范围差落在原有分片区间更新后的哈希空间范围时,那么该原有分片区间即为目的分片区间。例如,哈希值342‑511的各个数据分片对应的业务数据可以被迁移至分片2对应的原有从节点主机,分片2中哈希值512‑683的各个数据分片对应的业务数据可以不迁移,哈希值684‑1023的各个数据分片对应的业务数据可以被迁移至新增的分片3对应的新增从节点主机,图7中仅示例性示出了迁移地址为新增数据分片的情况。 [0114] S605:基于迁移地址,迁移第一业务数据至原有从节点主机或新增从节点主机,第一业务数据为待迁移数据分片对应的业务数据。 [0115] 如图7所示,新增从节点主机例如是从节点主机9及从节点主机10。值得说明的是,由于新增分片区间的从节点主机权重值待定,可以将待迁移数据分片对应的业务数据均分至新增从节点主机。 [0116] 这样,可以缓解原有从节点主机的存储压力。 [0117] 第二种情况:分片区间增多、且新增分片区间包括新增从节点主机及原有从节点主机。 [0118] 图8为本申请实施例提供的数据迁移的第二种流程示意图。 [0119] 如图8所示,步骤S601之后还可以包括以下步骤S606‑S608。 [0120] S606:如果新增分片区间包括原有从节点主机,将新增分片区间对应的原有从节点主机确定为待迁移主机。 [0121] 可以理解的是,如果集群路由规则定义了新增分片区间包括原有的从节点主机及新增的从节点主机,那么,该原有从节点主机将被迁移至新增分片区间,该原有从节点主机所存储的业务数据也将由其原来的分片区间中的其他从节点主机负责存储。 [0122] S607:确定待迁移主机在集群路由规则发生第一变更前所属的目标原有分片区间。 [0123] 示例性的,待迁移主机可以为从节点主机1,那么目标原有分片区间为分片1。 [0124] S608:按照第二从节点主机的权重值大小,将第二业务数据迁移至各个第二从节点主机;其中,第二从节点主机为目标原有分片区间包括的除待迁移主机外的其他从节点主机;当新增分片区间包括新增从节点主机及原有从节点主机时,第二业务数据为待迁移主机存储的业务数据中除第一业务数据外的部分。 [0125] 可以理解的是,在将待迁移主机迁移至新增分片区间时,可以首先将其存储的业务数据迁移至原有分片区间的其他从节点主机上。那么,当新的业务数据到来时,主节点主机可以基于最新的集群路由规则,将新增分片区间的数据分片映射至待迁移主机。 [0126] 值得说明的是,第二业务数据不包括第一业务数据是指,当待迁移主机需要迁移至新增分片区间时,那么,其存储的待迁移数据分片对应的业务数据(即第一业务数据)无需迁移至第二从节点主机,这样可以避免迁移步骤冗杂。 [0127] 值得说明的是,该种情况中新增分片区间既包括新增从节点主机,也包括原有从节点主机,那么,可以先执行确定待迁移主机并迁移业务数据的步骤,再执行确定待迁移数据分片并迁移业务数据的步骤,即先执行步骤S606‑S608,再执行步骤S602‑S605。这样,可以在完成对主机归属的更新之后再进行分片范围的更新,能够避免业务迁移出现故障。 [0128] 值得说明的是,由于新增分片区间的从节点主机权重值待定,可以将待迁移数据分片对应的业务数据全部存储至新增从节点主机,而不迁移至待迁移主机,在待迁移主机的业务数据迁移结束且权重值确定后,再利用待迁移主机进行存储。第三种情况:分片区间增多、且新增分片区间仅包括原有从节点主机。 [0129] 可以理解的是,步骤S602‑S605是在“新增分片区间包括新增从节点主机”这一条件下执行的,步骤S606‑S608是在“新增分片区间包括原有从节点主机”这一条件下执行的,因此在第三种情况中,由于新增分片区间仅包括原有从节点主机,仅需执行步骤S606‑S608完成从节点主机迁移即可,而不需执行步骤S602‑S605。此时,第二业务数据为待迁移主机存储的全部业务数据。 [0130] 第四种情况:分片区间保持不变、从节点主机新增。 [0131] 此时仅需在节点映射时,按照最新的集群路由规则中各个从节点主机的权重值进行映射即可,而无需重新分配所有业务数据。 [0132] 在一些实现方式中,新增从节点主机的权重值可以默认为0、20或30,本申请实施例对此不做具体限定。 [0133] 第五种情况:分片区间减少、从节点主机保持不变。 [0134] 此时仅需在节点映射时,按照最新的集群路由规则中各个从节点主机的权重值进行映射即可,而无需重新分配所有业务数据。 [0135] 第六种情况:分片区间减少、从节点主机也减少。 [0136] 此时仅需在节点映射时,按照最新的集群路由规则中各个从节点主机的权重值进行映射即可,而无需重新分配所有业务数据。 [0137] 值得说明的是,分片区间的增多、减少,从节点主机的增多、减少,取决于过去一段时间内业务数据流的数据量大小,或者取决于业务数据流的数据量变化趋势,当数据量持续增长时,可以增加更多的分片区间和从节点主机,以应对更高的数据处理和存储需求。相反,如果数据量减少或呈现出下降趋势,则可以适当减少分片区间和从节点主机的数量,以优化资源利用并减少不必要的开销。这种动态调整机制使集群能够灵活适应数据量的波动,确保既经济高效又稳定可靠。 [0138] 在实际操作中,可以依靠集群管理员或自动化工具定期分析业务数据流的数据量及其变化趋势,并根据分析结果来调整分片区间和从节点主机的配置,即调整集群路由规则。通过这种方式,实现动态资源调度。 [0139] 值得补充说明的是,本申请实施例中,集群路由规则定义了分片区间如何划分、分片区间与从节点主机的映射关系及各个从节点主机的权重值。 [0140] 图9为本申请实施例提供的第二种针对CMDB集群负载的自适应路由方法的流程示意图。 [0141] 如图9所示,本申请实施例提供的第二种针对CMDB集群负载的自适应路由方法可以是应用于集群中的任一从节点主机的,该方法可以包括以下步骤S701‑S702。 [0142] S701:按照预设周期,采集实时性能数据。 [0143] S702:将实时性能数据发送至主节点主机。 [0144] 以及, [0145] 方法还包括S703:当客户端向主节点主机发送业务数据流时,响应于主节点主机的映射,存储相应的业务数据流。 [0146] 这样,从节点主机可以定时采集及上报实时性能数据,并且,可以执行存储任务。 [0147] 综上,本申请实施例提供的针对CMDB集群负载的自适应路由方法,可以解决物理节点的异构性问题和故障过载问题,可以显著提高系统的稳定性和可靠性。以及,可以更好地应对突发流量和故障情况,确保业务数据的连续性和完整性。以及,本申请实施例提供的方法通过动态资源调度和负载均衡策略,可以更加合理地利用物理节点的资源,高性能节点能够承担更多的业务负载,低性能节点可以避免过载。此外,本申请实施例提供的方法可以用于配置自动化和智能化的运维工具,这样,可以减少人工干预的需求,降低运维成本。 [0148] 图10为本申请实施例提供的第一种针对CMDB集群负载的自适应路由装置的结构示意图。 [0149] 如图10所示,本申请实施例提供一种针对CMDB集群负载的自适应路由装置,集群包括主节点主机及多个从节点主机,装置应用于主节点主机,装置包括: [0150] 接收模块1001,用于接收多个从节点主机按预设周期发送的实时性能数据; [0151] 计算模块1002,用于基于实时性能数据计算各个从节点主机的权重值; [0152] 更新模块1003,用于基于权重值更新集群路由规则; [0153] 映射模块1004,用于当客户端向主节点主机发送业务数据流时,根据集群路由规则,将业务数据流映射至各个从节点主机进行存储。 [0154] 在一些实现方式中,映射模块1004具体用于:对每条业务数据分别进行哈希处理,得到每条业务数据的哈希过程值;基于集群路由规则,确定当前哈希空间划分形成的多个分片区间;其中,当前哈希空间的大小为默认值,不同分片区间具有不同的哈希空间范围,每一分片区间包括多个数据分片,不同数据分片对应于哈希空间范围中的不同哈希值;针对每条业务数据,按照其对应的哈希过程值将其分配至各个数据分片。 [0155] 在一些实现方式中,映射模块1004还用于:基于集群路由规则,确定分片区间包括的各个从节点主机;针对每一分片区间,按照其对应的各个从节点主机的权重值的大小,将其包括的数据分片映射至各个从节点主机,以使从节点主机存储数据分片中的业务数据。 [0156] 在一些实现方式中,映射模块1004还用于:针对目标分片区间,当其包括的一个或多个从节点主机发生故障时,确定发生故障的从节点主机对应的未存储数据分片;按照第一从节点主机的权重值大小,将未存储数据分片重新映射至各个第一从节点主机,以使第一从节点主机存储未存储数据分片中的业务数据;其中,第一从节点主机为目标分片区间包括的未发生故障的从节点主机。 [0157] 在一些实现方式中,集群路由规则是可变更的,集群路由规则发生第一变更是指当前哈希空间的分片区间增多。映射模块1004还用于:响应于集群路由规则发生第一变更,确定新增分片区间是否包括新增从节点主机和/或原有从节点主机;如果新增分片区间包括新增从节点主机,基于集群路由规则确定原有分片区间更新后的哈希空间范围;针对每一原有分片区间,确定其对应的原有哈希空间范围与更新后的哈希空间范围的范围差;确定范围差对应的待迁移数据分片,以及确定待迁移数据分片的迁移地址,其中,迁移地址是由待迁移数据分片对应的哈希值确定的,迁移地址为其他原有分片区间或新增分片区间;基于迁移地址,迁移第一业务数据至原有从节点主机或新增从节点主机,第一业务数据为待迁移数据分片对应的业务数据。 [0158] 在一些实现方式中,映射模块1004还用于:如果新增分片区间包括原有从节点主机,将新增分片区间对应的原有从节点主机确定为待迁移主机;确定待迁移主机在集群路由规则发生第一变更前所属的目标原有分片区间;按照第二从节点主机的权重值大小,将第二业务数据迁移至各个第二从节点主机;其中,第二从节点主机为目标原有分片区间包括的除待迁移主机外的其他从节点主机;当新增分片区间仅包括原有从节点主机时,第二业务数据为待迁移主机存储的全部业务数据,当新增分片区间包括新增从节点主机及原有从节点主机时,第二业务数据为待迁移主机存储的业务数据中除第一业务数据外的部分。 [0159] 在一些实现方式中,实时性能数据是各项性能指标的实时数据,性能指标包括资源性能指标和/或业务性能指标,资源性能指标包括CPU占用率、内存占用率和/或存储占用率,业务性能指标包括从节点主机在预设周期内各次存储的响应时长,以及包括从节点主机在预设周期内发生存储异常的次数;计算模块1002具体用于:针对每一从节点主机,按照预设权重规则,计算各项性能指标的实时数据对应的权重分数;将各个权重分数与其对应的权重系数相乘,得到各项性能指标的实时数据对应的子权重值;其中,不同性能指标的权重系数相同或不同;将子权重值求和,得到从节点主机的权重值。 [0160] 图11为本申请实施例提供的第二种针对CMDB集群负载的自适应路由装置的结构示意图。 [0161] 如图11所示,本申请实施例还提供一种针对CMDB集群负载的自适应路由装置,集群包括主节点主机及多个从节点主机,装置应用于任一从节点主机,装置包括: [0162] 采集模块2001,用于按照预设周期,采集实时性能数据; [0163] 发送模块2002,用于将实时性能数据发送至主节点主机; [0164] 以及, [0165] 装置还包括:存储模块2003,用于当客户端向主节点主机发送业务数据流时,响应于主节点主机的映射,存储相应的业务数据流。 [0166] 具体实现中,本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的针对CMDB集群负载的自适应路由方法的各实施例中的部分或全部步骤。的存储介质可为磁碟、光盘、只读存储记忆体(英文:read‑only memory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。 [0167] 容易理解的是,本领域技术人员在本申请提供的几个实施例的基础上,可以对本申请的实施例进行结合、拆分、重组等得到其他实施例,这些实施例均没有超出本申请的保护范围。 [0168] 以上的具体实施方式,对本申请实施例的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本申请实施例的具体实施方式而已,并不用于限定本申请实施例的保护范围,凡在本申请实施例的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本申请实施例的保护范围之内。 |