CN110177007A - 实现网关异地多活的方法、装置、计算机设备及存储介质 - Google Patents
实现网关异地多活的方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN110177007A CN110177007A CN201910305843.5A CN201910305843A CN110177007A CN 110177007 A CN110177007 A CN 110177007A CN 201910305843 A CN201910305843 A CN 201910305843A CN 110177007 A CN110177007 A CN 110177007A
- Authority
- CN
- China
- Prior art keywords
- data center
- strange land
- gateway
- address
- client
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/22—Arrangements for detecting or preventing errors in the information received using redundant apparatus to increase reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0663—Performing the actions predefined by failover planning, e.g. switching to standby network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1034—Reaction to server failures by a load balancer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/321—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
- H04L9/3213—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请揭示了一种实现网关异地多活的方法、装置、计算机设备及存储介质,其中,实现网关异地多活的方法,包括:接收客户端发送的请求地址,其中,请求地址包括第一IP地址,第一IP地址与本地数据中心相对应;根据第一IP地址访问本地数据中心的第一网关,并判断第一网关是否处于可用状态;若第一网关处于不可用状态,则按照预定的优先级策略从其余可用的异地数据中心中确定出优先级最高的异地数据中心;访问优先级最高的异地数据中心的第二网关,并调用优先级最高的异地数据中心与本地数据中心之间的备份链路。该实现网关异地多活的方法解决了当服务方所在机房的应用出现问题时,调用方无法访问服务方所在机房的业务资源的技术问题。
Description
技术领域
本申请涉及到计算机技术领域,特别是涉及到一种实现网关异地多活的方法、装置、计算机设备及存储介质。
背景技术
对于规模较大的企业,为了满足业务需求,往往需要在不同的地方分别搭建机房(相当于数据中心),每个机房的网络主要分为DMZ网络区域、SF网络区域和PTR网络区域,其中,DMZ网络区域是给互联网调用的,PTR网络区域是给专线调用的,SF网络区域是给内网调用的,现有技术中,为了有效路由,需要根据调用方所在区域和服务方所在机房来确定调用哪条链路,因此一旦服务方所在机房的应用(如主机、网络或者基础设施故障)出现问题而导致网关不可用,那么调用方将无法访问服务方所在机房的业务资源,例如,搭建有北京机房、上海机房和广州机房(即分别在北京、上海和广州三个地方搭建了机房),调用方所在区域为互联网,服务方所在机房为北京机房的SF网络区域,那么为了有效路由,需要调用的链路只能是北京机房的DMZ网络区域到北京机房的SF网络区域,因此一旦北京机房的应用出现了问题,那么调用方将无法访问到北京机房的业务资源。
因此,当服务方所在机房的应用出现问题时,如何使调用方仍能访问服务方所在机房的业务资源,是本领域技术人员亟待解决的技术问题。
发明内容
本申请的主要目的为提供一种实现网关异地多活的方法、装置、计算机设备及存储介质,旨在解决当服务方所在机房的应用出现问题时,调用方无法访问服务方所在机房的业务资源的技术问题。
本申请提出一种实现网关异地多活的方法,应用于数据中心***,数据中心***至少包括两个数据中心,各个数据中心分别设置在不同的地区,且各个数据中心之间通过预设的备份链路相互连通,方法包括:
接收客户端发送的请求地址,其中,请求地址包括第一IP地址,第一IP地址与本地数据中心相对应;
根据第一IP地址访问本地数据中心的第一网关,并判断第一网关是否处于可用状态;
若第一网关处于不可用状态,则按照预定的优先级策略从其余可用的异地数据中心中确定出优先级最高的异地数据中心;
访问优先级最高的异地数据中心的第二网关,并调用优先级最高的异地数据中心与本地数据中心之间的备份链路,以使客户端通过备份链路访问本地数据中心的业务资源。
进一步地,接收客户端发送的请求地址的步骤之前,还包括:
接收客户端发送的身份信息和访问令牌请求,并判断身份信息是否合法;
若身份信息合法,则响应访问令牌请求,生成访问令牌信息并将访问令牌信息发送至客户端。
进一步地,请求地址还包括访问令牌信息,访问优先级最高的异地数据中心的第二网关,并调用优先级最高的异地数据中心与本地数据中心之间的备份链路的步骤之前,还包括:
检验访问令牌信息是否合法;
若访问令牌信息合法,则执行访问优先级最高的异地数据中心的第二网关,并调用优先级最高的异地数据中心与本地数据中心之间的备份链路,以使客户端通过备份链路访问本地数据中心的业务资源的步骤。
进一步地,判断第一网关是否处于可用状态的步骤,包括:
间隔预设周期向第一网关发送心跳包,并判断预设时间内是否接收到第一网关响应心跳包而返回的反馈信息;
若预设时间内未接收到第一网关返回的反馈信息,则判定第一网关处于不可用状态。
进一步地,请求地址还包括对应客户端的第二IP地址,按照预定的优先级策略从其余可用的异地数据中心中确定出优先级最高的异地数据中心的步骤,包括:
获取其余异地数据中心对应的网关状态,并根据网关状态确定出当前所有可用的异地数据中心;
获取当前所有可用的异地数据中心对应的第三IP地址,并根据第一IP地址和第三IP地址计算本地数据中心与当前所有可用的异地数据中心之间的距离,获得多个对应的第一距离,以及,根据第二IP地址和第三IP地址计算客户端与当前所有可用的异地数据中心之间的距离,获得多个对应的第二距离;
根据第一距离和第二距离计算客户端访问业务资源所经链路的距离,获得多个对应的链路距离;
从多个链路距离中挑选出距离最短的链路距离,并将距离最短的链路距离对应的异地数据中心确定为优先级最高的异地数据中心。
进一步地,按照预定的优先级策略从其余可用的异地数据中心中确定出优先级最高的异地数据中心的步骤,包括:
获取其余异地数据中心对应的网络流量,并根据网络流量确定出当前所有可用的异地数据中心;
根据网络流量,从当前所有可用的异地数据中心中挑选出网络流量最少的异地数据中心;
将网络流量最少的异地数据中心确定为优先级最高的异地数据中心。
进一步地,请求地址还包括对应客户端的第二IP地址,按照预定的优先级策略从其余可用的异地数据中心中确定出优先级最高的异地数据中心的步骤,包括:
获取其余异地数据中心对应的网关状态,并根据网关状态确定出当前所有可用的异地数据中心;
获取当前所有可用的异地数据中心对应的网络流量和第三IP地址;
根据第一IP地址和第三IP地址计算本地数据中心与当前所有可用的异地数据中心之间的距离,获得多个对应的第一距离,以及,根据第二IP地址和第三IP地址计算客户端与当前所有可用的异地数据中心之间的距离,获得多个对应的第二距离,并根据第一距离和第二距离计算客户端访问业务资源所经链路的距离,获得多个对应的链路距离;
根据链路距离和网络流量结合预设的权重值,从当前所有可用的异地数据中心中确定出优先级最高的异地数据中心。
本申请还提出一种实现网关异地多活的装置,应用于数据中心***,数据中心***至少包括两个数据中心,各个数据中心分别设置在不同的地区,且各个数据中心之间通过预设的备份链路相互连通,该装置包括:
接收模块,用于接收客户端发送的请求地址,其中,请求地址包括第一IP地址,第一IP地址与本地数据中心相对应;
访问模块,用于根据第一IP地址访问本地数据中心的第一网关,并判断第一网关是否处于可用状态;
确定模块,用于当第一网关处于不可用状态时,按照预定的优先级策略从其余可用的异地数据中心中确定出优先级最高的异地数据中心;
调用模块,用于访问优先级最高的异地数据中心的第二网关,并调用优先级最高的异地数据中心与本地数据中心之间的备份链路,以使客户端通过备份链路访问本地数据中心的业务资源。
本申请还提出一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现前述的实现网关异地多活的方法的步骤。
本申请还提出一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现前述的实现网关异地多活的方法的步骤。
本申请的有益效果是:本申请实施例提供的实现网关异地多活的方法通过在各个数据中心之间各配置一条备份链路,使得各个数据中心之间可相互连通,当一个数据中心出现故障而使得客户端无法正常访问该数据中心的业务资源时,可通过切换到其它可用的数据中心并调用相应的备份链路来对该数据中心进行访问,从而使得多个数据中心之间能够相互备用,实现了异地多活,解决了当服务方所在机房的应用出现问题时,调用方无法访问服务方所在机房的业务资源的技术问题。
附图说明
图1是本申请一实施中实现网关异地多活的方法的流程示意图;
图2是本申请一实施中实现网关异地多活的装置的结构示意图;
图3是本申请另一实施中实现网关异地多活的装置的结构示意图;
图4是本申请一实施中访问模块的结构示意图;
图5是本申请一实施中确定模块的结构示意图;
图6是本申请另一实施中确定模块的结构示意图;
图7是本申请又一实施中确定模块的结构示意图;
图8是本申请一实施中计算机设备的结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,本申请实施例提出一种实现网关异地多活的方法,应用于数据中心***,数据中心***至少包括两个数据中心,各个数据中心分别设置在不同的地区,且各个数据中心之间通过预设的备份链路相互连通,该方法可以由实现网关异地多活的装置来执行,该实现网关异地多活的装置可由硬件和/或软件组成,且一般可集成在所有包含异地多活架构设计功能的智能终端设备中,该方法包括:
S11,接收客户端发送的请求地址,其中,请求地址包括第一IP地址,第一IP地址与本地数据中心相对应;
S12,根据第一IP地址访问本地数据中心的第一网关,并判断第一网关是否处于可用状态;
若第一网关处于不可用状态,则执行S13,按照预定的优先级策略从其余可用的异地数据中心中确定出优先级最高的异地数据中心;
S14,访问优先级最高的异地数据中心的第二网关,并调用优先级最高的异地数据中心与本地数据中心之间的备份链路,以使客户端通过备份链路访问本地数据中心的业务资源。
在上述步骤S11中,本地和异地是相对而言的,其根据用户的实际访问需求而定,例如用户需要访问某个数据中心的业务资源,则此时该数据中心可看作是本地数据中心,而其余数据中心可看作是异地数据中心,这些数据中心可根据业务需求部署在不同的地区,比如北京、上海、广州等,其中,不同的数据中心存储有不同的业务资源,不同的数据中心均有其对应的IP地址,用户可根据自身的业务需求选择需要访问的数据中心,具体地,例如用户需要访问某个数据中心(此时,该数据中心可看作是本地数据中心)的业务资源,则用户可通过客户端(如Web浏览器)向上述装置(即实现网关异地多活的装置)发送一个请求地址(如通过在Web浏览器的地址栏中输入请求地址),其中,该请求地址中含有与该数据中心相对应的IP地址(即第一IP地址),以便对本地数据中心进行访问。
在上述步骤S12中,具体地,接收到客户端发送的请求地址后,上述装置根据请求地址中的第一IP地址可获知客户端需要访问本地数据中心,而要访问本地数据中心的业务资源则需要通过访问本地数据中心的第一网关来实现,因此需要先检查第一网关是否可用,具体地,上述装置根据第一IP地址找到本地数据中心的第一网关,进而对第一网关进行访问(如向第一网关发出一个访问请求),若在访问的过程中,第一网关未对此(即第一网关的访问请求)做出响应,则表明第一网关处于不可用状态,进而无法访问本地数据中心的业务资源,此时可进入步骤S13执行相关操作;而若在访问的过程中,第一网关对此做出了响应,则表明第一网关处于可用状态,此时客户端可通过第一网关直接访问本地数据中心的业务资源,从中获取到所需的业务资源。
在上述步骤S13中,由于各个数据中心之间通过事先设置的备份链路相互连通,因此当第一网关处于不可用状态而无法正常从本地数据中心中获取到所需的业务资源时,可通过切换到其它可用的异地数据中心并调用相应的备份链路来对本地数据中心进行访问,而由于可用的异地数据中心可能存在多个,因此需要从中先挑选出优先级最高的异地数据中心,另外,由于本地数据中心和异地数据中心处于不同的地区,因此数据的传输会发生延迟,因此可选择延时最短的异地数据中心作为优先级最高的异地数据中心。
在上述步骤S14中,由于异地数据中心存储的业务资源与本地数据中心存储的业务资源并不相同,因此为了保证客户端能正确获取到本地数据中心的业务资源而不是异地数据中心的业务资源,因此需要保证本地数据中心的数据与异地数据中心的数据要一致,而由于客户端在获取数据中心的业务资源时,具体是通过网关来访问数据中心的内存数据库(如Redis),进而通过读取内存数据库中的静态数据来获取到所需的业务资源的,因此可事先将特定的静态数据分别写入各个数据中心对应的内存数据库以及预设的外存数据库(如oracle)中,然后通过做静态数据对账来保证各个内存数据库中的静态数据与外存数据库的静态数据一致,从而可保证本地数据中心的静态数据与异地数据中心的静态数据是一致的;在本步骤中,具体地,当确定出优先级最高的异地数据中心时,上述装置可通过域名解析(DNS)调度***将第一IP地址切换为与优先级最高的异地数据中心相对应的IP地址,进而根据该IP地址找到优先级最高的异地数据中心的第二网关并进行访问,访问第二网关成功后,进而通过调用该优先级最高的异地数据中心与本地数据中心之间的备份链路,使得客户端可通过该备份链路正常访问本地数据中心的业务资源,从而实现异地多活,解决了当服务方所在机房(即本地数据中心)的应用出现问题时,调用方无法访问服务方所在机房的业务资源的技术问题。
在本实施例中,该实现网关异地多活的方法通过在各个数据中心之间各配置一条备份链路,使得各个数据中心之间可相互连通,同时根据备份链路的配置,将一个数据中心的静态数据放在备份链路对应的内存数据库中,使得相互连通的两个数据中心之间可保证数据的一致性,当一个数据中心出现故障而使得客户端无法正常访问该数据中心的业务资源时,可通过切换到其它可用的数据中心并调用相应的备份链路来对该数据中心进行访问,从而使得多个数据中心之间能够相互备用,实现了异地多活,解决了当服务方所在机房的应用出现问题时,调用方无法访问服务方所在机房的业务资源的技术问题。
在一个优选的实施例中,接收客户端发送的请求地址的步骤之前,还包括:
S09,接收客户端发送的身份信息和访问令牌请求,并判断身份信息是否合法;
若身份信息合法,则执行S10,响应访问令牌请求,生成访问令牌信息并将访问令牌信息发送至客户端。
在本实施例中,用户需要经过上述装置的授权方可访问各个数据中心的业务资源,具体地,在通过客户端获取本地数据中心的业务资源之前,用户需要注册相应的账号(如在认证服务器中注册相应的账号),账号注册完成后,利用该账号和对应的账号密码进行登录(如登录认证服务器),此时上述装置可通过认证服务器验证该账号对应的账号密码是否正确,若正确,则可判定当前客户端发送的身份信息是合法的,此时上述装置可响应客户端发送的访问令牌请求,通过认证服务器生成一个令牌信息并返回给客户端,客户端接收该访问令牌信息并缓存至本地文件夹中,这样后续客户端可凭借该令牌信息访问本地数据中心指定的业务资源,这样,通过设置权限,使得只有具有令牌信息的客户端才能访问本地数据中心指定的业务资源,从而有利于提高数据的安全性,防止本地数据中心的业务资源被盗用。
在一个优选的实施例中,请求地址还包括访问令牌信息,访问优先级最高的异地数据中心的第二网关,并调用优先级最高的异地数据中心与本地数据中心之间的备份链路的步骤之前,还包括:
S14a,检验访问令牌信息是否合法;
若访问令牌信息合法,则执行上述步骤S14,访问优先级最高的异地数据中心的第二网关,并调用优先级最高的异地数据中心与本地数据中心之间的备份链路,以使客户端通过备份链路访问本地数据中心的业务资源。
在本实施例中,通过检验令牌信息是否合法可判断当前客户端是否具有访问本地数据中心的业务资源的权限,从而通过设置权限,有利于提高数据的安全性,防止本地数据中心的业务资源被盗用,其中,访问令牌信息附带有时间戳(即在生成令牌信息时可为令牌信息添加一个时间戳),具体地,可通过以下方式检验访问令牌信息是否合法:由于时间戳具有有效期,因此可先通过检验时间戳是否过期来判断访问令牌信息是否合法,若时间戳已过期,则可据此判定访问令牌信息不合法;若时间戳未过期,则进一步将该访问令牌信息与预存于外存数据库中的多个访问令牌信息进行比较,判断是否存在匹配项,若存在匹配项,则可据此判定该访问令牌信息合法,若不存在匹配项,则可据此判定该访问令牌信息不合法;若该访问令牌信息合法,则说明当前客户端具有访问本地数据中心的业务资源的权限,此时可执行上述步骤S14;若该访问令牌信息不合法,则进入S14b执行相关操作。
在一个优选的实施例中,上述检验访问令牌信息是否合法的步骤之后,还包括:
若访问令牌信息不合法,则执行S14b,向客户端发送身份验证失败的提示信息,以提示用户重新输入身份信息;
S14c,接收客户端响应提示信息而返回的身份信息,并判断身份信息是否合法;
若身份信息合法,则执行S14d,重新生成新的令牌信息并发送至客户端,并访问优先级最高的异地数据中心的第二网关,并调用优先级最高的异地数据中心与本地数据中心之间的备份链路,以使客户端通过备份链路访问本地数据中心的业务资源。
在本实施例中,若当前客户端提供的访问令牌信息不合法,则说明当前客户端不具备访问本地数据中心的业务资源的权限,因此需要重新对当前用户进行身份验证,具体地,向客户端发送身份验证失败的提示信息,提示用户重新输入账号和对应的账号密码,然后通过认证服务器验证该账号对应的账号密码是否正确,若正确,则可判定当前客户端返回的身份信息是合法的,同时,也说明了造成令牌信息不合法的原因很可能是因为时间戳过期了,此时上述装置可通过认证服务器重新生成一个新的令牌信息并发送给客户端,同时,访问优先级最高的异地数据中心的第二网关,并调用优先级最高的异地数据中心与本地数据中心之间的备份链路,以使客户端通过备份链路访问本地数据中心的业务资源。
在一个优选的实施例中,判断第一网关是否处于可用状态的步骤,包括:
S121,间隔预设周期向第一网关发送心跳包,并判断预设时间内是否接收到第一网关响应心跳包而返回的反馈信息;
若预设时间内未接收到第一网关返回的反馈信息,则执行S122,判定第一网关处于不可用状态。
在本实施例中,具体地,上述装置可通过DNS调度***间隔预设周期(如每隔5秒钟、10秒钟、15秒钟等,预设周期可根据实际情况而定,对此不作具体的限制)向本地数据中心的第一网关发送一个心跳包,根据心跳机制原理,若第一网关处于可用状态,则当第一网关接收到该心跳包时,则第一网关会响应该心跳包而回复一个反馈信息给DNS调度***,而若第一网关处于不可用状态,则第一网关不会接收到该心跳包,进而也不会对该心跳包做出响应,因此,若在预设时间(如10秒、20秒、30秒等,预设时间可根据实际情况而定,对此不作具体的限制)内DNS调度***未接收到第一网关返回的反馈信息,则上述装置可据此判定第一网关处于不可用状态,因此,利用心跳机制原理,通过DNS调度***定时向第一网关发送心跳包的方式,可准确判断本地数据中心的第一网关是否处于可用状态。
在一个优选的实施例中,请求地址还包括对应客户端的第二IP地址,按照预定的优先级策略从其余可用的异地数据中心中确定出优先级最高的异地数据中心的步骤,包括:
S13a1,获取其余异地数据中心对应的网关状态,并根据网关状态确定出当前所有可用的异地数据中心;
S13a2,获取当前所有可用的异地数据中心对应的第三IP地址,并根据第一IP地址和第三IP地址计算本地数据中心与当前所有可用的异地数据中心之间的距离,获得多个对应的第一距离,以及,根据第二IP地址和第三IP地址计算客户端与当前所有可用的异地数据中心之间的距离,获得多个对应的第二距离;
S13a3,根据第一距离和第二距离计算客户端访问业务资源所经链路的距离,获得多个对应的链路距离;
S13a4,从多个链路距离中挑选出距离最短的链路距离,并将距离最短的链路距离对应的异地数据中心确定为优先级最高的异地数据中心。
在上述步骤S13a1中,上述网关状态包括网关处于可用状态和网关处于不可用状态,具体地,可从外存数据库中查找出其余异地数据中心对应的IP地址,并根据查找到的IP地址对其余异地数据中心的网关进行访问,进而通过DNS调度***定时向其余异地数据中心对应的网关发送心跳包的方式来获取其余异地数据中心对应的网关状态,即利用心跳机制原理,DNS调度***可获知哪些异地数据中心的网关处于可用状态,哪些异地数据中心的网关处于不可用状态,并对此进行记录,因此可通过读取DNS调度***中的记录来获取到其余异地数据中心对应的网关状态,进而可根据获取到的网关状态确定出当前所有可用的异地数据中心。
在上述步骤S13a2中,由于每个数据中心或客户端都有其对应的IP地址,因此通过IP地址可获知本地数据中心或异地数据中心或客户端的所在位置,例如,假设第一IP地址为123.125.71.38,则表明本地数据中心的所在位置为北京,客户端的第二IP地址为113.65.161.23,则表明客户端的所在位置为广州,某个异地数据中心的第三IP地址为116.234.222.36,则表明该异地数据中心的所在位置为上海,因此,具体地,当根据网关状态确定出当前所有可用的异地数据中心时,可从外存数据库中查找出当前所有可用的异地数据中心对应的第三IP地址,进而根据第一IP地址和第三IP地址可计算出本地数据中心与当前所有可用的异地数据中心之间的距离,获得多个对应的第一距离,同理,根据第二IP地址和第三IP地址可计算出客户端与当前所有可用的异地数据中心之间的距离,获得多个对应的第二距离。
在上述步骤S13a3中,由于当第一网关处于不可用状态而无法正常从本地数据中心中获取到所需的业务资源时,是通过切换到其它可用的异地数据中心并调用相应的备份链路来对本地数据中心进行访问的,因此客户端访问本地数据中心的业务资源所经的链路为:客户端-可用的异地数据中心-本地数据中心,而由于可用的异地数据中心可能存在多个,因此可能存在多条可选的链路供客户端访问本地数据中心的业务资源,因此需要从中挑选出合适的链路,具体地,通过计算第一距离和第二距离之和可获得各个可用的异地数据中心所在链路对应的链路距离,以便进入步骤S13a4执行相关操作。
在上述步骤S13a4中,由于数据在传输的过程中发生的延迟会受到传输距离的影响,一般地,传输距离越大,延时越长,因此链路距离越短,延时也就越短,因此,通过计算获得各个可用的异地数据中心所在链路对应的链路距离后,可从多个链路距离中挑选出距离最短的链路距离,并将距离最短的链路距离对应的异地数据中心确定为优先级最高的异地数据中心,这样可最大限度地缩短数据的延时,提高用户体验。
在另一个优选的实施例中,按照预定的优先级策略从其余可用的异地数据中心中确定出优先级最高的异地数据中心的步骤,包括:
S13b1,获取其余异地数据中心对应的网络流量,并根据网络流量确定出当前所有可用的异地数据中心;
S13b2,根据网络流量,从当前所有可用的异地数据中心中挑选出网络流量最少的异地数据中心;
S13b3,将网络流量最少的异地数据中心确定为优先级最高的异地数据中心。
在上述步骤S13b1中,由于业务资源的获取需要经过网关,因此通过网络流量的监控可间接获知哪些异地数据中心的网关处于可用状态,哪些异地数据中心的网关处于不可用状态,进而据此确定出当前所有可用的异地数据中心,具体地,可通过网络流量监控技术(如NetStream、Mirror、sFlow等)获取其余异地数据中心对应的网络流量,若某个异地数据中心对应的网络流量为零,则可据此判定该异地数据中心不可用,而若某个异地数据中心对应的网络流量不为零(即存在网络流量),则可据此判定该异地数据中心可用。
在上述步骤S13b2中,当确定出当前所有可用的异地数据中心时,则可进一步根据获取到的网络流量,从当前所有可用的异地数据中心中挑选出网络流量最少的异地数据中心,以便进入步骤S13b3执行相关操作。
在上述步骤S13b3中,由于当第一网关处于不可用状态而无法正常从本地数据中心中获取到所需的业务资源时,是通过切换到其它可用的异地数据中心并调用相应的备份链路来对本地数据中心进行访问的,因此数据在传输的过程中发生的延迟会受到异地数据中心自身的“繁忙”程度的影响,一般地,网络流量越多,表明访问量越大,数据中心的服务也就越“繁忙”,进而引起的数据延时就越大,因此网络流量越少,延时也就越短,因此可将当前可用的网络流量最少的异地数据中心确定为优先级最高的异地数据中心,这样可最大限度地缩短数据的延时,提高用户体验。
在又一个优选的实施例中,请求地址还包括对应客户端的第二IP地址,按照预定的优先级策略从其余可用的异地数据中心中确定出优先级最高的异地数据中心的步骤,包括:
S13c1,获取其余异地数据中心对应的网关状态,并根据网关状态确定出当前所有可用的异地数据中心;
S13c2,获取当前所有可用的异地数据中心对应的网络流量和第三IP地址;
S13c3,根据第一IP地址和第三IP地址计算本地数据中心与当前所有可用的异地数据中心之间的距离,获得多个对应的第一距离,以及,根据第二IP地址和第三IP地址计算客户端与当前所有可用的异地数据中心之间的距离,获得多个对应的第二距离,并根据第一距离和第二距离计算客户端访问业务资源所经链路的距离,获得多个对应的链路距离;
S13c4,根据链路距离和网络流量结合预设的权重值,从当前所有可用的异地数据中心中确定出优先级最高的异地数据中心。
在上述步骤S13c1中,上述网关状态包括网关处于可用状态和网关处于不可用状态,具体地,可从外存数据库中查找出其余异地数据中心对应的IP地址,并根据查找到的IP地址对其余异地数据中心的网关进行访问,进而通过DNS调度***定时向其余异地数据中心对应的网关发送心跳包的方式来获取其余异地数据中心对应的网关状态,即利用心跳机制原理,DNS调度***可获知哪些异地数据中心的网关处于可用状态,哪些异地数据中心的网关处于不可用状态,并对此进行记录,因此可通过读取DNS调度***中的记录来获取到其余异地数据中心对应的网关状态,进而可根据获取到的网关状态确定出当前所有可用的异地数据中心。
在上述步骤S13c2中,具体地,当根据网关状态确定出当前所有可用的异地数据中心时,可通过网络流量监控技术(如NetStream、Mirror、sFlow等)获取当前所有可用的异地数据中心对应的网络流量,同时,可从外存数据库中查找出当前所有可用的异地数据中心对应的第三IP地址,以便后续进行相关操作。
在上述步骤S13c3中,由于每个数据中心或客户端都有其对应的IP地址,因此通过IP地址可获知本地数据中心或异地数据中心或客户端的所在位置,例如,假设第一IP地址为123.125.71.38,则表明本地数据中心的所在位置为北京,客户端的第二IP地址为113.65.161.23,则表明客户端的所在位置为广州,某个异地数据中心的第三IP地址为116.234.222.36,则表明该异地数据中心的所在位置为上海,因此,具体地,根据第一IP地址和第三IP地址可计算出本地数据中心与当前所有可用的异地数据中心之间的距离,获得多个对应的第一距离,同理,根据第二IP地址和第三IP地址可计算出客户端与当前所有可用的异地数据中心之间的距离,获得多个对应的第二距离,进而通过计算第一距离和第二距离之和可获得各个可用的异地数据中心所在链路对应的链路距离,以便后续进行相关操作。
在上述步骤S13c4中,由于当第一网关处于不可用状态而无法正常从本地数据中心中获取到所需的业务资源时,是通过切换到其它可用的异地数据中心并调用相应的备份链路来对本地数据中心进行访问的,因此数据在传输的过程中发生的延迟主要受到数据的传输距离和异地数据中心自身的“繁忙”程度这两个因素的影响,一般地,传输距离越小,延时越短;网络流量越少,延时越短,因此可根据链路距离和网络流量结合预设的权重值,从当前所有可用的异地数据中心中确定出优先级最高的异地数据中心,具体地,预设的权重值可为X:(链路距离+网络流量),其中,X为常数,因此,获得当前所有可用的异地数据中心对应的网络流量以及各个可用的异地数据中心所在链路对应的链路距离后,可计算出当前所有可用的异地数据中心对应的权重值,权重值越大,则数据的延时就越短,因此可将权重值最大的异地数据中心确定为优先级最高的异地数据中心,这样既可更准确地从其余可用的异地数据中心中确定出优先级最高的异地数据中心,又可最大限度地缩短数据的延时,提高用户体验。
参照图2,本申请实施例还提出一种实现网关异地多活的装置,应用于数据中心***,数据中心***至少包括两个数据中心,各个数据中心分别设置在不同的地区,且各个数据中心之间通过预设的备份链路相互连通,该装置包括:
接收模块11,用于接收客户端发送的请求地址,其中,请求地址包括第一IP地址,第一IP地址与本地数据中心相对应;
访问模块12,用于根据第一IP地址访问本地数据中心的第一网关,并判断第一网关是否处于可用状态;
确定模块13,用于当第一网关处于不可用状态时,按照预定的优先级策略从其余可用的异地数据中心中确定出优先级最高的异地数据中心;
调用模块14,用于访问优先级最高的异地数据中心的第二网关,并调用优先级最高的异地数据中心与本地数据中心之间的备份链路,以使客户端通过备份链路访问本地数据中心的业务资源。
在上述接收模块11中,本地和异地是相对而言的,其根据用户的实际访问需求而定,例如用户需要访问某个数据中心的业务资源,则此时该数据中心可看作是本地数据中心,而其余数据中心可看作是异地数据中心,这些数据中心可根据业务需求部署在不同的地区,比如北京、上海、广州等,其中,不同的数据中心存储有不同的业务资源,不同的数据中心均有其对应的IP地址,用户可根据自身的业务需求选择需要访问的数据中心,具体地,例如用户需要访问某个数据中心(此时,该数据中心可看作是本地数据中心)的业务资源,则用户可通过客户端(如Web浏览器)向上述装置(即实现网关异地多活的装置)域名解析(DNS)调度***发送一个请求地址(如通过在Web浏览器的地址栏中输入请求地址),其中,该请求地址中含有与该数据中心相对应的IP地址(即第一IP地址),以便对本地数据中心进行访问。
在上述访问模块12中,具体地,接收模块11接收到客户端发送的请求地址后,访问模块12根据请求地址中的第一IP地址可获知客户端需要访问本地数据中心,而要访问本地数据中心的业务资源则需要通过访问本地数据中心的第一网关来实现,因此需要先检查第一网关是否可用,具体地,访问模块12根据第一IP地址找到本地数据中心的第一网关,进而对第一网关进行访问(如向第一网关发出一个访问请求),若在访问的过程中,第一网关未对此(即第一网关的访问请求)做出响应,则表明第一网关处于不可用状态,进而无法访问本地数据中心的业务资源,此时可交由确定模块13执行相关操作;而若在访问的过程中,第一网关对此做出了响应,则表明第一网关处于可用状态,此时客户端可通过第一网关直接访问本地数据中心的业务资源,从中获取到所需的业务资源。
在上述确定模块13中,由于各个数据中心之间通过事先设置的备份链路相互连通,因此当第一网关处于不可用状态而无法正常从本地数据中心中获取到所需的业务资源时,可通过切换到其它可用的异地数据中心并调用相应的备份链路来对本地数据中心进行访问,而由于可用的异地数据中心可能存在多个,因此确定模块13需要从中先挑选出优先级最高的异地数据中心,另外,由于本地数据中心和异地数据中心处于不同的地区,因此数据的传输会发生延迟,因此可通过确定模块13选择延时最短的异地数据中心作为优先级最高的异地数据中心。
在上述调用模块14中,由于异地数据中心存储的业务资源与本地数据中心存储的业务资源并不相同,因此为了保证客户端能正确获取到本地数据中心的业务资源而不是异地数据中心的业务资源,因此需要保证本地数据中心的数据与异地数据中心的数据要一致,而由于客户端在获取数据中心的业务资源时,具体是通过网关来访问数据中心的内存数据库(如Redis),进而通过读取内存数据库中的静态数据来获取到所需的业务资源的,因此可事先将特定的静态数据分别写入各个数据中心对应的内存数据库以及预设的外存数据库(如oracle)中,然后通过做静态数据对账来保证各个内存数据库中的静态数据与外存数据库的静态数据一致,从而可保证本地数据中心的静态数据与异地数据中心的静态数据是一致的;在本步骤中,具体地,当通过确定模块13确定出优先级最高的异地数据中心时,调用模块14可通过域名解析(DNS)调度***将第一IP地址切换为与优先级最高的异地数据中心相对应的IP地址,进而根据该IP地址找到优先级最高的异地数据中心的第二网关并进行访问,访问第二网关成功后,进而通过调用该优先级最高的异地数据中心与本地数据中心之间的备份链路,使得客户端可通过该备份链路正常访问本地数据中心的业务资源,从而实现异地多活,解决了当服务方所在机房(即本地数据中心)的应用出现问题时,调用方无法访问服务方所在机房的业务资源的技术问题。
在本实施例中,该实现网关异地多活的装置通过在各个数据中心之间各配置一条备份链路,使得各个数据中心之间可相互连通,同时根据备份链路的配置,将一个数据中心的静态数据放在备份链路对应的内存数据库中,使得相互连通的两个数据中心之间可保证数据的一致性,当一个数据中心出现故障而使得客户端无法正常访问该数据中心的业务资源时,可通过切换到其它可用的数据中心并调用相应的备份链路来对该数据中心进行访问,从而使得多个数据中心之间能够相互备用,实现了异地多活,解决了当服务方所在机房的应用出现问题时,调用方无法访问服务方所在机房的业务资源的技术问题。
参照图3,在一个优选的实施例中,上述实现网关异地多活的装置,还包括:
第一判断模块09,用于接收客户端发送的身份信息和访问令牌请求,并判断身份信息是否合法;
生成模块10,用于当身份信息合法时,响应访问令牌请求,生成访问令牌信息并将访问令牌信息发送至客户端。
在本实施例中,用户需要经过上述装置的授权方可访问各个数据中心的业务资源,具体地,在通过客户端获取本地数据中心的业务资源之前,用户需要在认证服务器中注册相应的账号(如在认证服务器中注册相应的账号),账号注册完成后,利用该账号和对应的账号密码进行登录(如登录认证服务器)认证服务器,此时第一判断模块09可通过认证服务器验证该账号对应的账号密码是否正确,若正确,则第一判断模块09可据此判定当前客户端发送的身份信息是合法的,此时生成模块10可响应客户端发送的访问令牌请求,通过认证服务器生成一个令牌信息并返回给客户端,客户端接收该访问令牌信息并缓存至本地文件夹中,这样后续客户端可凭借该令牌信息访问本地数据中心指定的业务资源,这样,通过设置权限,使得只有具有令牌信息的客户端才能访问本地数据中心指定的业务资源,从而有利于提高数据的安全性,防止本地数据中心的业务资源被盗用。
参照图3,在一个优选的实施例中,请求地址还包括访问令牌信息,上述实现网关异地多活的装置,还包括:
检验模块14a,用于检验访问令牌信息是否合法。
在本实施例中,通过检验模块14a检验令牌信息是否合法可判断当前客户端是否具有访问本地数据中心的业务资源的权限,从而通过设置权限,有利于提高数据的安全性,防止本地数据中心的业务资源被盗用,其中,访问令牌信息附带有时间戳(即在生成令牌信息时可为令牌信息添加一个时间戳),具体地,检验模块14a可通过以下方式检验访问令牌信息是否合法:由于时间戳具有有效期,因此可先通过检验时间戳是否过期来判断访问令牌信息是否合法,若时间戳已过期,则检验模块14a可据此判定访问令牌信息不合法;若时间戳未过期,则进一步将该访问令牌信息与预存于外存数据库中的多个访问令牌信息进行比较,判断是否存在匹配项,若存在匹配项,则检验模块14a可据此判定该访问令牌信息合法,若不存在匹配项,则检验模块14a可据此判定该访问令牌信息不合法;若该访问令牌信息合法,则说明当前客户端具有访问本地数据中心的业务资源的权限,此时可交由调用模块14执行相关操作;若该访问令牌信息不合法,则交由发送模块14b执行相关操作。
参照图3,在一个优选的实施例中,上述实现网关异地多活的装置,还包括:
发送模块14b,用于当访问令牌信息不合法时,向客户端发送身份验证失败的提示信息,以提示用户重新输入身份信息;
第二判断模块14c,用于接收客户端响应提示信息而返回的身份信息,并判断身份信息是否合法;
执行模块14d,用于当身份信息合法时,重新生成新的令牌信息并发送至客户端,并访问优先级最高的异地数据中心的第二网关,并调用优先级最高的异地数据中心与本地数据中心之间的备份链路,以使客户端通过备份链路访问本地数据中心的业务资源。
在本实施例中,若当前客户端提供的访问令牌信息不合法,则说明当前客户端不具备访问本地数据中心的业务资源的权限,因此需要重新对当前用户进行身份验证,具体地,发送模块14b向客户端发送身份验证失败的提示信息,提示用户重新输入账号和对应的账号密码,然后第二判断模块14c通过认证服务器验证该账号对应的账号密码是否正确,若正确,则第二判断模块14c可据此判定当前客户端返回的身份信息是合法的,同时,也说明了造成令牌信息不合法的原因很可能是因为时间戳过期了,此时执行模块14d可通过认证服务器重新生成一个新的令牌信息并发送给客户端,同时,访问优先级最高的异地数据中心的第二网关,并调用优先级最高的异地数据中心与本地数据中心之间的备份链路,以使客户端通过备份链路访问本地数据中心的业务资源。
参照图4,在一个优选的实施例中,上述访问模块12,包括:
发送单元121,用于间隔预设周期向第一网关发送心跳包,并判断预设时间内是否接收到第一网关响应心跳包而返回的反馈信息;
判定单元122,用于当预设时间内未接收到第一网关返回的反馈信息时,判定第一网关处于不可用状态。
在本实施例中,具体地,发送单元121可通过DNS调度***间隔预设周期(如每隔5秒钟、10秒钟、15秒钟等,预设周期可根据实际情况而定,对此不作具体的限制)向本地数据中心的第一网关发送一个心跳包,根据心跳机制原理,若第一网关处于可用状态,则当第一网关接收到该心跳包时,则第一网关会响应该心跳包而回复一个反馈信息给DNS调度***,而若第一网关处于不可用状态,则第一网关不会接收到该心跳包,进而也不会对该心跳包做出响应,因此,若在预设时间(如10秒、20秒、30秒等,预设时间可根据实际情况而定,对此不作具体的限制)内DNS调度***未接收到第一网关返回的反馈信息,则判定单元122可据此判定第一网关处于不可用状态,因此,利用心跳机制原理,通过DNS调度***定时向第一网关发送心跳包的方式,可准确判断本地数据中心的第一网关是否处于可用状态。
参照图5,在一个优选的实施例中,请求地址还包括对应客户端的第二IP地址,上述确定模块13,包括:
第一获取单元13a1,用于获取其余异地数据中心对应的网关状态,并根据网关状态确定出当前所有可用的异地数据中心;
第二获取单元13a2,用于获取当前所有可用的异地数据中心对应的第三IP地址,并根据第一IP地址和第三IP地址计算本地数据中心与当前所有可用的异地数据中心之间的距离,获得多个对应的第一距离,以及,根据第二IP地址和第三IP地址计算客户端与当前所有可用的异地数据中心之间的距离,获得多个对应的第二距离;
第一计算单元13a3,用于根据第一距离和第二距离计算客户端访问业务资源所经链路的距离,获得多个对应的链路距离;
第一确定单元13a4,从多个链路距离中挑选出距离最短的链路距离,并将距离最短的链路距离对应的异地数据中心确定为优先级最高的异地数据中心。
在上述第一获取单元13a1中,上述网关状态包括网关处于可用状态和网关处于不可用状态,具体地,第一获取单元13a1可从外存数据库中查找出其余异地数据中心对应的IP地址,并根据查找到的IP地址对其余异地数据中心的网关进行访问,进而通过DNS调度***定时向其余异地数据中心对应的网关发送心跳包的方式来获取其余异地数据中心对应的网关状态,即利用心跳机制原理,DNS调度***可获知哪些异地数据中心的网关处于可用状态,哪些异地数据中心的网关处于不可用状态,并对此进行记录,因此可通过第一获取单元13a1读取DNS调度***中的记录来获取到其余异地数据中心对应的网关状态,进而第一获取单元13a1可根据获取到的网关状态确定出当前所有可用的异地数据中心。
在上述第二获取单元13a2中,由于每个数据中心或客户端都有其对应的IP地址,因此通过IP地址可获知本地数据中心或异地数据中心或客户端的所在位置,例如,假设第一IP地址为123.125.71.38,则表明本地数据中心的所在位置为北京,客户端的第二IP地址为113.65.161.23,则表明客户端的所在位置为广州,某个异地数据中心的第三IP地址为116.234.222.36,则表明该异地数据中心的所在位置为上海,因此,具体地,当根据网关状态确定出当前所有可用的异地数据中心时,第二获取单元13a2可从外存数据库中查找出当前所有可用的异地数据中心对应的第三IP地址,进而根据第一IP地址和第三IP地址可计算出本地数据中心与当前所有可用的异地数据中心之间的距离,获得多个对应的第一距离,同理,根据第二IP地址和第三IP地址可计算出客户端与当前所有可用的异地数据中心之间的距离,获得多个对应的第二距离。
在上述第一计算单元13a3中,由于当第一网关处于不可用状态而无法正常从本地数据中心中获取到所需的业务资源时,是通过切换到其它可用的异地数据中心并调用相应的备份链路来对本地数据中心进行访问的,因此客户端访问本地数据中心的业务资源所经的链路为:客户端-可用的异地数据中心-本地数据中心,而由于可用的异地数据中心可能存在多个,因此可能存在多条可选的链路供客户端访问本地数据中心的业务资源,因此需要从中挑选出合适的链路,具体地,通过第一计算单元13a3计算第一距离和第二距离之和可获得各个可用的异地数据中心所在链路对应的链路距离,,以便交由第一确定单元13a4执行相关操作。
在上述第一确定单元13a4中,由于数据在传输的过程中发生的延迟会受到传输距离的影响,一般地,传输距离越大,延时越大,因此链路距离越短,延时也就越小,因此,通过第一计算单元13a3计算获得各个可用的异地数据中心所在链路对应的链路距离后,可通过第一确定单元13a4从多个链路距离中挑选出距离最短的链路距离,并将距离最短的链路距离对应的异地数据中心确定为优先级最高的异地数据中心,这样可最大限度地缩短数据的延时,提高用户体验。
参照图6,在另一个优选的实施例中,上述确定模块13,包括:
第三获取单元13b1,用于获取其余异地数据中心对应的网络流量,并根据网络流量确定出当前所有可用的异地数据中心;
挑选单元13b2,用于根据网络流量,从当前所有可用的异地数据中心中挑选出网络流量最少的异地数据中心;
第二确定单元13b3,用于将网络流量最少的异地数据中心确定为优先级最高的异地数据中心。
在上述第三获取单元13b1中,由于业务资源的获取需要经过网关,因此通过网络流量的监控可间接获知哪些异地数据中心的网关处于可用状态,哪些异地数据中心的网关处于不可用状态,进而据此确定出当前所有可用的异地数据中心,具体地,第三获取单元13b1可通过网络流量监控技术(如NetStream、Mirror、sFlow等)获取其余异地数据中心对应的网络流量,若某个异地数据中心对应的网络流量为零,则第三获取单元13b1可据此判定该异地数据中心不可用,而若某个异地数据中心对应的网络流量不为零(即存在网络流量),则第三获取单元13b1可据此判定该异地数据中心可用。
在上述挑选单元13b2中,当通过第三获取单元13b1确定出当前所有可用的异地数据中心时,则可通过挑选单元13b2进一步根据获取到的网络流量,从当前所有可用的异地数据中心中挑选出网络流量最少的异地数据中心,以便交由第二确定单元13b3执行相关操作。
在上述第二确定单元13b3中,由于当第一网关处于不可用状态而无法正常从本地数据中心中获取到所需的业务资源时,是通过切换到其它可用的异地数据中心并调用相应的备份链路来对本地数据中心进行访问的,因此数据在传输的过程中发生的延迟会受到异地数据中心自身的“繁忙”程度的影响,一般地,网络流量越多,表明访问量越大,数据中心的服务也就越“繁忙”,进而引起的数据延时就越大,因此网络流量越少,延时也就越小,因此可通过第二确定单元13b3将当前可用的网络流量最少的异地数据中心确定为优先级最高的异地数据中心,这样可最大限度地缩短数据的延时,提高用户体验。
参照图7,在又一个优选的实施例中,请求地址还包括对应客户端的第二IP地址,上述确定模块13,包括:
第四获取单元13c1,用于获取其余异地数据中心对应的网关状态,并根据网关状态确定出当前所有可用的异地数据中心;
第五获取单元13c2,用于获取当前所有可用的异地数据中心对应的网络流量和第三IP地址;
第二计算单元13c3,用于根据第一IP地址和第三IP地址计算本地数据中心与当前所有可用的异地数据中心之间的距离,获得多个对应的第一距离,以及,根据第二IP地址和第三IP地址计算客户端与当前所有可用的异地数据中心之间的距离,获得多个对应的第二距离,并根据第一距离和第二距离计算客户端访问业务资源所经链路的距离,获得多个对应的链路距离;
第三确定单元13c4,用于根据链路距离和网络流量结合预设的权重值,从当前所有可用的异地数据中心中确定出优先级最高的异地数据中心。
在上述第四获取单元13c1中,上述网关状态包括网关处于可用状态和网关处于不可用状态,具体地,第四获取单元13c1可从外存数据库中查找出其余异地数据中心对应的IP地址,并根据查找到的IP地址对其余异地数据中心的网关进行访问,进而通过DNS调度***定时向其余异地数据中心对应的网关发送心跳包的方式来获取其余异地数据中心对应的网关状态,即利用心跳机制原理,DNS调度***可获知哪些异地数据中心的网关处于可用状态,哪些异地数据中心的网关处于不可用状态,并对此进行记录,因此可通过第四获取单元13c1读取DNS调度***中的记录来获取到其余异地数据中心对应的网关状态,进而第四获取单元13c1可根据获取到的网关状态确定出当前所有可用的异地数据中心。
在上述第五获取单元13c2中,具体地,当第四获取单元13c1根据网关状态确定出当前所有可用的异地数据中心时,第五获取单元13c2可通过网络流量监控技术(如NetStream、Mirror、sFlow等)获取当前所有可用的异地数据中心对应的网络流量,同时,可通过第五获取单元13c2从外存数据库中查找出当前所有可用的异地数据中心对应的第三IP地址,以便后续进行相关操作。
在上述第二计算单元13c3中,由于每个数据中心或客户端都有其对应的IP地址,因此通过IP地址可获知本地数据中心或异地数据中心或客户端的所在位置,例如,假设第一IP地址为123.125.71.38,则表明本地数据中心的所在位置为北京,客户端的第二IP地址为113.65.161.23,则表明客户端的所在位置为广州,某个异地数据中心的第三IP地址为116.234.222.36,则表明该异地数据中心的所在位置为上海,因此,具体地,第二计算单元13c3根据第一IP地址和第三IP地址可计算出本地数据中心与当前所有可用的异地数据中心之间的距离,获得多个对应的第一距离,同理,第二计算单元13c3根据第二IP地址和第三IP地址可计算出客户端与当前所有可用的异地数据中心之间的距离,获得多个对应的第二距离,进而通过第二计算单元13c3计算第一距离和第二距离之和可获得各个可用的异地数据中心所在链路对应的链路距离,以便后续进行相关操作。
在上述第三确定单元13c4中,由于当第一网关处于不可用状态而无法正常从本地数据中心中获取到所需的业务资源时,是通过切换到其它可用的异地数据中心并调用相应的备份链路来对本地数据中心进行访问的,因此数据在传输的过程中发生的延迟主要受到数据的传输距离和异地数据中心自身的“繁忙”程度这两个因素的影响,一般地,传输距离越小,延时越小;网络流量越少,延时越小,因此第三确定单元13c4可根据链路距离和网络流量结合预设的权重值,从当前所有可用的异地数据中心中确定出优先级最高的异地数据中心,具体地,预设的权重值可为X:(总距离+网络流量),其中,X为常数,因此,获得当前所有可用的异地数据中心对应的网络流量以及各个可用的异地数据中心所在链路对应的链路距离后,可计算出当前所有可用的异地数据中心对应的权重值,权重值越大,则数据的延时就越小,因此可通过第三确定单元13c4将权重值最大的异地数据中心确定为优先级最高的异地数据中心,这样既可更准确地从其余可用的异地数据中心中确定出优先级最高的异地数据中心,又可最大限度地缩短数据的延时,提高用户体验。
参照图8,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图8所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储实现网关异地多活的方法程序等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时实现上述任一实施例中的实现网关异地多活的方法。
本申请实施例还提出一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一实施例中的实现网关异地多活的方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储与一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM通过多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种实现网关异地多活的方法,其特征在于,应用于数据中心***,所述数据中心***至少包括两个数据中心,各个所述数据中心分别设置在不同的地区,且各个所述数据中心之间通过预设的备份链路相互连通,所述方法包括:
接收客户端发送的请求地址,其中,所述请求地址包括第一IP地址,所述第一IP地址与本地数据中心相对应;
根据所述第一IP地址访问所述本地数据中心的第一网关,并判断所述第一网关是否处于可用状态;
若所述第一网关处于不可用状态,则按照预定的优先级策略从其余可用的异地数据中心中确定出优先级最高的所述异地数据中心;
访问优先级最高的所述异地数据中心的第二网关,并调用优先级最高的所述异地数据中心与所述本地数据中心之间的所述备份链路,以使所述客户端通过所述备份链路访问所述本地数据中心的业务资源。
2.根据权利要求1所述的实现网关异地多活的方法,其特征在于,所述接收客户端发送的请求地址的步骤之前,还包括:
接收所述客户端发送的身份信息和访问令牌请求,并判断所述身份信息是否合法;
若所述身份信息合法,则响应所述访问令牌请求,生成访问令牌信息并将所述访问令牌信息发送至所述客户端。
3.根据权利要求2所述的实现网关异地多活的方法,其特征在于,所述请求地址还包括所述访问令牌信息,所述访问优先级最高的所述异地数据中心的第二网关,并调用优先级最高的所述异地数据中心与所述本地数据中心之间的所述备份链路的步骤之前,还包括:
检验所述访问令牌信息是否合法;
若所述访问令牌信息合法,则执行所述访问优先级最高的所述异地数据中心的第二网关,并调用优先级最高的所述异地数据中心与所述本地数据中心之间的所述备份链路,以使所述客户端通过所述备份链路访问所述本地数据中心的业务资源的步骤。
4.根据权利要求1所述的实现网关异地多活的方法,其特征在于,所述判断所述第一网关是否处于可用状态的步骤,包括:
间隔预设周期向所述第一网关发送心跳包,并判断预设时间内是否接收到所述第一网关响应所述心跳包而返回的反馈信息;
若预设时间内未接收到所述第一网关返回的所述反馈信息,则判定所述第一网关处于不可用状态。
5.根据权利要求1至4中任一项所述的实现网关异地多活的方法,其特征在于,所述请求地址还包括对应所述客户端的第二IP地址,所述按照预定的优先级策略从其余可用的异地数据中心中确定出优先级最高的所述异地数据中心的步骤,包括:
获取其余所述异地数据中心对应的网关状态,并根据所述网关状态确定出当前所有可用的所述异地数据中心;
获取当前所有可用的所述异地数据中心对应的第三IP地址,并根据所述第一IP地址和所述第三IP地址计算所述本地数据中心与当前所有可用的所述异地数据中心之间的距离,获得多个对应的第一距离,以及,根据所述第二IP地址和所述第三IP地址计算所述客户端与当前所有可用的所述异地数据中心之间的距离,获得多个对应的第二距离;
根据所述第一距离和所述第二距离计算所述客户端访问所述业务资源所经链路的距离,获得多个对应的链路距离;从多个所述链路距离中挑选出距离最短的所述链路距离,并将距离最短的所述链路距离对应的所述异地数据中心确定为优先级最高的所述异地数据中心。
6.根据权利要求1至4中任一项所述的实现网关异地多活的方法,其特征在于,所述按照预定的优先级策略从其余可用的异地数据中心中确定出优先级最高的所述异地数据中心的步骤,包括:
获取其余所述异地数据中心对应的网络流量,并根据所述网络流量确定出当前所有可用的所述异地数据中心;
根据所述网络流量,从当前所有可用的所述异地数据中心中挑选出所述网络流量最少的所述异地数据中心;
将所述网络流量最少的所述异地数据中心确定为优先级最高的所述异地数据中心。
7.根据权利要求1至4中任一项所述的实现网关异地多活的方法,其特征在于,所述请求地址还包括对应所述客户端的第二IP地址,所述按照预定的优先级策略从其余可用的异地数据中心中确定出优先级最高的所述异地数据中心的步骤,包括:
获取其余所述异地数据中心对应的网关状态,并根据所述网关状态确定出当前所有可用的所述异地数据中心;
获取当前所有可用的所述异地数据中心对应的网络流量和第三IP地址;
根据所述第一IP地址和所述第三IP地址计算所述本地数据中心与当前所有可用的所述异地数据中心之间的距离,获得多个对应的第一距离,以及,根据所述第二IP地址和所述第三IP地址计算所述客户端与当前所有可用的所述异地数据中心之间的距离,获得多个对应的第二距离,并根据所述第一距离和所述第二距离计算所述客户端访问所述业务资源所经链路的距离,获得多个对应的链路距离;
根据所述链路距离和所述网络流量结合预设的权重值,从当前所有可用的所述异地数据中心中确定出优先级最高的所述异地数据中心。
8.一种实现网关异地多活的装置,其特征在于,应用于数据中心***,所述数据中心***至少包括两个数据中心,各个所述数据中心分别设置在不同的地区,且各个所述数据中心之间通过预设的备份链路相互连通,所述装置包括:
接收模块,用于接收客户端发送的请求地址,其中,所述请求地址包括第一IP地址,所述第一IP地址与本地数据中心相对应;
访问模块,用于根据所述第一IP地址访问所述本地数据中心的第一网关,并判断所述第一网关是否处于可用状态;
确定模块,用于当所述第一网关处于不可用状态时,按照预定的优先级策略从其余可用的异地数据中心中确定出优先级最高的所述异地数据中心;
调用模块,用于访问优先级最高的所述异地数据中心的第二网关,并调用优先级最高的所述异地数据中心与所述本地数据中心之间的所述备份链路,以使所述客户端通过所述备份链路访问所述本地数据中心的业务资源。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的实现网关异地多活的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的实现网关异地多活的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910305843.5A CN110177007B (zh) | 2019-04-16 | 2019-04-16 | 实现网关异地多活的方法、装置、计算机设备及存储介质 |
PCT/CN2019/118171 WO2020211364A1 (zh) | 2019-04-16 | 2019-11-13 | 实现网关异地多活的方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910305843.5A CN110177007B (zh) | 2019-04-16 | 2019-04-16 | 实现网关异地多活的方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110177007A true CN110177007A (zh) | 2019-08-27 |
CN110177007B CN110177007B (zh) | 2022-03-18 |
Family
ID=67690011
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910305843.5A Active CN110177007B (zh) | 2019-04-16 | 2019-04-16 | 实现网关异地多活的方法、装置、计算机设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110177007B (zh) |
WO (1) | WO2020211364A1 (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110635950A (zh) * | 2019-09-30 | 2019-12-31 | 深圳供电局有限公司 | 一种双数据中心容灾*** |
CN110809064A (zh) * | 2019-09-05 | 2020-02-18 | 连连银通电子支付有限公司 | 一种ip地址切换方法、装置及*** |
CN110855808A (zh) * | 2019-10-11 | 2020-02-28 | 新浪网技术(中国)有限公司 | 一种基于分布式监控策略的域名自动切换方法、装置及*** |
CN110868450A (zh) * | 2019-10-15 | 2020-03-06 | 平安科技(深圳)有限公司 | 双机房多入口会话保持方法、***、装置及存储介质 |
CN111245943A (zh) * | 2020-01-14 | 2020-06-05 | 山东汇贸电子口岸有限公司 | 一种Redis集群获取可访问IP地址的方法 |
CN111526038A (zh) * | 2020-03-26 | 2020-08-11 | 口碑(上海)信息技术有限公司 | 业务请求分发方法、装置、计算机设备及可读存储介质 |
WO2020211364A1 (zh) * | 2019-04-16 | 2020-10-22 | 平安科技(深圳)有限公司 | 实现网关异地多活的方法、装置、计算机设备及存储介质 |
CN112039710A (zh) * | 2020-09-02 | 2020-12-04 | 曙光信息产业(北京)有限公司 | 服务故障处理方法、终端设备及可读存储介质 |
CN112187738A (zh) * | 2020-09-11 | 2021-01-05 | ***股份有限公司 | 业务数据访问控制方法、装置及计算机可读存储介质 |
CN112507381A (zh) * | 2020-12-21 | 2021-03-16 | 中电福富信息科技有限公司 | 支持多种操作***的资产信息和安全管理装置 |
CN112565327A (zh) * | 2019-09-26 | 2021-03-26 | 广州虎牙科技有限公司 | 访问流量转发方法、集群管理方法及相关装置 |
CN114567646A (zh) * | 2022-03-08 | 2022-05-31 | 京东科技信息技术有限公司 | 数据处理方法、数据处理***、电子设备及存储介质 |
CN114785465A (zh) * | 2022-04-26 | 2022-07-22 | 上海识装信息科技有限公司 | 一种异地多活的实现方法、服务器及存储介质 |
CN117041089A (zh) * | 2023-08-21 | 2023-11-10 | 江苏臻云技术有限公司 | 一种面向异地数据中心的设备监控***及方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113037861B (zh) * | 2021-03-25 | 2023-08-22 | 北京奇艺世纪科技有限公司 | 服务节点连接方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090097478A1 (en) * | 2007-10-10 | 2009-04-16 | Microsoft Corporation | Techniques to access messaging services for branch offices |
CN106888164A (zh) * | 2015-12-15 | 2017-06-23 | 阿里巴巴集团控股有限公司 | 一种异地多活下的业务数据路由方法及装置 |
CN107959626A (zh) * | 2017-12-13 | 2018-04-24 | 迈普通信技术股份有限公司 | 数据中心的通信方法、装置及*** |
CN108011995A (zh) * | 2017-12-19 | 2018-05-08 | 北京星河星云信息技术有限公司 | 异地多活的实现方法、异地多活服务平台及存储介质 |
CN109617907A (zh) * | 2019-01-04 | 2019-04-12 | 平安科技(深圳)有限公司 | 认证方法、电子装置及计算机可读存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108199912B (zh) * | 2017-12-15 | 2020-09-22 | 北京奇艺世纪科技有限公司 | 一种异地多活的分布式消息的管理、消费方法及装置 |
CN108924191A (zh) * | 2018-06-15 | 2018-11-30 | 青岛宇硕云联信息科技有限公司 | 通话方法及*** |
CN109309617A (zh) * | 2018-08-08 | 2019-02-05 | 华为技术有限公司 | 容灾切换方法、相关设备及计算机存储介质 |
CN110177007B (zh) * | 2019-04-16 | 2022-03-18 | 平安科技(深圳)有限公司 | 实现网关异地多活的方法、装置、计算机设备及存储介质 |
-
2019
- 2019-04-16 CN CN201910305843.5A patent/CN110177007B/zh active Active
- 2019-11-13 WO PCT/CN2019/118171 patent/WO2020211364A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090097478A1 (en) * | 2007-10-10 | 2009-04-16 | Microsoft Corporation | Techniques to access messaging services for branch offices |
CN106888164A (zh) * | 2015-12-15 | 2017-06-23 | 阿里巴巴集团控股有限公司 | 一种异地多活下的业务数据路由方法及装置 |
CN107959626A (zh) * | 2017-12-13 | 2018-04-24 | 迈普通信技术股份有限公司 | 数据中心的通信方法、装置及*** |
CN108011995A (zh) * | 2017-12-19 | 2018-05-08 | 北京星河星云信息技术有限公司 | 异地多活的实现方法、异地多活服务平台及存储介质 |
CN109617907A (zh) * | 2019-01-04 | 2019-04-12 | 平安科技(深圳)有限公司 | 认证方法、电子装置及计算机可读存储介质 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020211364A1 (zh) * | 2019-04-16 | 2020-10-22 | 平安科技(深圳)有限公司 | 实现网关异地多活的方法、装置、计算机设备及存储介质 |
CN110809064A (zh) * | 2019-09-05 | 2020-02-18 | 连连银通电子支付有限公司 | 一种ip地址切换方法、装置及*** |
CN110809064B (zh) * | 2019-09-05 | 2022-12-16 | 连连银通电子支付有限公司 | 一种ip地址切换方法、装置及*** |
CN112565327B (zh) * | 2019-09-26 | 2022-09-30 | 广州虎牙科技有限公司 | 访问流量转发方法、集群管理方法及相关装置 |
CN112565327A (zh) * | 2019-09-26 | 2021-03-26 | 广州虎牙科技有限公司 | 访问流量转发方法、集群管理方法及相关装置 |
CN110635950A (zh) * | 2019-09-30 | 2019-12-31 | 深圳供电局有限公司 | 一种双数据中心容灾*** |
CN110855808B (zh) * | 2019-10-11 | 2022-09-16 | 新浪网技术(中国)有限公司 | 一种基于分布式监控策略的域名自动切换方法、装置及*** |
CN110855808A (zh) * | 2019-10-11 | 2020-02-28 | 新浪网技术(中国)有限公司 | 一种基于分布式监控策略的域名自动切换方法、装置及*** |
CN110868450A (zh) * | 2019-10-15 | 2020-03-06 | 平安科技(深圳)有限公司 | 双机房多入口会话保持方法、***、装置及存储介质 |
CN110868450B (zh) * | 2019-10-15 | 2022-09-23 | 平安科技(深圳)有限公司 | 双机房多入口会话保持方法、***、装置及存储介质 |
CN111245943A (zh) * | 2020-01-14 | 2020-06-05 | 山东汇贸电子口岸有限公司 | 一种Redis集群获取可访问IP地址的方法 |
CN111526038A (zh) * | 2020-03-26 | 2020-08-11 | 口碑(上海)信息技术有限公司 | 业务请求分发方法、装置、计算机设备及可读存储介质 |
CN112039710A (zh) * | 2020-09-02 | 2020-12-04 | 曙光信息产业(北京)有限公司 | 服务故障处理方法、终端设备及可读存储介质 |
CN112187738A (zh) * | 2020-09-11 | 2021-01-05 | ***股份有限公司 | 业务数据访问控制方法、装置及计算机可读存储介质 |
CN112507381A (zh) * | 2020-12-21 | 2021-03-16 | 中电福富信息科技有限公司 | 支持多种操作***的资产信息和安全管理装置 |
CN114567646A (zh) * | 2022-03-08 | 2022-05-31 | 京东科技信息技术有限公司 | 数据处理方法、数据处理***、电子设备及存储介质 |
CN114785465A (zh) * | 2022-04-26 | 2022-07-22 | 上海识装信息科技有限公司 | 一种异地多活的实现方法、服务器及存储介质 |
CN114785465B (zh) * | 2022-04-26 | 2024-04-12 | 上海识装信息科技有限公司 | 一种异地多活的实现方法、服务器及存储介质 |
CN117041089A (zh) * | 2023-08-21 | 2023-11-10 | 江苏臻云技术有限公司 | 一种面向异地数据中心的设备监控***及方法 |
CN117041089B (zh) * | 2023-08-21 | 2024-01-23 | 江苏臻云技术有限公司 | 一种面向异地数据中心的设备监控***及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110177007B (zh) | 2022-03-18 |
WO2020211364A1 (zh) | 2020-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110177007A (zh) | 实现网关异地多活的方法、装置、计算机设备及存储介质 | |
CN103490886B (zh) | 权限数据的验证方法、装置及*** | |
CN106911728B (zh) | 分布式***中主节点的选取方法和装置 | |
CN112367321B (zh) | 快速构建服务调用的方法及中台api网关 | |
CN1949774B (zh) | 一种Web应用程序会话管理方法与装置 | |
CN108206830B (zh) | 漏洞扫描方法、装置、计算机设备和存储介质 | |
CN110990183B (zh) | 数据库集群的异常检测方法、装置、计算机可读存储介质 | |
CN109547458A (zh) | 登录验证方法、装置、计算机设备及存储介质 | |
CN110381072A (zh) | 基于区块链的数据验证方法、***和计算机可读存储介质 | |
US9967269B2 (en) | Method, device and system for processing DNS behavior | |
US20110202645A1 (en) | Methods and Apparatus to Test Network Elements | |
CN108108973A (zh) | 业务风险控制方法及装置 | |
EP3085023B1 (en) | Communications security | |
CN110213217A (zh) | 数据访问方法、相关装置、网关和数据访问*** | |
CN108900640A (zh) | 节点调用链路生成方法、装置、计算机设备及存储介质 | |
CN109639730A (zh) | 基于令牌的http无状态协议下信息***数据接口认证方法 | |
CN107864143B (zh) | 自演进的高效的代理资源供应***及方法 | |
CN108429765A (zh) | 一种基于区块链实现域名解析的方法、服务器和*** | |
CN109120616A (zh) | 一种身份认证方法、装置、代理服务端和存储介质 | |
CN113872828B (zh) | 区块链预言机状态监控方法 | |
CN110109812A (zh) | 访问日志数据的统计方法、装置、计算机设备和存储介质 | |
CN110378691A (zh) | 基于部署中心的区块链部署方法、装置和计算机设备 | |
CN109857391A (zh) | 数据的处理方法及装置、存储介质和电子装置 | |
KR20210130989A (ko) | Api 게이트웨이 엑셀레이터 시스템 및 방법 | |
CN108092777A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |