掌桥专利:专业的专利平台
掌桥专利
首页

一种异地多活的实现方法、服务器及存储介质

文献发布时间:2023-06-19 16:06:26



技术领域

本发明实施例涉及分布式系统架构设计技术领域,尤其涉及一种异地多活的实现方法、服务器及存储介质。

背景技术

异地多活是指在不同的地区或城市,多地部署服务器机房,承接来自客户端的用户访问流量。

电商类,社区类APP用户量到达一定量级后,为保证日常交易,双十一等大型活动期间的应用稳定,降低故障资损及影响,都会选择搭建多个机房进行容灾,支持异地多活的容灾备份能力。当某个机房出现故障后,在用户无感知情况下将流量自动切换到其他机房,保证服务的高可用性。为实现将用户请求准确定向到对应机房,一般采取的方案是通过边缘服务节点、代理服务节点、网关等云端节点执行多活分流逻辑的方式实现云端控制的异地多活。

然而通过边缘服务节点、代理服务节点、网关等云端节点执行多活分流逻辑的方式严重依赖边缘服务节点、代理服务节点、网关等服务端节点的稳定性,当边缘服务节点、代理服务节点、网关等节点自身发生故障时异地多活功能便无法实现。

发明内容

本发明实施例提供一种异地多活的实现方法,以解决现有的异地多活严重依赖于边缘服务节点、代理服务节点、网关等服务端节点,若节点自身发生故障时异地多活功能便无法实现的技术问题,达到了保障异地多活功能稳定实现的技术效果。

本发明提供了一种异地多活的实现方法,包括:

推荐机房向服务端发送业务接口请求,响应于返回的配置信息,从所述配置信息中提取支持异地多活的业务接口、机房对应的IP列表及推荐机房,并根据所述机房对应的IP列表及推荐机房得到记录当前业务接口至所述异地多活动态表;

向所述服务端发送目标业务接口请求时,判断所述异地多活动态表可否用于所述目标业务;

当所述异地多活动态表可用于所述目标业务时,根据所述推荐机房对所述机房对应的IP列表进行排序,得到排序后的IP列表,并根据所述排序后的IP列表建立连接,定向访问机房。

优选地,当所述异地多活动态表可用于所述目标业务时,根据所述推荐机房对所述机房对应的IP列表进行排序,得到排序后的IP列表,并根据所述排序后的IP列表建立连接,定向访问机房的步骤具体包括:

当所述异地多活动态表可用于所述目标业务时,根据所述推荐机房对所述机房对应的IP列表进行排序,得到排序后的IP列表;

将所述排序后的IP列表中,同机房的IPv6类型的IP排在IPv4类型的IP之前;

对调整顺序后的IP列表进行持久化存储;

根据所述调整顺序后的IP列表建立连接,定向访问机房。

优选地,根据所述调整顺序后的IP列表建立连接,定向访问机房的步骤具体包括:

根据所述调整顺序后的IP列表,选取第一个IP发起接口请求;

当请求异常时,检测与公共DNS服务的连接是否正常;

当检测结果为正常时,标记所述当前IP为失效,并选取下一个IP发起接口请求直至请求正常;

建立并保存与请求正常的IP建立的连接,定向访问机房。

优选地:

根据服务端下发的预设失效过期时间对标记为失效的IP进行计时;

当目标IP的计时满足预设失效过期时间时,去除所述目标IP的失效标记。

优选地,判断所述异地多活动态表可否用于所述目标业务的判断方法具体包括:

所述服务端响应于所述客户端发送的目标业务接口请求,判断所述目标业务接口是否包含在异地多活业务白名单中;

当包含在所述异地多活业务白名单中时,向所述客户端发送包含预设参数的配置信息;

当所述客户端检测到所述预设参数时,所述异地多活动态表可用于所述目标业务。

优选地,所述预设参数包括机房对应的IP列表及推荐机房。

优选地,向所述服务端发送目标业务接口请求时,判断所述异地多活动态表可否用于所述目标业务的步骤具体包括:

机房的流量转发设备判断所述目标业务接口是否包含在异地多活业务白名单中;

当包含在所述异地多活业务白名单中时,向发送至所述客户端的配置信息中添加预设参数。

优选地,还包括:

