CN114189495A - 基于域名的节点调度方法、系统、终端和存储介质 - Google Patents

基于域名的节点调度方法、系统、终端和存储介质 Download PDF

Info

Publication number
CN114189495A
CN114189495A CN202111547167.6A CN202111547167A CN114189495A CN 114189495 A CN114189495 A CN 114189495A CN 202111547167 A CN202111547167 A CN 202111547167A CN 114189495 A CN114189495 A CN 114189495A
Authority
CN
China
Prior art keywords
node
nodes
access address
candidate
slave
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
CN202111547167.6A
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.)
Ping An Yizhangtong Cloud Technology Shenzhen Co ltd
Original Assignee
Ping An Yizhangtong Cloud Technology Shenzhen 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 Ping An Yizhangtong Cloud Technology Shenzhen Co ltd filed Critical Ping An Yizhangtong Cloud Technology Shenzhen Co ltd
Priority to CN202111547167.6A priority Critical patent/CN114189495A/zh
Publication of CN114189495A publication Critical patent/CN114189495A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0668Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明涉及分布式人工智能技术领域,提供基于域名的节点调度方法、系统、终端和存储介质,其方法包括以下步骤:对集群中的节点进行初始化配置,确定第一从属节点,其包括候选主节点和非候选主节点;向非候选主节点发出状态探测请求,得到各个非候选主节点的状态探测信息,并根据状态探测信息将非候选主节点确定为目标主节点;根据目标主节点构建得到目标访问地址集合,通过目标访问地址集合对业务请求进行访问地址分配;方案能够在单个节点出现异常时,迅速切换至其他节点,以此提高方案整体的抗高并发能力以及抗风险能力,方案实现了集群节点自动化管理,减少人工介入,提高服务可用性和抗风险能力,可广泛应用于云计算以及云存储技术领域。

Description