接收客户端发送的业务接口请求时,机房的流量转发设备根据所述客户端的系统类型返回不同的配置信息,并根据所述不同的配置信息对所述客户端进行分流。

本发明还提出一种服务器,所述服务器包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行异地多活的实现程序,所述异地多活的实现程序被所述处理器执行时实现如上所述的异地多活的实现方法。

本发明还提出一种可读存储介质,所述可读存储介质上存储有异地多活的实现程序,所述异地多活的实现程序被处理器执行时实现如上所述的异地多活的实现方法的步骤。

本发明通过将异地多活的分流在客户端实现的方式,摆脱了对边缘服务节点、代理服务节点、网关等节点的依赖,通过向服务端发送业务接口请求,获取到机房的IP,并在支持异地多活的业务中通过对机房IP随机排序的方式均衡各个机房的负载,实现异地多活的分流,解决了现有技术中边缘服务节点、代理服务节点、网关等服务端节点故障时,异地多活功能无法实现的技术问题,保障了异地多活功能的稳定实现,提高了用户体验。

附图说明

图1是本发明任务自动配置方法中一实施例的流程示意图;

图2是本发明任务自动配置方法中另一实施例的流程示意图;

图3是本发明任务自动配置方法中另一实施例的流程示意图;

图4是本发明实施例中的装置结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

图1为本发明实施例提供的一种异地多活的实现方法的流程图,具体包括:

S100、推荐机房向服务端发送业务接口请求,响应于返回的配置信息,从所述配置信息中提取支持异地多活的业务接口、机房对应的IP列表及推荐机房,并根据所述机房对应的IP列表及推荐机房得到记录当前业务接口至所述异地多活动态表;

需要说明的是,服务端在接收到客户端接口请求后,会将全部机房对应IP列表及根据推荐机房添加至配置信息中,客户端仅需初次请求或未获取到IP列表时与边缘服务节点、代理服务节点、网关等节点等建立连接,而后客户端即可获取所有机房的IP地址,将其存储后即可通过机房的IP地址向任一机房发送连接请求,摆脱对边缘服务节点、代理服务节点、网关等节点的依赖。

S200、向所述服务端发送目标业务接口请求时,判断所述异地多活动态表可否用于所述目标业务;

值得强调的是,现有技术中基于边缘服务节点、代理服务节点、网关等服务端节点实现的异地多活仅支持按域名生效异地多活,而无法按照业务接口类型生效异地多活,而本实施例通过网关侧判断当前客户端是否为异地多活灰度生效用户且当前接口是否为异地多活生效接口,实现更加灵活的配置,满足不同业务的不同需求。

S300、当所述异地多活动态表可用于所述目标业务时,根据所述推荐机房对所述机房对应的IP列表进行排序,得到排序后的IP列表,并根据所述排序后的IP列表建立连接,定向访问机房。

需要强调的是,本实施例通过随机排序的方式,避免所有客户端都与同一个机房连接,实现了均衡负载,并通过直接与机房IP建立连接的方式,定向访问机房,实现了异地多活,提高了用户体验。

本实施例的技术方案,通过向服务端发送业务接口请求,获取到机房的IP,并在支持异地多活的业务中通过对机房IP随机排序的方式均衡各个机房的负载,实现异地多活的分流,摆脱了对边缘服务节点、代理服务节点、网关等服务端节点的依赖,解决了现有技术中边缘服务节点、代理服务节点、网关等服务端节点故障时,异地多活功能无法实现的技术问题,提高了用户体验。

参照图2,图2是本发明任务自动配置方法中另一实施例的流程示意图,本发明所提供的异地多活的实现方法,当所述异地多活动态表可用于所述目标业务时,根据所述推荐机房对所述机房对应的IP列表进行排序,得到排序后的IP列表,并根据所述排序后的IP列表建立连接,定向访问机房的步骤具体包括:

S310、当所述异地多活动态表可用于所述目标业务时,根据所述推荐机房对所述机房对应的IP列表进行排序,得到排序后的IP列表;

易于理解的是,当异地多活动态表中不含目标业务时,则需通过非异地多活的连接方式建立连接,而当异地多活动态表中含有目标业务时,则可判断是否存在该业务的历史连接,若有则可直接使用历史连接向机房IP发送请求,若无历史连接或使用历史连接向机房IP发送的请求无响应,则可从异地多活动态表获取其他机房IP,并建立连接。

S320、将所述排序后的IP列表中,同机房的IPv6类型的IP排在IPv4类型的IP之前;

需要说明的是,由于IPv4的地址资源不足,可能存在获取到的机房IP经常变动或是通过二级路由与其他设备共享IP的情况,这些都会造成向机房IP发送的请求无响应,而IPv6的地址资源极其充沛,地址变动的情况较少,且通常不存在通过二级路由与其他设备共享IP的情况,因此本实施例将IPv6的优先级提高,将所述排序后的IP列表中,同机房的IPv6类型的IP排在IPv4类型的IP之前。

S330、对调整顺序后的IP列表进行持久化存储;

值得强调的是,异地多活动态表进行持久化存储后,客户端即可直接通过机房IP与机房建立连接,无需通过边缘服务节点、代理服务节点、网关等服务端节点,增强了异地多活生效的稳定性。

S340、根据所述调整顺序后的IP列表建立连接,定向访问机房。

需要强调的是,由于不同客户端最终的排序顺序并不相同,且随机排序的方式,所有机房的连接概率都较为接近因此仅在极少概率下才会出现大量客户端都访问同一机房造成机房资源不足的情况,对于该情况,也可通过限制最大连接数使得客户端连接其他机房,进一步利用异地多活的优势。

参照图3,图3是本发明任务自动配置方法中另一实施例的流程示意图。

根据所述调整顺序后的IP列表建立连接,定向访问机房的步骤具体包括:

S341、根据所述调整顺序后的IP列表,选取第一个IP发起接口请求;

易于理解的是,排序一定上是为了让各个机房的负载均衡,因此与机房的连接最好按照排序顺序进行尝试,当然物理距离较近的机房在随机排序时,权重会更高,且若与机房的连接状态不好时,也会与其他机房重新建立连接。

S342、当请求异常时,检测与公共DNS服务的连接是否正常;

需要说明的是,由于请求异常时无法判断是机房存在问题还是客户端联网存在问题,因此需要测试客户端联网是否正常,本实施例通过检测与公共DNS的连接是否正常来判断客户端联网是否正常,具体的方式为:使用ping命令检测国内公用的DNS服务,公共DNS服务的IPv4地址包括114.114.114.114,223.5.5.5,180.76.76.76等。

S343、当检测结果为正常时,标记所述当前IP为失效,并选取下一个IP发起接口请求直至请求正常;

值得强调的是,若客户端联网正常,则可能服务端存在异常,此时异地多活的优势得到体现,客户端仅需选取下一个IP尝试连接,即可避免服务器异常导致业务受影响,且标记可能存在异常的机房IP,避免每个业务接口都连接一次存在异常的机房IP后再切换其它机房IP,减少不必要的延迟,提高用户体验。

S344、建立并保存与请求正常的IP建立的连接,定向访问机房。

需要强调的是,发起请求得到响应后,即可实现与机房的连接,此时可以保存该连接,以提高该业务接口下次连接的连接速度,且同一业务在使用过程中可能出现暂停的情况,保存该连接有利于继续该业务时,提高响应速度。

具体地,所述的异地多活的实现方法还包括:

根据服务端下发的预设失效过期时间对标记为失效的IP进行计时;

易于理解的是,通常服务器故障的情况较为少见,多数情况下都是丢包造成的无响应,此时再次连接可能就能连接上了,当然也存在服务器故障的情况,但是服务器的维护人员会在短时间内将服务器修好,因此对于失效的IP服务器会下发一个失效过期时间,便于在服务器修好以后,客户端及时连接该服务器,该时间可通过服务器下发,这使得服务器在需要维修时,可根据维修时间所需下发失效过期时间,最大程度减少客户端与失效IP的请求,提高客户端与服务器连接的响应速度。

当目标IP的计时满足预设失效过期时间时,去除所述目标IP的失效标记。

值得强调的是,当目标IP的计时满足预设失效过期时间时,判断服务器已修复,因此去除所述目标IP的失效标记,客户端即可向目标IP发送请求,尝试建立连接,尽快利用该服务器的资源。