基于域名的节点调度方法、系统、终端和存储介质
技术领域
本发明涉及云计算以及云存储技术领域,尤其涉及基于域名的节点调度方法、系统、终端和存储介质。
背景技术
域名系统(Domain Name System,DNS)是Internet上解决网上机器命名的一种系统。域名的应用,其过程类似于去往一个目的地之前,首先需要明确抵达这一目的地的具体路径。在Internet网上当一台主机要访问另外一台主机时,必须首先获知其地址,TCP/IP中的IP地址是由四段以“.”分开的数字组成,记录其数字组合远不如名字方便,所以,相关技术中提出采用域名系统来管理名字和IP的对应关系。进而,DNS经常被应用在解析域名的场景中,但是,相关技术中,基于域名的集群管理的方式或者方法,在业务请求高并发的场景中,极易出现集群故障、崩溃的场景,进而导致大量的请求无法进行访问,严重影响客户端的使用体验。
发明内容
本发明实施例的主要目的在于提出一种基于域名、更为灵活、实用性更强且能够有效应对高并发业务请求的节点调度方法,以及能够实现该方法的系统、终端以及相应的存储介质。
为实现前述目的,本发明实施例提供了基于域名的节点调度方法,所述方法包括以下步骤:
对集群中的节点进行初始化配置,确定第一从属节点,其中,所述第一从属节点包括候选主节点和非候选主节点;
向所述非候选主节点发出状态探测请求,得到各个非候选主节点的状态探测信息,并根据所述状态探测信息将所述非候选主节点确定为目标主节点;
根据所述目标主节点构建得到目标访问地址集合,通过所述目标访问地址集合对业务请求进行访问地址分配。
为实现前述目的,本发明实施例还提供了基于域名的节点调度系统,所述系统包括:
节点初始化单元,用于对集群中的节点进行初始化配置,确定第一从属节点,其中,所述第一从属节点包括候选主节点和非候选主节点;
主节点生成单元,用于向所述非候选主节点发出状态探测请求,得到各个非候选主节点的状态探测信息,并根据所述状态探测信息将所述非候选主节点确定为目标主节点;
业务请求单元,用于根据所述目标主节点构建得到目标访问地址集合,通过所述目标访问地址集合对业务请求进行访问地址分配。
为实现前述目的,本发明实施例还提供了基于域名的节点调度终端,所述终端包括存储器、处理器、存储在所述存储器上并可在所述处理器上运行的程序以及用于实现所述处理器和所述存储器之间的连接通信的数据总线,所述程序被所述处理器执行时实现前述方法的步骤。
为实现上述目的,本发明提供了一种存储介质,用于计算机可读存储,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述方法的步骤。
本发明的优点和有益效果将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到:
本发明提出的基于域名的节点调度方法、系统、终端和存储介质,方案首先对域名系统的集群节点进行初始化处理,并将所有的初始化节点设置为从属节点;然后通过基于主节点心跳信号以及节点投票的方式产生主节点;并以此形成主从节点关系的整体架构,当集群架构单个从属节点出现故障或者异常时,可以迅速切换至主节点的其他从属节点,以此提高方案整体的抗高并发能力以及抗风险能力;方案根据主节点构建得到访问地址集合,对业务请求进行访问地址分配,对可用的节点或者对应访问地址进行了必要的筛选,实现了集群节点自动化管理,减少人工介入,提高服务可用性和抗风险能力;相应地,客户端的用户使用体验也得到了有效提升。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于域名的节点调度方法的步骤流程图。
图2为本发明实施例提供的另一种基于域名的节点调度方法的步骤流程图。
图3为本发明实施例提供的基于域名的节点调度系统结构示意图。
图4为本发明实施例提供的基于域名的节点调度终端结构示意图。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特有的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
如背景技术部分的表述,在相关技术中,域名系统(Domain Name System,DNS)经常被用在解析域名的场景,并伴随着互联网技术的不断发展,DNS也逐渐承担起更多的功能,例如,在许多大型网站后台,通常会采用DNS来实现负载均衡的功能;又例如,在存在N个节点的网站,相关技术在后台通常会采用DNS中CNAME记录的方式,利用一个对外域名,提供给客户端使用,这一条域名又可以对应系统内部多条域名,每个域名对应不同的集群。需要说明的是,本申请技术方案的实施例中,IP地址与域名是一对多的关系,即一个IP地址可以对应多个域名,但是一个域名仅仅对应一个IP地址。当业务请求进入DNS中,则会将请求以轮询、加权等方式将请求较为均衡的分不到其他集群上,因此,多个集群对外呈现的是以一个整体的方式提供服务,提升了整个系统的处理能力。但是,现有的技术方案依然存在着明显的缺陷:如果出现集群故障的场景,整个系统可能会导致大量的请求超时甚至拖垮整个系统,严重影响客户端的使用体验。
而在集群中某个节点故障后,那么该节点将无法继续提供服务,如果有请求继续发送到该节点,那么将导致此次访问失败,大量的请求若发送到了故障节点,则是软件系统无法接受的,针对上述相关技术中所存在的问题或缺陷,如图1所示,本申请技术方案的实施例提供了一种基于域名的节点调度方法,该方法主要包括步骤S100-S300:
步骤S100:对集群中的节点进行初始化配置,确定第一从属节点;其中,第一从属节点包括候选主节点以及非候选主节点;
具体在实施例中,方法首先对业务服务后台的软件系统进行初始化处理,在初始化的过程中,方法会对集群节点,即业务请求可能进行访问的目标节点(目标IP地址)进行统一的初始化或回复默认配置;在实施例中,集群节点的初始化过程包括但不限于在群集中运行防火墙、配置端口参数协议以使节点之间能够进行通信以及清除不必要的缓存数据等;进行初始化之后的集群节点,即为实施例中的第一从属节点。
需要说明的是,实施例中的集群节点存在着至少三种不同的工作状态,分别为候选主节点(Ready状态)、非候选主节点即从属节点(Slave状态)、主节点(Master状态),其中,Ready状态的节点,在经由其他从属节点进行投票之后,根据投票结果,可以晋升为主节点;主节点下通常设有多个从属节点。进而,在实施例中在对集群节点进行初始化之后,节点状态应该都为Slave状态,即从属节点状态。
步骤S200:向所述非候选主节点发出状态探测请求,得到各个非候选主节点的状态探测信息,并根据所述状态探测信息将所述非候选主节点确定为目标主节点;
其中,向非候选主节点发出状态探测请求包括但不限于主节点心跳信号或者节点状态信息等;在实施例中,各个状态下的集群节点可以HTTP2协议进行通信,在其他从属节点没有正常接收到主节点所发出的主节点心跳信号的情况下,该节点将从Slave状态晋升为Ready状态,即从普通的从属节点筛选出候选主节点。其中,主节点心跳信号其主要是用于不间断地检测集群节点中的主节点,是否处于正常的工作状态;在实施例中,主节点需要按照预设的时间周期,向该主节点下的其他从属节点发送心跳检测信号,以确保该主节点处于正常的工作状态,能够对其从属节点进行相应的调度管理。
在实施例的系统中存在着至少一个Ready状态节点的情况下,该Ready状态节点可以向其他非候选主节点、即其他从属节点发起HTTP消息请求,在该HTTP消息请求中包含了向集群内其他节点发送投票请求(Vote请求)。其他从属节点在接收到Vote请求后,向Ready状态的节点回应Vote ack请求,当Ready节点接收到超半数节点的Vote ack请求后,则Ready状态节点可以晋升为主节点。
示例性地,实施例中的投票选举主节点的过程,可以通过多数投票算法(MajorityVote Algorithm)产生主节点;其中,集群内其他从属节点根据是否与该Ready状态的节点建立通信连接、或者端口协议是否匹配等作为投票依据,反馈相应的投票结果至发出投票请求的Ready状态节点,当反馈的结果中存在半数及以上的支持票时,该Ready状态节点可以升级为主节点;结合多数投票算法,在投票的过程中,其他的从属节点将生成一个数组,数组中的非负元素则代表了每个从属节点与该ready状态节点的相匹配的条件数目(是否建立通信连接或者端口协议是否匹配等)然后将这一数组中的元素进行排序,并输出排序后的中间位置的元素,则该元素作为这一Ready状态的节点,是否能够成为主节点的条件数目;条件数目满足,则该ready状态的节点可以提升为主节点,否则重新筛选出下一个ready状态的节点。
步骤S300:根据目标主节点构建得到目标访问地址集合,通过目标访问地址集合对业务请求进行访问地址分配;
具体在实施例中,当步骤S200成功筛选得到主节点后,根据新的主节点与其他重复节点之间是否存在通信连接、端口协议是否匹配或者是否属于统一网关为分类标准,将其他的从属节点分配至不同的主节点的分组中;形成节点的主从关系。进一步地,实施例以主节点为单位,将主节点的分组中所包含的所有的从属节点的IP地址进行整合,生成得到目标访问地址集合。实施例在完成主节点和存储节点的关系确定之后,该集群节点架构可以应用于软件系统协同DNS提供业务服务。
示例性地,当软件系统接收到用户的访问请求,即业务请求时,首先通过DNS对业务请求中的域名进行解析,根据确定的目标访问地址集合,进行域名与IP地址对应关系的解析,确定业务请求访问的目标IP地址;进而,根据域名或IP地址所确定唯一的访问路径,可以访问到相应的主节点下的从属节点,以实现业务请求的访问。
在一些可选择的实施例中,为了确保主节点的高度可用,避免在出现大量的业务请求的场景中,因主节点故障或异常而导致的访问失败,方法在步骤S100将初始化后的集群节点设置为第一从属节点这一过程之后,还可以通过步骤S110-S120,对主节点是否处于可用状态进行实时监测,其中:
步骤S110:确定第一时间周期;
具体在实施例中,软件系统的集群节点均设置有计时器,而且每一个计时器均可以产生一个随机值,作为第一时间周期。
步骤S120:将在第一时间周期内未接收到心跳信号的第一从属节点,确定为候选主节点;或者,将在第一时间周期内接收到心跳信号的第一从属节点,确定为非候选主节点;
具体在实施例中,在计时器指定时间内没有接收到主节点心跳信号,则该从属节点可以升级为Ready状态,成为候选主节点;再由该候选主节点向其他从属节点发起HTTP消息请求,向集群内其他节点发送投票请求(Vote请求),其他从属节点接收到Vote请求后,重置节点本地的计时器,并向候选主节点回应Vote ack请求,当候选主节点接收到超半数节点的ack请求后,则Ready状态晋升为Master状态,成为主节点。而在计时器指定时间内接收到主节点心跳信号,则该从属节点已经存在对应的主节点,则不会Ready状态,即属于非候选主节点。
实施例通过周期性的主节点心跳信号实时监测主节点的可用状态,以此实现集群节点自动故障迁移(Automatic failover);当一个主节点不能正常工作时,实施例系统会开始一次自动故障迁移操作,可以将一个从属节点升级为新的主节点,并让失效主节点的其他从属节点重新建立主从关系。当客户端试图连接失效的主节点时,集群也会向客户端返回新的主节点的地址,实现故障节点的快速替换,替换过程对于客户端而言是无感的,也将不会对客户端的正常使用产生影响。
在一些可选择的实施例中,为了确保主节点的分组中的所有的从属节点也均处于可用的状态,方法的步骤S300根据主节点构建得到访问地址集合这一过程,其可以包括子步骤S310-S330:
步骤S310:发送节点检测信号至所述主节点的从属节点集群;
其中,从属节点集群包括至少一个非候选主节点即从属节点;节点检测信号包括但不限于健康心跳检测信号等。具体地,健康心跳检测信号是由主节点发送至其从属节点,用于实时监测从属节点是否处于正常工作状态。需要说明的是,从属节点集群中的节点可以包括未能进入至Ready状态的从属节点,或者是在筛选主节点的过程中,进入至Ready状态但投票结果并未通过的从属节点;在实施例已经确定主节点之后,则需要对这两类从属节点分配至主节点的分组中。
具体在实施例中,根据主节点本地的计时器,生成一个随机数作为第二时间周期,在第二时间周期内,实施例系统的主节点会向其分组中的从属节点定期发出健康心跳检测信号。
步骤S320:根据非候选主节点对节点检测信号的正常响应,确定非候选主节点为可用节点;
具体在实施例中,系统中的其他从属节点在接收到主节点发出健康心跳检测信号之后,对该从属节点自身的运行状态以及相关配置参数进行检测;检测结果确定该从属节点并不存在任何异常情况,则反馈相应的可用状态信息至当前分组下的主节点。需要说明的是,实施例中从属节点对自身进行检测的内容,包括但不限于检测节点自身的服务监听接口、检测各个通信端口的通信协议以及信道是否可用等等。相反的,若从属节点进行检测之后,确实存在异常情况或故障,则会反馈不可用的状态信息至该分组的主节点,再由主节点进行相应的调度处理,例如将该从属节点进行冻结或者移除等。
步骤S330:获取可用节点的访问地址构建目标访问地址集合;
具体在实施例中,根据主节点接收到的从属节点的正常状态的信息反馈,DNS系统将从主节点中获取正常可用的从属节点的IP地址的集合,并将包含有所有可用从属节点的IP地址的集合缓存于DNS的内存中。当接收到相应的业务请求时,可以直接根据DNS的内存中所缓存的IP地址的集合确定访问路径。
在一些可选择的实施例中以及在业务请求高并发的实际场景中,系统中可能会出现节点故障的情况,而针对节点的异常或者故障情况需要进行快速的响应以及处理,以避免客户端出现访问请求失败从而导致用户体验不佳的情况。因此实施例的方法在步骤S310发送节点检测信号至主节点的从属节点集群之后,还可以包括步骤S340-S360:
步骤S340:根据非候选主节点对节点检测信号的异常响应,确定非候选主节点为异常节点;
其中,异常响应包括但不限于节点响应超时或节点未响应。具体在实施例中,存在一定概率会出现从属节点故障或异常的情况,而在系统中,主节点获取从属节点存在异常状态的方式,包括但不限于在主节点计时器所预设的时间周期内,主节点并未接收到存储节点所反馈的状态信息,又或者从属节点向主节点反馈状态信息超过了计时器所设置的时间周期,则认定这一从属节点属于异常节点。示例性的,在一实施例的主节点中,计时器所产生的响应周期为两秒,而在两秒的周期内,该主节点并未接收到从属节点A所反馈的节点状态信息,则认定该主节点的分组中,从属节点A为异常节点。
步骤S350:根据异常节点的访问地址,构建得到异常访问地址集合;
具体在实施例中,系统可以根据异常节点的IP地址,构建异常访问的地址集合。与正常的访问地址集合相类似地,DNS系统将包含有所有异常从属节点的IP地址的集合缓存于DNS的内存中。
步骤S360:当业务请求的目的访问地址为异常访问地址集合的地址,将目的访问地址变更为目标访问地址集合的地址;
具体在实施例中,当接收到的业务请求时,根据DNS对其访问的目标域名进行解析。确定这一业务请求所需要访问的目的地址为异常的存储节点的IP地址,这一确定的过程是根据DNS中所缓存的异常访问地址集合进行匹配,确定访问的目的地址同时也记录在异常访问地址集合中;然后DNS向集群节点中的主节点发送probe探测请求,获取正常可用的访问地址集合(访问地址集合也可以是缓存至DNS中);再由DNS分发业务请求到正常的从属节点的IP地址,以确保业务请求不会分发到异常节点。在一些实施例中,对于异常IP集合,还可以通过告警的方式,上报从属节点的异常状态。
在一些可选择的实施例中,为了提高DNS缓存读写速度,方法可以采用同步读写的策略来进行数据内容的读写,例如写时复制(Copy On Write,COW)策略,当有多个调用者同时请求一个资源的时候,那么多个调用者会同时获取同一个指针指向资源。写时复制策略是当一个调用者想要对资源内容进行修改时,会复制一份资源给调用者,所有的操作对于其他的调用者都是透明的,直到操作完毕并保存。基于这一技术原理,方法在步骤S300通过目标访问地址集合对业务请求进行访问地址分配之前,还可以包括步骤S210-S240:
步骤S210、将目标访问地址集合写入第一存储空间;
具体在实施例中,首先由DNS向集群节点中的主节点发送probe探测请求,获取得到可用的访问地址集合,并同时申请得到一个可用的内存空间,记作第一存储空间,并将获取得到的访问地址集合写入这一内存空间。
步骤S220、根据非候选主节点对节点检测信号的响应,更新目标访问地址集合;
具体在实施例中,由于集群节点中的主节点会周期性地向其分组中的从属节点发送健康心跳检测信号,在存储节点的实时监测过程中根据从属节点的实时状态反馈,对从属节点的可用情况进行实时的更新,进而对可用的访问地址集合进行同步更新。当主节点检测到其分组中出现了异常的从属节点时,则会将该从属节点的IP地址从可用的访问地址集合中进行移除,以实现可用的访问地址集合的更新。
步骤S230、生成第一存储空间的副本,设置业务请求的工作区指针指向副本;
具体在实施例中,DNS向集群节点中的主节点周期性的发送probe探测请求,以获取得到更新后的可用的访问地址集合,并在确认接收到更新后的可用访问地址集合之后,DNS将重新申请一块内存区域作为第一存储空间的副本或者备份,并将第一存储空间中的未更新前的访问地址集合写入这一内存区域中,并将系统中业务请求的工作区指针指向这一副本的内存区域,以确保在访问地址集合更新的过程中,业务请求的访问能够正常的进行。
步骤S240、将更新后的目标访问地址集合写入第一存储空间,回调工作区指针指向第一存储空间;
具体在实施例中,在DNS讲更新后的可用访问地址集合写入第一存储空间之后,再将系统中业务请求工作区指针回调指向第一存储空间,并移除第一存储空间的副本数据。至此实施例完成了访问地址集合同步读写,区别于相关技术中加锁的Lock模式,实施例的方法极大减小了IP集合进行更新时对业务请求的影响。
需要说明的是,实施例读写异常访问地址集合与可用访问地址集合的步骤流程相同,在此不进行赘述。
在一些可选择的实施例中,尤其是在业务请求高并发的场景中,为了保证大量的业务请求能够访问有序的进行,实施例还可以采用轮询机制来对业务请求的IP地址进行分发。基于轮询机制的技术原理,实施例方法的步骤S300中通过访问地址集合对业务请求进行访问地址分配这一过程,可以包括步骤S370-S380:
步骤S370:通过轮询机制,根据业务请求从目标访问地址集合得到目标访问地址;
具体地,实施例根据轮询机制进行业务请求的IP地址分发,其中,轮询机制是指将周期性的依次选中正常IP集合内的单个IP地址。
步骤S380:根据目标访问地址访问目标节点;
具体在实施例中,可以采用的轮询算法包括但不限于:轮询算法和加权轮询算法等。以轮询算法为例,轮询算法是最简单的一种负载均衡算法,其原理是把业务请求轮流分配给可用访问地址集合中:从可用状态的从属节点1开始,直到从属节点N,然后重新开始循环。轮询算法的优点是其简洁性,无需记录当前所有连接的状态,是一种无状态调度,能够减少处理器计算资源的占用,使得访问的响应更加迅速,用户体验更好。
为了能适用更为宽泛的业务场景,满足更多样的业务需求,例如在一些可能的应用场景中,根据业务需求的不断变化,需要对系统中的各个节点进行适当的升级和下线处理,因此,在一些可选择的实施例中,方法还可以包括步骤S400-S500:
步骤S400:获取节点服务的下线指令,根据下线指令冻结非候选主节点;
具体的实施例中,对于升级,下线等场景,系统需保证集群业务不受影响并完成节点的平稳下线;当某个节点服务将要下线时,可将该节点是否接收外部请求设置为Freezed,即该节点进入冻结状态,冻结状态下的节点表示不再接收任何业务请求的访问。
步骤S500:从目标访问地址集合移除冻结后的非候选主节点的访问地址,并关闭冻结后的非候选主节点的访问链接;
具体的实施例中,集群中的主节点感知到其分组中存在设置为Freezed状态的,则将该从属节点的IP地址从可用的访问地址集合中剔除。需要说明的是,该Freezed状态节点将不会再接收到新的外部请求,但需要优先处理原来已经进来的请求,主节点不断检测该节点连接数,直至连接数为0时,主节点同意该从属节点下线,该从属节点平滑下线,不会造成业务侧出现连接中断的情况。
根据附图2,以具体的应用场景为例具体说明本申请技术方案的基于域名的节点调度方法的实际应用。
以某网站的后台系统为例,其后台服务器的节点有三种状态Master、Ready或者Slave;首先需要进行主节点的选取;系统开始初始化,在初始化阶段,各节点状态为Slave,节点间使用HTTP2协议进行通信,节点均设置计时器,每个计时器设置一个随机值;在计时器指定时间内没有收到Master心跳,则将高节点升级为Ready状态,接着向其他节点发起HTTP消息请求,向集群内其他节点发送投票请求,其他Slave节点接收到vote请求后,重置自身计时器,并向Ready状态的节点回应vote ack请求,当Ready节点接收到超半数节点的ack请求后,则Ready状态晋升为Master状态。
然后,在实施例选出Master节点之后,由Master节点向其他Slave节点定期发出健康心跳检查,其他节点接收到健康心跳的探测请求后,检查自身的节点状态,例如检测节点的服务的监听端口是否正常,并返回自身是否可用的响应。若节点全部正常,DNS将从Master节点获取正常节点的IP集合,将所有节点IP缓存于DNS内存中,根据轮询算法进行业务IP的分发。DNS在更新IP集合缓存进程中采用COW策略而非加Lock模式,极大减小了IP集合进行更新时对业务的影响。
如果Master节点向某个Slave节点发送请求超时,或者接受到Slave节点发送过来error response,则记录该Slave节点状态异常,正常Slave节点将正常响应。根据各个节点的响应信息,形成两类节点名单集合,一类归总异常IP集合,另一类归总到正常IP集合。DNS向集群中的Master节点发送probe探测请求,获取正常节点的名单。DNS分发请求到正常节点IP,保证业务请求不会分发到异常节点。对于异常IP集合,通过告警上报节点异常状态。
对于升级,下线等场景,需保证集群业务不受影响平稳下线。当某个节点服务将要下线时,可将该节点是否接收外部请求设置为Freezed,表明该节点不再接收任何业务请求,此时集群中Master节点感知到此节点已经设置为Freezed,则将该Slave节点的IP剔除正常IP集合。该Freezed节点将不会再接收到新的外部请求,于是优先处理原来已经进来的请求,Master不断检测该节点连接数,直至连接数为0时,Master节点同意该节点下线,该Slave节点平滑下线,不会造成业务侧出现连接中断的情况。
本领域技术人员可以理解的是,本申请的实施例或者实施方式,可以扩充到如在线资源管理、信息加密传输等更多的应用场景中,在此不再一一赘述。
如图3所示,本发明实施例提供基于域名的节点调度系统,该系统包括:
节点初始化单元310,用于对集群中的节点进行初始化配置,确定第一从属节点,其中,第一从属节点包括候选主节点和非候选主节点;
主节点生成单元320,用于向非候选主节点发出状态探测请求,得到各个非候选主节点的状态探测信息,并根据状态探测信息将非候选主节点确定为目标主节点;
业务请求单元330,用于根据目标主节点构建得到目标访问地址集合,通过目标访问地址集合对业务请求进行访问地址分配。
示例性地,以某社交APP的数据后台为例,首先对APP的业务服务后台的软件系统进行初始化处理,将业务请求可能进行访问的目标节点(目标IP地址)进行统一的初始化或回复默认配置,并设置为从属节点。每个从属节点均设置计时器,在计时器指定时间内没有收到主节点心跳信号,则将该从属节点升级为候选节点,随后,候选节点向其他从属节点发起HTTP消息请求,向集群内其他节点发送投票请求。其他从属节点接收到投票请求后,重置自身计时器,并向候选节点的节点反馈投票结果,当候选节点接收到超半数从属节点的通过投票结果后,则将该候选节点晋升为主节点。
成功筛选得到主节点后,根据新的主节点与其他重复节点之间是否存在通信连接、端口协议是否匹配或者是否属于统一网关为分类标准,将其他的从属节点分配至不同的主节点的分组中;形成节点的主从关系。确定主从的分组关系之后,主节点向其分组中的从属节点定期发出健康心跳检查信号,从属节点接收到健康心跳的探测请求后,检查自身的节点状态,并返回自身是否可用的响应。若节点全部正常,软件系统的DNS将从主节点获取正常节点的IP集合,将所有节点IP缓存于DNS内存中,根据轮询算法进行业务IP的分发。
当主节点接受到从属节反馈的异常状态信息,则记录该从属节点状态异常,正常从属节点将正常响应。根据各个节点的响应信息,形成两类节点名单集合,一类归类异常IP集合,另一类归类到正常IP集合。软件系统的DNS向集群中的主节点发送probe探测请求,获取正常节点的名单。DNS分发请求到正常节点IP,保证业务请求不会分发到异常节点。对于异常IP集合,通过告警上报节点异常状态。
对于升级,下线等场景,系统需保证集群业务不受影响并完成节点的平稳下线;当某个节点服务将要下线时,可将该节点是否接收外部请求设置为Freezed,即该节点进入冻结状态,冻结状态下的节点表示不再接收任何业务请求的访问。
如图4所示,本发明实施例提出一种基于域名的节点调度终端400,该终端400包括存储器410、处理器420、存储在该存储器上并可在该处理器上运行的程序以及用于实现处理器410和存储器420之间的连接通信的数据总线430,该程序被该处理器执行时,以实现以下如图1所示的具体步骤:
步骤S100:对集群中的节点进行初始化配置,确定第一从属节点,其中,第一从属节点包括候选主节点和非候选主节点;
具体地,首先对业务服务后台的软件系统进行初始化处理,在初始化的过程中,方法会对集群节点,即业务请求可能进行访问的目标节点(目标IP地址)进行统一的初始化或回复默认配置。
步骤S200:向非候选主节点发出状态探测请求,得到各个非候选主节点的状态探测信息,并根据状态探测信息将非候选主节点确定为目标主节点;
具体地,各个状态下的集群节点可以HTTP2协议进行通信,在其他从属节点没有正常接收到主节点所发出的主节点心跳信号的情况下,该节点将从Slave状态晋升为Ready状态,即从普通的从属节点转换为候选主节点。
步骤S300:根据目标主节点构建得到目标访问地址集合,通过目标访问地址集合对业务请求进行访问地址分配;
具体地,当步骤S200成功筛选得到主节点后,根据新的主节点与其他重复节点之间是否存在通信连接、端口协议是否匹配或者是否属于统一网关为分类标准,将其他的从属节点分配至不同的主节点的分组中;形成节点的主从关系。进一步地,实施例以主节点为单位,将主节点的分组中所包含的所有的从属节点的IP地址进行整合,生成得到访问地址集合。根据所确定的访问地址集合,进行域名与IP地址对应关系的解析,确定业务请求访问的目标IP地址;进而,根据域名或IP地址所确定唯一的访问路径,可以访问到相应的主节点下的从属节点,以实现业务请求的访问。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有一个或者多个程序,该一个或者多个程序可被一个或者多个处理器执行,以实现以下如图1所示的具体步骤:
S100:对集群中的节点进行初始化配置,确定第一从属节点,其中,第一从属节点包括候选主节点和非候选主节点;
S200:向非候选主节点发出状态探测请求,得到各个非候选主节点的状态探测信息,并根据状态探测信息将非候选主节点确定为目标主节点;
S300:根据目标主节点构建得到目标访问地址集合,通过目标访问地址集合对业务请求进行访问地址分配;
示例性地,。以某社交APP的数据后台为例,首先对APP的业务服务后台的软件系统进行初始化处理,并设置为从属节点。每个从属节点均设置计时器,在计时器指定时间内没有收到主节点心跳信号,则将该从属节点升级为候选节点,随后,候选节点向集群内其他节点发送投票请求。其他从属节点接收到投票请求后,向候选节点的节点反馈投票结果,当候选节点接收到超半数从属节点的通过投票结果后,则将该候选节点晋升为主节点。
成功筛选得到主节点后,将其他的从属节点分配至不同的主节点的分组,主节点向其分组中的从属节点定期发出健康心跳检查信号,从属节点接收到健康心跳的探测请求后,检查自身的节点状态,并返回自身是否可用的响应。软件系统的DNS将从主节点获取正常节点的IP集合,将所有节点IP缓存于DNS内存中,根据轮询算法进行业务IP的分发。
当主节点接受到从属节反馈的异常状态信息,则记录该从属节点状态异常,正常从属节点将正常响应。根据各个节点的响应信息,形成两类节点名单集合,一类归类异常IP集合,另一类归类到正常IP集合。软件系统的DNS通过集群中的主节点获取正常节点的名单。DNS分发请求到正常节点IP,保证业务请求不会分发到异常节点。对于异常IP集合,通过告警上报节点异常状态。
本领域技术人员可以理解的是,本申请的实施例或者实施方式,可以扩充到如在线资源管理、信息加密传输等更多的应用场景中,在此不再一一赘述。
综上所述,本申请实施例提出的基于域名的节点调度方法、系统、计算机终端和存储介质,方案首先对域名系统的集群节点进行初始化处理,并将所有的初始化节点设置为从属节点;然后通过基于主节点心跳信号以及节点投票的方式产生主节点;并以此形成主从节点关系的整体架构,当集群架构单个从属节点出现故障或者异常时,可以迅速切换至主节点的其他从属节点。
相较于现有的文本情感分析的技术方案,本申请的技术方案具有下述的优点或优势:
1)本申请技术方案整体的抗高并发能力以及抗风险能力;方案根据主节点构建得到访问地址集合,对业务请求进行访问地址分配,对可用的节点或者对应访问地址进行了必要的筛选,实现了集群节点自动化管理,减少人工介入,提高服务可用性和抗风险能力;相应地,客户端的用户使用体验也得到了有效提升。
2)本申请技术方案基于DNS的分布式存储系统节点算法,使得集群节点可以自动化管理,减少人工介入,提高服务可用性。既能够保证集群中故障节点被及时的剔除后从提高响应的正确率,又可以保证故障节点被运维人员及时发现进行后续运维,减少了分布式存储系统在后续的运维中的工作量。
本申请实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。而人工智能软件技术可以包括但不限于:计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
此外,本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
在一些其他的可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或所述方框有时能以相反顺序被执行。此外,在本发明的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。
应当理解的是,除非另有相反说明,功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或终端(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或终端取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或终端而使用。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于上述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

Claims (10)

1.基于域名的节点调度方法,其特征在于,所述方法包括以下步骤:
对集群中的节点进行初始化配置,确定第一从属节点,其中,所述第一从属节点包括候选主节点和非候选主节点;
向所述非候选主节点发出状态探测请求,得到各个非候选主节点的状态探测信息,并根据所述状态探测信息将所述非候选主节点确定为目标主节点;
根据所述目标主节点构建得到目标访问地址集合,通过所述目标访问地址集合对业务请求进行访问地址分配。
2.根据权利要求1所述的基于域名的节点调度方法,其特征在于,所述对集群中的节点进行初始化配置,确定第一从属节点,包括:
确定第一时间周期;
将在所述第一时间周期内未接收到心跳信号的所述第一从属节点,确定为所述候选主节点;
或,
将在所述第一时间周期内接收到心跳信号的所述第一从属节点,确定为所述非候选主节点。
3.根据权利要求1所述的基于域名的节点调度方法,其特征在于,所述根据所述目标主节点构建得到目标访问地址集合这一步骤,包括:
发送节点检测信号至所述主节点的从属节点集群,所述从属节点集群包括至少一个所述非候选主节点;
根据所述非候选主节点对所述节点检测信号的正常响应,确定所述非候选主节点为可用节点;
获取所述可用节点的访问地址构建所述目标访问地址集合。
4.根据权利要求3所述的基于域名的节点调度方法,其特征在于,在发送节点检测信号至所述主节点的从属节点集群之后,所述调度方法包括:
根据所述非候选主节点对所述节点检测信号的异常响应,确定所述非候选主节点为异常节点;所述异常响应包括节点响应超时或节点未响应;
根据所述异常节点的访问地址,构建异常访问地址集合;
当所述业务请求的目的访问地址为所述异常访问地址集合的地址,将所述目的访问地址变更为所述目标访问地址集合的地址。
5.根据权利要求3所述的基于域名的节点调度方法,其特征在于,在通过所述目标访问地址集合对业务请求进行访问地址分配之前,所述调度方法包括:
将所述目标访问地址集合写入第一存储空间;
根据所述非候选主节点对所述节点检测信号的响应,更新所述目标访问地址集合;
生成所述第一存储空间的副本,设置所述业务请求的工作区指针指向所述副本;
将更新后的所述目标访问地址集合写入所述第一存储空间,回调所述工作区指针指向所述第一存储空间。
6.根据权利要求1所述的基于域名的节点调度方法,其特征在于,所述通过所述目标访问地址集合对业务请求进行访问地址分配,包括:
通过轮询机制,根据所述业务请求从所述目标访问地址集合得到目标访问地址的序列;
根据所述目标访问地址的序列访问目标节点。
7.根据权利要求3-6任一项所述的基于域名的节点调度方法,其特征在于,在通过所述目标访问地址集合对业务请求进行访问地址分配之后,所述调度方法还包括:
获取节点服务的下线指令,根据所述下线指令冻结所述非候选主节点;
从所述目标访问地址集合移除冻结后的非候选主节点对应的访问地址,并关闭冻结后的非候选主节点的访问链接。
8.基于域名的节点调度系统,其特征在于,包括:
节点初始化单元,用于对集群中的节点进行初始化配置,确定第一从属节点,其中,所述第一从属节点包括候选主节点和非候选主节点;
主节点生成单元,用于向所述非候选主节点发出状态探测请求,得到各个非候选主节点的状态探测信息,并根据所述状态探测信息将所述非候选主节点确定为目标主节点;
业务请求单元,用于根据所述目标主节点构建得到目标访问地址集合,通过所述目标访问地址集合对业务请求进行访问地址分配。
9.基于域名的节点调度终端,其特征在于,所述终端包括存储器、处理器、存储在所述存储器上并可在所述处理器上运行的程序以及用于实现所述处理器和所述存储器之间的连接通信的数据总线,所述程序被所述处理器执行时实现如权利要求1-7任一项所述的基于域名的节点调度方法。
10.一种存储介质,用于计算机可读存储,其特征在于,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现权利要求1至7中任一项所述的基于域名的节点调度方法。
CN202111547167.6A 2021-12-16 2021-12-16 基于域名的节点调度方法、系统、终端和存储介质 Pending CN114189495A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111547167.6A CN114189495A (zh) 2021-12-16 2021-12-16 基于域名的节点调度方法、系统、终端和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111547167.6A CN114189495A (zh) 2021-12-16 2021-12-16 基于域名的节点调度方法、系统、终端和存储介质

Publications (1)

Publication Number Publication Date
CN114189495A true CN114189495A (zh) 2022-03-15

Family

ID=80544226

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111547167.6A Pending CN114189495A (zh) 2021-12-16 2021-12-16 基于域名的节点调度方法、系统、终端和存储介质

Country Status (1)

Country Link
CN (1) CN114189495A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115150273A (zh) * 2022-06-30 2022-10-04 联想(北京)有限公司 一种升级处理方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101820384A (zh) * 2010-02-05 2010-09-01 浪潮(北京)电子信息产业有限公司 一种集群服务动态分配方法及装置
CN104679907A (zh) * 2015-03-24 2015-06-03 新余兴邦信息产业有限公司 高可用高性能数据库集群的实现方法及系统
CN106060189A (zh) * 2016-07-08 2016-10-26 厦门纳网科技股份有限公司 一种分布式域名注册系统
CN107623711A (zh) * 2016-07-15 2018-01-23 北京金山云网络技术有限公司 一种集群中主节点及从节点的分配方法及装置
CN107846318A (zh) * 2017-11-15 2018-03-27 郑州云海信息技术有限公司 一种分布式集群及分布式集群管理方法
CN110730238A (zh) * 2019-10-21 2020-01-24 中国民航信息网络股份有限公司 一种集群的调用系统、方法及装置
WO2021031864A1 (en) * 2019-08-19 2021-02-25 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for performing protection control in a core network

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101820384A (zh) * 2010-02-05 2010-09-01 浪潮(北京)电子信息产业有限公司 一种集群服务动态分配方法及装置
CN104679907A (zh) * 2015-03-24 2015-06-03 新余兴邦信息产业有限公司 高可用高性能数据库集群的实现方法及系统
CN106060189A (zh) * 2016-07-08 2016-10-26 厦门纳网科技股份有限公司 一种分布式域名注册系统
CN107623711A (zh) * 2016-07-15 2018-01-23 北京金山云网络技术有限公司 一种集群中主节点及从节点的分配方法及装置
CN107846318A (zh) * 2017-11-15 2018-03-27 郑州云海信息技术有限公司 一种分布式集群及分布式集群管理方法
WO2021031864A1 (en) * 2019-08-19 2021-02-25 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for performing protection control in a core network
CN110730238A (zh) * 2019-10-21 2020-01-24 中国民航信息网络股份有限公司 一种集群的调用系统、方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115150273A (zh) * 2022-06-30 2022-10-04 联想(北京)有限公司 一种升级处理方法及装置
CN115150273B (zh) * 2022-06-30 2024-05-28 联想(北京)有限公司 一种升级处理方法及装置

Similar Documents

Publication Publication Date Title
US7849178B2 (en) Grid computing implementation
US9104572B1 (en) Automated root cause analysis
US9069730B2 (en) Coordinated reliability management of virtual machines in a virtualized system
US7320088B1 (en) System and method to automate replication in a clustered environment
US7584292B2 (en) Hierarchical system configuration method and integrated scheduling method to provide multimedia streaming service on two-level double cluster system
US10177994B2 (en) Fault tolerant federation of computing clusters
CN111258851B (zh) 一种集群的告警方法、装置、设置及存储介质
CN107453929B (zh) 集群系统自构建方法、装置及集群系统
GB2407887A (en) Automatically modifying fail-over configuration of back-up devices
US20180091586A1 (en) Self-healing a message brokering cluster
US20120198455A1 (en) System and method for supporting service level quorum in a data grid cluster
US20080281959A1 (en) Managing addition and removal of nodes in a network
US20180295029A1 (en) Managing groups of servers
WO2021031983A1 (zh) 一种汽车诊断云平台系统、业务实现方法
CN111818159A (zh) 数据处理节点的管理方法、装置、设备及存储介质
CN113949707A (zh) 基于OpenResty和K8S的容器云服务发现和负载均衡方法
CN109739435B (zh) 文件存储和更新方法及装置
CN106452836B (zh) 主节点设置方法及装置
CN113312153B (zh) 一种集群部署方法、装置、电子设备及存储介质
US7228460B2 (en) Multi-state status reporting for high-availability cluster nodes
US11500763B1 (en) Distributed canary testing with test artifact caching
CN111641669B (zh) 以网络为中心的进程控制系统中的动态负载平衡
CN114189495A (zh) 基于域名的节点调度方法、系统、终端和存储介质
US20200389546A1 (en) State replication, allocation and failover in stream processing
CN113946491A (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