本实施例通过,公开服务器失效时的处理方法,完善了技术方案,客户端在无需重新获取机房IP的情况下即可绕过失效服务器,与正常服务器建立连接,很好的利用了异地多活的优势,减少了因服务器故障造成的客户端连接异常,并通过标记失效IP、保存连接及预设失效过期时间等完善了异常服务器在修复后的资源利用,降低了异常期间连接延迟,减少了服务器资源的浪费,提升了用户体验。

本申请所述的异地多活的实现方法,判断所述异地多活动态表可否用于所述目标业务的判断方法具体包括:

所述服务端响应于所述客户端发送的目标业务接口请求,判断所述目标业务接口是否包含在异地多活业务白名单中;

值得强调的是,本实施例通过白名单的方式实现根据不同的业务接口启用或停用异地多活,实现了对不同业务的定制化,使得各个业务在服务器上的配置更加灵活。

当包含在所述异地多活业务白名单中时,向所述客户端发送包含预设参数的配置信息;

需要说明的是,预设参数包括机房对应的IP列表及推荐机房,其中推荐机房通常是与客户端的连接延迟较低的机房IP,通常在物理上的距离也更近,或是服务器的负载较轻,该方式可避免完全随机带来的客户端与服务器访问延迟高、丢包率高影响用户体验。

当所述客户端检测到所述预设参数时,所述异地多活动态表可用于所述目标业务。

易于理解的是,当客户端检测到机房对应的IP列表及推荐机房时,即可知道该业务接口支持异地多活,此时即可将异地多活动态表用于目标业务,避免使用单一服务器的资源,也可根据支持异地多活的业务接口进行比对,若使用的接口包含在支持异地多活的业务接口中,也可将异地多活动态表用于目标业务。

具体地,所述预设参数包括机房对应的IP列表及推荐机房。

需要说明的是,机房对应的IP列表及推荐机房的更新可选择在客户端冷启动、热启动、后台及重启等时间段,也可定时更新,避免由于机房对应的IP列表及推荐机房长时间不更新造成保存的IP均无法连接而使得客户端连接服务器时间过长。

本实施例通过白名单的方式实现不同业务启用或停用异地多活,减少了资源的消耗,提高了不同业务在同一服务器配置的灵活性,同时通过有线访问机房IP避免了完全随机带来的客户端与服务器访问延迟高、丢包率高影响用户体验,完善了技术方案,提高了用户体验。

本实施例提出的异地多活的实现方法,向所述服务端发送目标业务接口请求时,判断所述异地多活动态表可否用于所述目标业务的步骤具体包括:

机房的流量转发设备判断所述目标业务接口是否包含在异地多活业务白名单中;

需要说明的是,通过机房的流量转发设备判断所述目标业务接口是否包含在异地多活业务白名单中可有效降低延迟,减少服务器传入传出的数据量,降低运营成本并提高服务器的负载数量。

当包含在所述异地多活业务白名单中时,向发送至所述客户端的配置信息中添加预设参数。

值得强调的是,由于白名单及预设参数的添加消耗的计算资源及存储资源极小,机房的流量转发设备即可实现对大量用户数据的处理,且机房的流量转发设备与客户端连接的响应速度更快,进一步减少了机房的流量转发设备与服务器之间传输的数据数量,减少了资源的消耗。

具体地,还包括:

接收客户端发送的业务接口请求时,机房的流量转发设备根据所述客户端的系统类型返回不同的配置信息,并根据所述不同的配置信息对所述客户端进行分流。

值得说明的是,本实施例还通过机房的流量转发设备根据客户端不同的系统类型进行分流,例如安卓和苹果设备则可使用不同的配置信息,配置至不同的服务器,一方面能够实现对不同系统平台的特殊业务及功能的定制,另一方面能对流量进行更精细化的管理,对安卓与IOS等不同系统的不同网络环境进行定制化的调整改进,提高了用户体验。

本实施例通过公开机房的流量转发设备替代服务器的部分功能,完善了技术方案,减少了机房的流量转发设备与服务器之间的数据总量,减少了服务器资源的消耗,降低了运营成本,并通过机房的流量转发设备根据客户端不同的系统类型进行分流,实现对流量更加精细化的管理,还可通过对不同系统平台的服务端进行特殊的定制,在不同系统平台通过与各自系统平台更加兼容的方式实现所需功能,提高了服务器的资源利用率,也提升了用户体验。

如图4所示,图4是本发明另一实施例的服务器结构示意图。该服务器包括处理器70、存储器71、输入装置72和输出装置73;服务器中处理器70的数量可以是一个或多个,图4中以一个处理器70为例;服务器中的处理器70、存储器71、输入装置72和输出装置73可以通过总线或其他方式连接,图4中以通过总线连接为例。

存储器71作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的异地多活的实现对应的程序指令。处理器70通过运行存储在存储器71中的软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述的异地多活的实现。

存储器71可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器71可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器71可进一步包括相对于处理器70远程设置的存储器,这些远程存储器可以通过网络连接至服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置72可用于接收输入的数字或字符信息,以及产生与服务器的用户设置以及功能控制有关的键信号输入。输出装置73可包括显示屏等显示服务器。

本实施例具备执行方法相应的功能模块和有益效果,在此不再一一赘述。

本发明实施例还提供一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行一种异地多活的实现方法,该方法包括:

推荐机房向服务端发送业务接口请求,响应于返回的配置信息,从所述配置信息中提取支持异地多活的业务接口、机房对应的IP列表及推荐机房,并根据所述机房对应的IP列表及推荐机房得到记录当前业务接口至所述异地多活动态表;

向所述服务端发送目标业务接口请求时,判断所述异地多活动态表可否用于所述目标业务;

当所述异地多活动态表可用于所述目标业务时,根据所述推荐机房对所述机房对应的IP列表进行排序,得到排序后的IP列表,并根据所述排序后的IP列表建立连接,定向访问机房。

具体地,当所述异地多活动态表可用于所述目标业务时,根据所述推荐机房对所述机房对应的IP列表进行排序,得到排序后的IP列表,并根据所述排序后的IP列表建立连接,定向访问机房的步骤具体包括:

当所述异地多活动态表可用于所述目标业务时,根据所述推荐机房对所述机房对应的IP列表进行排序,得到排序后的IP列表;

将所述排序后的IP列表中,同机房的IPv6类型的IP排在IPv4类型的IP之前;

对调整顺序后的IP列表进行持久化存储;

根据所述调整顺序后的IP列表建立连接,定向访问机房。

具体地,根据所述调整顺序后的IP列表建立连接,定向访问机房的步骤具体包括:

根据所述调整顺序后的IP列表,选取第一个IP发起接口请求;

当请求异常时,检测与公共DNS服务的连接是否正常;

当检测结果为正常时,标记所述当前IP为失效,并选取下一个IP发起接口请求直至请求正常;

建立并保存与请求正常的IP建立的连接,定向访问机房。

具体地,还包括:

根据服务端下发的预设失效过期时间对标记为失效的IP进行计时;

当目标IP的计时满足预设失效过期时间时,去除所述目标IP的失效标记。

具体地,判断所述异地多活动态表可否用于所述目标业务的判断方法具体包括:

所述服务端响应于所述客户端发送的目标业务接口请求,判断所述目标业务接口是否包含在异地多活业务白名单中;

当包含在所述异地多活业务白名单中时,向所述客户端发送包含预设参数的配置信息;

当所述客户端检测到所述预设参数时,所述异地多活动态表可用于所述目标业务。

具体地,所述预设参数包括机房对应的IP列表及推荐机房。

具体地,向所述服务端发送目标业务接口请求时,判断所述异地多活动态表可否用于所述目标业务的步骤具体包括:

机房的流量转发设备判断所述目标业务接口是否包含在异地多活业务白名单中;

当包含在所述异地多活业务白名单中时,向发送至所述客户端的配置信息中添加预设参数。

具体地,还包括:

接收客户端发送的业务接口请求时,机房的流量转发设备根据所述客户端的系统类型返回不同的配置信息,并根据所述不同的配置信息对所述客户端进行分流。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上的方法操作,还可以执行本发明任意实施例所提供的异地多活的实现中的相关操作,具备执行方法相应的功能模块和有益效果,在此不再一一赘述。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。

值得注意的是,上述搜索装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

技术分类

06120114700586