CN113141412B - 域名切换方法、系统、装置、设备及存储介质 - Google Patents

域名切换方法、系统、装置、设备及存储介质 Download PDF

Info

Publication number
CN113141412B
CN113141412B CN202110480551.2A CN202110480551A CN113141412B CN 113141412 B CN113141412 B CN 113141412B CN 202110480551 A CN202110480551 A CN 202110480551A CN 113141412 B CN113141412 B CN 113141412B
Authority
CN
China
Prior art keywords
domain name
standby
list
target
heartbeat packet
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.)
Active
Application number
CN202110480551.2A
Other languages
English (en)
Other versions
CN113141412A (zh
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.)
Beijing QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and 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 Beijing QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN202110480551.2A priority Critical patent/CN113141412B/zh
Publication of CN113141412A publication Critical patent/CN113141412A/zh
Application granted granted Critical
Publication of CN113141412B publication Critical patent/CN113141412B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/30Managing network names, e.g. use of aliases or nicknames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请涉及一种域名切换方法、系统、装置、设备及存储介质,涉及网络技术领域,应用于终端的方法包括:获取应用程序当前使用的后端服务器的域名,作为当前域名,所述应用程序运行在所述终端上;按照所述当前域名对所述后端服务器进行心跳包检测;当所述心跳包检测失败时,从域名列表中选择一个备用域名作为目标域名,采用所述目标域名替换所述当前域名,所述目标域名与所述当前域名不相同;其中,所述域名列表为预先从所述后台服务器获得,所述域名列表中包括至少一个所述备用域名。用以解决应用程序域名访问异常,导致用户无法正常使用应用程序的问题。

Description

域名切换方法、系统、装置、设备及存储介质
技术领域
本申请涉及网络技术领域,尤其涉及一种域名切换方法、系统、装置、设备及存储介质。
背景技术
目前,通过服务器的特殊技术设置,可以实现多个域名指向一个网站或网站子目录的目的。
终端上安装应用程序时,在该应用程序预先配置默认的域名地址是以硬编码方式固化在应用程序内的,在应用程序发布之后,如果该域名地址连接不到,也无法切换其他域名地址连接,用户则难以对应用程序网页进行访问。
现有技术中的域名切换技术,通过在应用程序第一次启动时,使用默认域名,同时从云端服务器获取域名文件,解析域名文件并获取其中的新域名并保存在应用程序中,在采用应用程序的默认域名连接失败后,需要重启应用程序,在重启时采用已保存的新域名替换默认域名,并采用新域名访问应用程序的后端服务器。
发明人在研究现有技术的过程中发现,现有域名切换技术的缺点在于:应用程序重启是更换新域名的必要前提条件,这就使得用户已经感知到应用程序异常,影响用户的正常使用,并且更换的域名是否能够正常使用,也无法确定,可能导致应用程序因域名访问异常而反复重启。
发明内容
本申请提供了一种域名切换方法、系统、装置、设备及存储介质,用以解决应用程序域名访问异常,导致用户无法正常使用应用程序的问题。
第一方面,本申请实施例提供了一种域名切换方法,应用于终端,包括:
获取应用程序当前使用的后端服务器的域名,作为当前域名,所述应用程序运行在所述终端上;
按照所述当前域名对所述后端服务器进行心跳包检测;
当所述心跳包检测失败时,从域名列表中选择一个备用域名作为目标域名,采用所述目标域名替换所述当前域名,所述目标域名与所述当前域名不相同;
其中,所述域名列表为预先从所述后台服务器获得,所述域名列表中包括至少一个所述备用域名。
可选地,所述从域名列表中选择一个备用域名作为目标域名,包括:
根据所述域名列表中各备用域名的历史使用记录,从所述域名列表中选择一个所述备用域名作为所述目标域名,所述目标域名的持续未被使用时长超过设定时长,或者,在所述域名列表中所述目标域名的使用次数最少;
其中,所述历史使用记录中记录有所述域名列表中各备用域名的使用次数,和/或,最近一次被切换的时间。
可选地,所述根据所述域名列表中各备用域名的历史使用记录,从所述域名列表中选择一个所述备用域名作为目标域名,包括:
根据所述历史记录中记录的所述备用域名的使用次数,判断所述域名列表中是否存在使用次数为零的备用域名;
若存在,从所述使用次数为零的备用域名中,选择一个所述备用域名作为所述目标域名;
若不存在,按照所述历史使用记录中记录的所述备用域名的使用次数,从所述域名列表中,选择使用次数最少的备用域名,作为所述目标域名;或者,按照所述历史使用记录中记录的所述备用域名的最近一次被切换的时间,计算所述备用域名的持续未被使用时长,从所述域名列表中选择持续未被使用时长超过设定时长的备用域名,作为所述目标域名。
可选地,所述域名列表的各备用域名中包括一个对应优选标记的优选域名;
所述根据所述域名列表中各备用域名的历史使用记录,从所述域名列表中选择一个所述备用域名作为所述目标域名,包括:
若所述当前域名不是优选域名,且根据所述历史使用记录中记录的所述域名列表中各备用域名的使用次数或最近一次被切换的时间,确定所述优选域名满足预设条件,将所述优选域名作为所述目标域名;其中,所述预设条件包括:使用次数为零,或者,持续未被使用时长超过设定时长;
若所述当前域名是优选域名,按照所述历史使用记录中记录的、所述域名列表中除所述优选域名之外的备用域名的使用次数,从所述域名列表中除所述优选域名之外的备选域名中,选择使用次数最少的备用域名,作为所述目标域名;或者,按照所述历史使用记录中记录的、所述域名列表中除所述优选域名之外的备用域名的最近一次被使用的时间,选择持续未被使用时长超过设定时长的备用域名,作为所述目标域名。
可选地,所述按照所述当前域名对所述后端服务器进行心跳包检测之前,还包括:
获取所述终端的网络协议地址;
向所述后端服务器发送携带所述终端的网络协议地址的域名列表请求,并接收所述后端服务器根据所述域名列表请求返回的域名列表响应;
获取所述域名列表响应中携带的所述域名列表。
可选地,所述域名列表响应中还携带所述心跳包检测所需的心跳包发送间隔、以及用于判断心跳包响应超时的超时阈值;
按照所述当前域名对所述后端服务器进行心跳包检测,包括:
以所述心跳包发送间隔为周期,按照所述当前域名向所述后端服务器发送心跳包请求,在每次发送心跳包请求后,若在所述超时阈值限定的时长内,接收到所述后端服务器返回的心跳包响应,则心跳包检测成功;
若未在所述超时阈值限定的时长内,接收到所述后端服务器返回的心跳包响应,则心跳包检测失败。
第二方面,本申请实施例提供了一种域名切换系统,包括终端和应用程序的后端服务器,所述应用程序运行在所述终端上;
所述后端服务器,用于向所述中提供域名列表;
所述终端,用于获取所述应用程序当前使用的所述后端服务器的域名,作为当前域名;按照所述当前域名对所述后端服务器进行心跳包检测;当所述心跳包检测失败时,从所述域名列表中选择一个备用域名作为目标域名,采用所述目标域名替换所述当前域名,所述目标域名与所述当前域名不相同;其中,所述域名列表为预先从所述后台服务器获得,所述域名列表中包括至少一个所述备用域名。
可选地,所述后端服务器用于:
接收终端发送的域名列表请求,所述域名列表请求中携带所述终端的网络协议地址;
获取所述终端的网络协议地址对应的所述域名列表,所述域名列表中包括至少一个备用域名;
生成携带所述域名列表的域名列表响应;
向所述终端返回所述域名列表响应。
可选地,所述域名列表响应中还携带心跳包检测所需的心跳包发送间隔、以及用于判断心跳包响应超时的超时阈值。
第三方面,本申请实施例提供了一种域名切换装置,应用于终端,所述装置包括:
获取模块,用于获取应用程序当前使用的后端服务器的域名,作为当前域名,所述应用程序运行在所述终端上;
检测模块,用于按照所述当前域名对所述后端服务器进行心跳包检测;
切换模块,用于当所述心跳包检测失败时,从域名列表中选择一个备用域名作为目标域名,采用所述目标域名替换所述当前域名,所述目标域名与所述当前域名不相同;
其中,所述域名列表为根据所述终端的网络协议地址预先从所述后台服务器获得,所述域名列表中包括至少一个所述备用域名。
第四方面,本申请实施例提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述存储器中所存储的程序,实现第一方面所述的域名切换方法。
第五方面,本申请实施例提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的域名切换方法。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:本申请实施例提供的该方法,在终端上运行应用程序的过程中,按照该应用程序当前使用的后端服务器的域名,对该后端服务器进行心跳包检测,以能够及时发现当前使用的后端服务器的域名是否故障,并在心跳包检测失败时,从域名列表中存储的至少一个备用域名中选择目标域名,采用选择的目标域名替换当前使用的后端服务器的域名,使得在发现当前使用的后端服务器的域名故障时,能够及时更换新的后端服务器的域名,整个过程中不需要重新启动应用程序,并且,也不需要以应用程序与后端服务器交互应用数据失败为条件,使得能够在用户无感知的情况下,完成域名切换。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的域名切换系统的架构示意图;
图2为本申请实施例提供的域名切换方法的流程示意图;
图3为本申请实施例提供的从域名列表中选择目标域名的一种实施方法的流程示意图;
图4为本申请实施例提供的从域名列表中选择目标域名的另一种实施方法的流程示意图;
图5为本申请实施例提供的域名切换的实施过程示例的流程示意图;
图6为本申请实施例提供的域名切换装置的结构示意图;
图7为本申请实施例提供的电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本申请实施例中提供了一种域名切换系统,如图1所示,该系统主要包括终端10和应用程序的后端服务器11,该应用程序运行在该终端10上。
后端服务器11,用于向终端10提供域名列表;
终端10,用于获取应用程序当前使用的后端服务器11的域名,作为当前域名;按照该当前域名对后端服务器11进行心跳包检测;当心跳包检测失败时,从域名列表中选择一个备用域名作为目标域名,采用该目标域名替换当前域名,该目标域名与该当前域名不相同;其中,域名列表为预先从后端服务器11获得,该域名列表中包括至少一个备用域名。
基于该系统架构,在应用程序的后端服务器11向终端10提供域名列表后,终端10在运行应用程序的过程中,按照该应用程序当前使用的后端服务器11的域名,对该后端服务器11进行心跳包检测,以能够及时发现当前使用的后端服务器11的域名是否故障,并在心跳包检测失败时,从域名列表中存储的至少一个备用域名中选择目标域名,采用选择的目标域名替换当前使用的后端服务器11的域名,使得在发现当前使用的后端服务器11的域名故障时,能够及时更换新的后端服务器11的域名,整个过程中不需要重新启动应用程序,并且,也不需要以应用程序与后端服务器11交互应用数据失败为条件,使得能够在用户无感知的情况下,完成域名切换。大大降低了用户在使用应用程序过程中,感知到应用程序故障的概率。
一个具体实施例中,后端服务器11用于:
接收终端10发送的域名列表请求,域名列表请求中携带终端的网络协议地址;获取终端的网络协议地址对应的域名列表,域名列表中包括至少一个备用域名;生成携带域名列表的域名列表响应;向终端10返回域名列表响应。
该实施例中,后端服务器根据终端的网络协议地址,确定适用于该终端的域名列表,保证了域名列表中各备用域名的可用性,避免了默认备用域名的方式,无法确保默认备用域名是否可用的问题,提高了采用默认备用域名替换当前域名后,终端成功访问应用程序后端服务器的概率。并且,后端服务器根据终端的网络协议地址确定域名列表,可参考域名列表中各备用域名与终端的网络地址地址间的距离,选择距离较近的域名作为备用域名,可以保证终端按照切换使用备用域名后,从后端服务器获取应用页面的速度,提高用户体验。
一个具体实施例中,域名列表响应中还携带心跳包检测所需的心跳包发送间隔、以及用于判断心跳包响应超时的超时阈值。
该实施例中,通过一次配置过程即可为终端配置域名列表、心跳包发送间隔以及超时阈值,避免了分别配置操作繁琐的问题,并且后端服务器统一终端的配置,可以避免不同终端配置不同参数导致配置过程所需资源浪费的问题。
本申请实施例中提供了一种应用于终端的域名切换方法,如图2所示,终端对运行的应用程序进行域名切换的方法流程主要包括:
步骤201,终端获取应用程序当前使用的后端服务器的域名,作为当前域名,该应用程序运行在该终端上。
其中,应用程序当前使用的后端服务器的域名,可以是应用程序首次下载安装时默认配置的后端服务器的域名,也可以是最近一次成功向后端服务器请求业务数据时所使用的域名。需要说明的是,此处仅为举例说明,根据应用场景的需要,当前使用的后端服务器的域名,也可以是其他当然认为有效的域名,例如,应用程序当前使用的后端服务器的域名,也可以是通过交互界面录入的后端服务器的域名,即用户通过应用程序的界面输入的域名。
步骤202,终端按照该当前域名对该后端服务器进行心跳包检测。
其中,心跳包检测的具体过程可以是,终端以心跳包发送间隔为周期,按照当前域名向后端服务器发送心跳包请求,在每次发送心跳包请求后,若在超时阈值限定的时长内,接收到后端服务器返回的心跳包响应,则心跳包检测成功;若未在超时阈值限定的时长内,接收到后端服务器返回的心跳包响应,则心跳包检测失败。需要说明的是,此处关于心跳包检测是否失败的判定方式仅为举例说明,应用中只需要心跳包请求或心跳包响应未按照约定的方式进行,即可判定心跳包检测失败,具体约定的方式可以根据需要设定,此处不进行限制。例如,心跳包检测失败也可以是终端发送心跳包请求失败。
其中,心跳包发送时间以及超时阈值,可以由后端服务器配置给终端,例如心跳间隔时间可以为0.6秒,约定定时长设置为1s。
步骤203,当心跳包检测失败时,终端从域名列表中选择一个备用域名作为目标域名,采用该目标域名替换该当前域名,该目标域名与该当前域名不相同。
其中,域名列表为预先从后端服务器获得,域名列表中包括至少一个后端服务器的备用域名。
在终端上运行应用程序的过程中,按照该应用程序当前使用的后端服务器的域名,对该后端服务器进行心跳包检测,以能够及时发现当前使用的后端服务器的域名是否故障,并在心跳包检测失败时,从域名列表中存储的至少一个备用域名中选择目标域名,采用选择的目标域名替换当前使用的后端服务器的域名,使得在发现当前使用的后端服务器的域名故障时,能够及时更换新的后端服务器的域名,整个过程中不需要重新启动应用程序,并且,也不需要以应用程序与后端服务器交互应用数据失败为条件,使得能够在用户无感知的情况下,完成域名切换。
一个具体实施例中,域名列表为切换域名配置依据,是终端在按照当前域名对后端服务器进行心跳包检测之前,预先从后端服务器获取的,获取的具体过程包括:获取终端的网络协议地址(简称IP地址);向后端服务器发送携带终端的网络协议地址的域名列表请求;并接收后端服务器根据该域名列表请求返回的域名列表响应;获取该域名列表响应中携带的域名列表。后端服务器根据终端的网络协议地址确定域名列表,可参考域名列表中各备用域名与终端的网络地址地址间的距离,选择距离较近的域名作为备用域名,可以保证终端按照切换使用备用域名后,从后端服务器获取应用页面的速度,提高用户体验。
终端在获取域名列表后,解析域名列表中的域名,当心跳包检测失败时,从域名列表中选择一个备用域名作为目标域名,采用该目标域名替换当前域名,在用户无感知的情况下实现域名切换。并且,在及时发现域名异常后,能够实时从域名列表中选择备用域名,切换当前域名,实现域名的实时切换,提高了用户体验。
需要说明的是,此处仅以从后端服务器获取域名列表为例进行说明,该域名列表也可以是预先配置在其他服务器中,只需要该域名列表中保存的为应用程序的后端服务器的域名,且包括与当前域名不相同的域名即可。
一个具体实施例中,域名列表响应中还携带心跳包检测所需的心跳包发送间隔、以及用于判断心跳包响应超时的超时阈值。也就是说,心跳包发送间隔以及超时阈值,是在终端请求域名列表时,后端服务器将域名列表、心跳包发送间隔以及超时阈值一并返回给终端,由后端服务器统一约定心跳包检测的具体参数,从而避免了终端各自约定心跳包检测参数导致过程繁琐的问题,也避免了后端服务器存储各自终端的心跳包检测参数以及响应方式导致的资源浪费。
在一些实施例中,从域名列表中选择一个备用域名作为目标域名包括:根据域名列表中各备用域名的历史使用记录,从域名列表中选择一个备用域名作为目标域名,该目标域名的持续未被使用时长超过设定时长,或者,该域名列表中目标域名的使用次数最少。其中,历史使用记录中记录有域名列表中各备用域名的使用次数,和/或,最近一次被切换的时间。
对于域名列表中任意一个备用域名,该备用域名的持续未被使用时长,可以是通过历史使用记录中记录的该备用域名最近一次被切换的时间以及当前时间确定,例如,假设历史使用记录中记录的该备用域名最近一次被切换的时间为2020年1月1日凌晨,当前时间为2020年2月1日凌晨,则该备用域名持续未被使用时长为1个月。
对于域名列表中任意一个备用域名,该备用域名的使用次数,是指该备用域名被终端选中作为目标域名的累计次数。
这些实施例中,考虑到备用域名距离最近一次被切换的时间较短时,可能该备用的故障未被排除,仍处于故障状态,因此在从域名列表中选择目标域名时,选择距离最近一次被切换的时间超过设定时长的备用域名,即选择持续未被使用时长超过设定时长的备用域名,以降低选择的备用域名仍处于故障状态的概率。其中,该设定时长可以是根据经验值统计到的域名故障修复所需时长。
进一步地,在持续未被使用时长超过设定时长的备用域名大于1个时,可以从中选择使用次数最少的备用域名,作为目标域名。
另外,这些实施例中,考虑到备用域名的稳定性与该备用域名的使用次数负相关,即在备用域名比较稳定时,不存在被频繁切换的情况,因此认为备用域名的使用次数越少,则该备用域名越稳定,因此,在选择目标域名时,选择使用次数少的备用域名,以提高选出的目标域名可用的概率。
其中,根据域名列表中各备用域名的历史使用记录,从域名列表中选择一个备用域名作为目标域名,可以有多种具体实施方式,至少包括一下几种实施方式:
方式一,在域名列表的各备用域名中包括一个对应优选标记的优选域名。在从域名列表中选择目标域名时,优先考虑优选域名是否符合被选择的条件。
具体地,参照图3所示,域名列表中包括优选域名,根据域名列表中各备用域名的历史使用记录,从域名列表中选择一个备用域名作为目标域名,包括:
步骤301,判断当前域名是否为优选域名,若不是,执行步骤302,若是执行步骤303。
步骤302,若当前域名不是优选域名,且根据历史使用记录中记录的域名列表中各备用域名的使用次数或最近一次被切换的时间,确定优选域名满足预设条件,将该优选域名作为目标域名,其中,预设条件包括:使用次数为零,或者,持续未被使用时长超过设定时长。
在将优选域名作为目标域名时,更新域名列表中优选域名和当前域名的历史使用记录。即,将历史使用记录中记录的该优选域名的使用次数增加1,将历史使用记录中记录的当前域名的最近一次被切换的时间,更新为目标域名被选择的时刻。
其中,若当前域名不是优选域名,且优选域名没有使用过,则选择优选域名作为目标域名,将终端当前使用的后端服务器的域名切换为该优选域名。该方式使得能够优先选择优选域名作为目标域名,能够进一步提高终端按照切换后的优先域名访问后端服务器的成功概率。
其中,若当前域名不是优选域名,且优选域名持续未被使用时长超过设定时长,则将优选域名作为目标域名,将终端当前使用的后端服务器的域名切换为该优选域名。该方式使得能够优先选择优选域名作为目标域名,能够进一步提高终端按照切换后的优选域名访问后端服务器的成功概率。
若当前域名不是优选域名,且指定优选域名的历史使用记录不满足预设条件,根据域名列表中各备用域名的历史使用记录,从域名列表中选择一个备用域名作为目标域名,该目标域名的持续未被使用时长超过设定时长,或者,该域名列表中目标域名的使用次数最少。
其中,该设定时长可以是根据经验值统计到的域名故障修复所需时长。例如可以为2小时,若优选域名使用过,且优选域名持续未被使用时长超过2小时,则将优选域名作为目标域名,对当前域名进行切换。
步骤303,若当前域名是优选域名,按照历史使用记录中记录的、域名列表中除优选域名之外的备用域名的使用次数,从域名列表中除优选域名之外的备选域名中,选择使用次数最少的备用域名,作为目标域名;或者,按照历史使用记录中记录的、域名列表中除优选域名之外的备用域名的最近一次被使用的时间,选择持续未被使用时长超过设定时长的备用域名,作为目标域名。
在将该选择出的备用域名作为目标域名时,更新域名列表中该选择出的备用域名和当前域名的历史使用记录。即,将历史使用记录中记录的该优选域名的最近一次被切换的时间,更新为目标域名被选择的时刻,将该选择出的备用域名的使用次数增加1。
其中,优选域名为距离终端的网络协议地址确定出的最近的后端服务器的网络协议地址对应的域名。
后端服务器通常有容灾机制,即一个域名下,有两台或者更多后端服务器独立提供解析服务,例如,后端服务器包括主服务器和至少一个备用服务器,当域名在一个后端服务器中解析出现故障时,需要切换另一台后端服务器。每台后端服务器对应一个网络协议地址。
方式二,在从域名列表中选择目标域名时,优先选择未被使用过的备用域名作为目标域名。
参照图4所示,一些实施例中,根据域名列表中各备用域名的历史使用记录,从域名列表中选择一个备用域名作为目标域名,具体可以包括:
步骤401,根据历史使用记录中记录的各备用域名的使用次数,判断域名列表中是否存在使用次数为零的备用域名,若存在,则执行步骤402,若不存在,则执行步骤403。
步骤402,从使用次数为零的备用域名中,选择一个备用域名作为目标域名。
其中,使用次数为零的备用域名,即为未使用过的备用域名。从未使用过的备用域名中选择目标域名包括:
判断未使用过的域名中是否存在优选域名;如果存在优选域名,则优先选择优选域名作为目标域名;如果不存在优选域名,则从未使用过的备用域名中随机选择一个备用域名,作为目标域名。
在将该选择出的备用域名作为目标域名时,更新域名列表中该选择出的备用域名和当前域名的历史使用记录。即,将历史使用记录中记录的该优选域名的最近一次被切换的时间,更新为目标域名被选择的时刻,将该选择出的备用域名的使用次数增加1。
步骤403,按照历史使用记录中记录的备用域名的使用次数,从域名列表中,选择使用次数最少的备用域名,作为目标域名;或者,按照历史使用记录中记录的备用域名的最近一次被切换的时间,计算备用域名的持续未被使用时长,从域名列表中选择持续未被使用时长超过设定时长的备用域名,作为目标域名。
在将该选择出的备用域名作为目标域名时,更新域名列表中该选择出的备用域名和当前域名的历史使用记录。即,将历史使用记录中记录的该优选域名的最近一次被切换的时间,更新为目标域名被选择的时刻,将该选择出的备用域名的使用次数增加1。
本申请实施例中,在终端上运行应用程序的过程中,按照该应用程序当前使用的后端服务器的域名,对该后端服务器进行心跳包检测,以能够及时发现当前使用的后端服务器的域名是否故障,并在心跳包检测失败时,从域名列表中存储的至少一个备用域名中选择目标域名,采用选择的目标域名替换当前使用的后端服务器的域名,使得在发现当前使用的后端服务器的域名故障时,能够及时更换新的后端服务器的域名,整个过程中不需要重新启动应用程序,并且,也不需要以应用程序与后端服务器交互应用数据失败为条件,使得能够在用户无感知的情况下,完成域名切换。
基于以上构思,提供了一种域名切换的实施过程示例,参照图5所示,域名切换方法的具体过程如下:
步骤501,终端获取自身的网络协议地址,该终端上运行应用程序;
步骤502,终端向运行的应用程序的后端服务器发送携带该终端自身的网络协议地址的域名列表请求;
步骤503,应用程序的后端服务器,根据终端的网络协议地址,生成域名列表,该域名列表中包括至少一个能够被终端访问的备用域名,并将心跳包发送间隔以及超时阈值返回给终端,其中域名列表中包括一个备用域名为带有优选标记的优选域名,该优选域名为距离终端网络协议地址最近的后端服务器的网络协议地址对应的域名;
步骤504,终端获取本地配置的该应用程序的默认域名,将该默认域名作为当前域名,即作为该应用程序当前使用的后端服务器的域名;
步骤505,终端根据当前域名,以心跳包发送间隔为周期,向后端服务器发送心跳包请求;
步骤506,终端判断是否在超时阈值限定的时间范围内收到后端服务器返回的心跳包响应,若是,返回执行步骤505,否则,执行步骤507;
步骤507,终端确定心跳包检测失败,判断当前域名是否为最优域名,若是,执行步骤508,否则,执行步骤511;
步骤508,终端判断域名列表中除最优域名之外的备选域名中,是否存在未被使用过的备用域名,若存在,执行步骤509,否则,执行步骤510;
步骤509,终端从未被使用过的备用域名中随机选择一个备用域名,作为目标域名,并更新历史使用记录中当前域名的最近一次被切换的时间,以及更新历史使用记录中目标域名的使用次数;采用目标域名替换当前域名后,返回执行步骤505;
步骤510,终端根据历史使用记录中记录的域名列表中各备用域名的最近一次被切换的时间,确定各备用域名连续未被使用的时长,将连续未被使用的时长超过设定时长的备用域名,作为有效域名,从有效域名中选择使用次数最少的域名作为目标域名,并更新历史使用记录中当前域名的最近一次被切换的时间,以及更新历史使用记录中目标域名的使用次数,采用目标域名替换当前域名后,返回执行步骤505;
步骤511,终端根据历史使用记录中记录的最优域名最近一次被切换的时间,判断最优域名连续未被使用的时长是否超过2小时,若是,执行步骤512,否则,执行步骤513;
步骤512,终端将该最优域名作为目标域名,并更新历史使用记录中最优域名的使用次数,以及更新历史使用记录中当前域名,采用目标域名替换当前域名后,返回执行步骤505;
步骤513,终端根据历史使用记录中记录的域名列表中各备用域名的使用次数,选择使用次数最少的备用域名,作为目标域名,并更新历史使用记录中当前域名的最近一次被切换的时间,以及更新历史使用记录中目标域名的使用次数,采用目标域名替换当前域名后,返回执行步骤505。
该具体实施例中,后端服务器在为终端配置域名列表的同时,配置心跳包检测所需的参数,即心跳包发送间隔以及超时阈值,从而通过一次配置过程即可完成域名切换整个过程所需的参数。
终端在采用当前域名进行心跳包检测失败后,优先判断优先域名是否可用,在可用的情况下,优先选择优选域名,从而能够最大程度提高域名切换后当前域名的可用概率。
并且,在优选域名不可用的情况下,优先优选使用次数少的备用域名,替换当前域名,保证切换后当前域名的稳定性较高。
通过检测域名列表中各备用域名是否能够作为目标域名,这一轮询方式,使得即使一次切换后的域名不可用,仍可以通过轮询获得新的域名进行切换,提高了容灾能力。
基于同一构思,本申请实施例中提供了一种域名切换装置,该装置的具体实施可参见方法实施例部分的描述,重复之处不再赘述,参照图6所示,该装置主要包括:
获取模块601,用于获取应用程序当前使用的后端服务器的域名,作为当前域名,所述应用程序运行在所述终端上;
检测模块602,用于按照所述当前域名对所述后端服务器进行心跳包检测;
切换模块603,用于当所述心跳包检测失败时,从域名列表中选择一个备用域名作为目标域名,采用所述目标域名替换所述当前域名,所述目标域名与所述当前域名不相同;
其中,所述域名列表为根据所述终端的网络协议地址预先从所述后台服务器获得,所述域名列表中包括至少一个所述备用域名。
本申请实施例提供的该装置,在终端上运行应用程序的过程中,检测模块按照该应用程序当前使用的后端服务器的域名,对该后端服务器进行心跳包检测,以能够及时发现当前使用的后端服务器的域名是否故障,并在心跳包检测失败时,切换模块从域名列表中存储的至少一个备用域名中选择目标域名,采用选择的目标域名替换当前使用的后端服务器的域名,使得在发现当前使用的后端服务器的域名故障时,能够及时更换新的后端服务器的域名,整个过程中不需要重新启动应用程序,并且,也不需要以应用程序与后端服务器交互应用数据失败为条件,使得能够在用户无感知的情况下,完成域名切换。
基于同一构思,本申请实施例中还提供了一种电子设备,参照图7所示,该电子设备主要包括:处理器701、通信接口702、存储器703和通信总线704,其中,处理器701、通信接口702和存储器703通过通信总线704完成相互间的通信。其中,存储器703中存储有可被至处理器701执行的程序,处理器701执行存储器703中存储的程序,实现如上述实施例描述的域名切换方法的步骤。
上述电子设备中提到的通信总线704可以是外设部件互连标准(PeripheralComponent Interconnect,简称PCI)总线或扩展工业标准结构(Extended IndustryStandard Architecture,简称EISA)总线等。该通信总线704可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口702用于上述电子设备与其他设备之间的通信。
存储器703可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器701的存储装置。
上述的处理器701可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等,还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当该计算机程序在计算机上运行时,使得计算机执行上述实施例中所描述的域名切换方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。该计算机可以时通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、微波等)方式向另外一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带等)、光介质(例如DVD)或者半导体介质(例如固态硬盘)等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。

Claims (11)

1.一种域名切换方法,其特征在于,应用于终端,包括:
获取应用程序当前使用的后端服务器的域名,作为当前域名,所述应用程序运行在所述终端上;
按照所述当前域名对所述后端服务器进行心跳包检测;
当所述心跳包检测失败时,从域名列表中选择一个备用域名作为目标域名,采用所述目标域名替换所述当前域名,所述目标域名与所述当前域名不相同;
其中,所述域名列表为预先从所述后端服务器获得,所述域名列表中包括至少一个所述备用域名;
所述从域名列表中选择一个备用域名作为目标域名,包括:
根据所述域名列表中各备用域名的历史使用记录,从所述域名列表中选择一个所述备用域名作为所述目标域名,所述目标域名的持续未被使用时长超过设定时长,或者,在所述域名列表中所述目标域名的使用次数最少;
其中,所述历史使用记录中记录有所述域名列表中各备用域名的使用次数,和/或,最近一次被切换的时间。
2.根据权利要求1所述的域名切换方法,其特征在于,所述根据所述域名列表中各备用域名的历史使用记录,从所述域名列表中选择一个所述备用域名作为目标域名,包括:
根据所述历史使用记录中记录的所述备用域名的使用次数,判断所述域名列表中是否存在使用次数为零的备用域名;
若存在,从所述使用次数为零的备用域名中,选择一个所述备用域名作为所述目标域名;
若不存在,按照所述历史使用记录中记录的所述备用域名的使用次数,从所述域名列表中,选择使用次数最少的备用域名,作为所述目标域名;或者,按照所述历史使用记录中记录的所述备用域名的最近一次被切换的时间,计算所述备用域名的持续未被使用时长,从所述域名列表中选择持续未被使用时长超过设定时长的备用域名,作为所述目标域名。
3.根据权利要求1所述的域名切换方法,其特征在于,所述域名列表的各备用域名中包括一个对应优选标记的优选域名;
所述根据所述域名列表中各备用域名的历史使用记录,从所述域名列表中选择一个所述备用域名作为所述目标域名,包括:
若所述当前域名不是优选域名,且根据所述历史使用记录中记录的所述域名列表中各备用域名的使用次数或最近一次被切换的时间,确定所述优选域名满足预设条件,将所述优选域名作为所述目标域名;其中,所述预设条件包括:使用次数为零,或者,持续未被使用时长超过设定时长;
若所述当前域名是优选域名,按照所述历史使用记录中记录的、所述域名列表中除所述优选域名之外的备用域名的使用次数,从所述域名列表中除所述优选域名之外的备选域名中,选择使用次数最少的备用域名,作为所述目标域名;或者,按照所述历史使用记录中记录的、所述域名列表中除所述优选域名之外的备用域名的最近一次被使用的时间,选择持续未被使用时长超过设定时长的备用域名,作为所述目标域名。
4.根据权利要求1所述的域名切换方法,其特征在于,所述按照所述当前域名对所述后端服务器进行心跳包检测之前,还包括:
获取所述终端的网络协议地址;
向所述后端服务器发送携带所述终端的网络协议地址的域名列表请求,并接收所述后端服务器根据所述域名列表请求返回的域名列表响应;
获取所述域名列表响应中携带的所述域名列表。
5.根据权利要求4所述的域名切换方法,其特征在于,所述域名列表响应中还携带所述心跳包检测所需的心跳包发送间隔、以及用于判断心跳包响应超时的超时阈值;
按照所述当前域名对所述后端服务器进行心跳包检测,包括:
以所述心跳包发送间隔为周期,按照所述当前域名向所述后端服务器发送心跳包请求,在每次发送心跳包请求后,若在所述超时阈值限定的时长内,接收到所述后端服务器返回的心跳包响应,则心跳包检测成功;
若未在所述超时阈值限定的时长内,接收到所述后端服务器返回的心跳包响应,则心跳包检测失败。
6.一种域名切换系统,其特征在于,包括终端和应用程序的后端服务器,所述应用程序运行在所述终端上;
所述后端服务器,用于向所述终端提供域名列表;
所述终端,用于获取所述应用程序当前使用的所述后端服务器的域名,作为当前域名;按照所述当前域名对所述后端服务器进行心跳包检测;当所述心跳包检测失败时,从所述域名列表中选择一个备用域名作为目标域名,采用所述目标域名替换所述当前域名,所述目标域名与所述当前域名不相同;其中,所述域名列表为预先从所述后端服务器获得,所述域名列表中包括至少一个所述备用域名;
所述终端,用于根据所述域名列表中各备用域名的历史使用记录,从所述域名列表中选择一个所述备用域名作为所述目标域名,所述目标域名的持续未被使用时长超过设定时长,或者,在所述域名列表中所述目标域名的使用次数最少;其中,所述历史使用记录中记录有所述域名列表中各备用域名的使用次数,和/或,最近一次被切换的时间。
7.根据权利要求6所述的域名切换系统,其特征在于,所述后端服务器用于:
接收终端发送的域名列表请求,所述域名列表请求中携带所述终端的网络协议地址;
获取所述终端的网络协议地址对应的所述域名列表,所述域名列表中包括至少一个备用域名;
生成携带所述域名列表的域名列表响应;
向所述终端返回所述域名列表响应。
8.根据权利要求7所述的域名切换系统,其特征在于,所述域名列表响应中还携带心跳包检测所需的心跳包发送间隔、以及用于判断心跳包响应超时的超时阈值。
9.一种域名切换装置,其特征在于,应用于终端,所述装置包括:
获取模块,用于获取应用程序当前使用的后端服务器的域名,作为当前域名,所述应用程序运行在所述终端上;
检测模块,用于按照所述当前域名对所述后端服务器进行心跳包检测;
切换模块,用于当所述心跳包检测失败时,从域名列表中选择一个备用域名作为目标域名,采用所述目标域名替换所述当前域名,所述目标域名与所述当前域名不相同;
其中,所述域名列表为根据所述终端的网络协议地址预先从所述后端 服务器获得,所述域名列表中包括至少一个所述备用域名;
所述切换模块用于:根据所述域名列表中各备用域名的历史使用记录,从所述域名列表中选择一个所述备用域名作为所述目标域名,所述目标域名的持续未被使用时长超过设定时长,或者,在所述域名列表中所述目标域名的使用次数最少;其中,所述历史使用记录中记录有所述域名列表中各备用域名的使用次数,和/或,最近一次被切换的时间。
10.一种电子设备,其特征在于,包括:处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述存储器中所存储的程序,实现如权利要求1-5任一所述的域名切换方法。
11.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-5任一所述的域名切换方法。
CN202110480551.2A 2021-04-30 2021-04-30 域名切换方法、系统、装置、设备及存储介质 Active CN113141412B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110480551.2A CN113141412B (zh) 2021-04-30 2021-04-30 域名切换方法、系统、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110480551.2A CN113141412B (zh) 2021-04-30 2021-04-30 域名切换方法、系统、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN113141412A CN113141412A (zh) 2021-07-20
CN113141412B true CN113141412B (zh) 2022-09-30

Family

ID=76816538

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110480551.2A Active CN113141412B (zh) 2021-04-30 2021-04-30 域名切换方法、系统、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN113141412B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114465983B (zh) * 2022-01-25 2024-04-05 百融云创科技股份有限公司 一种基于多域名的api调用自动切换方法及系统
CN115333927B (zh) * 2022-07-29 2023-10-27 上海浦东发展银行股份有限公司 一种客户端域名切换方法、装置、电子设备和存储介质
CN116032886B (zh) * 2023-01-09 2024-07-16 中国银联股份有限公司 数据中心及域名的切换方法、装置、设备及介质
CN116684382B (zh) * 2023-07-28 2023-10-20 深圳市豪斯莱科技有限公司 域名检测、自动化申请域名证书方法、系统和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108599996A (zh) * 2018-04-03 2018-09-28 武汉斗鱼网络科技有限公司 数据库集群的故障处理方法、装置及终端
CN110086895A (zh) * 2019-04-11 2019-08-02 天津字节跳动科技有限公司 域名解析方法、装置、介质和电子设备
CN111405077A (zh) * 2020-03-05 2020-07-10 深圳前海百递网络有限公司 域名切换方法、装置、计算机可读存储介质和计算机设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106657431B (zh) * 2016-11-17 2019-11-19 腾讯科技(深圳)有限公司 一种业务平台地址解析的方法、服务器、终端及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108599996A (zh) * 2018-04-03 2018-09-28 武汉斗鱼网络科技有限公司 数据库集群的故障处理方法、装置及终端
CN110086895A (zh) * 2019-04-11 2019-08-02 天津字节跳动科技有限公司 域名解析方法、装置、介质和电子设备
CN111405077A (zh) * 2020-03-05 2020-07-10 深圳前海百递网络有限公司 域名切换方法、装置、计算机可读存储介质和计算机设备

Also Published As

Publication number Publication date
CN113141412A (zh) 2021-07-20

Similar Documents

Publication Publication Date Title
CN113141412B (zh) 域名切换方法、系统、装置、设备及存储介质
US11683671B2 (en) System, method, apparatus, and computer program product for providing mobile device support services
JP6668314B2 (ja) モバイル機器サポートサービスを提供するためのシステム、方法、装置、およびコンピュータプログラム製品
RU2582573C2 (ru) Способ уведомления о полосе пропускания пользователя
US6718376B1 (en) Managing recovery of service components and notification of service errors and failures
CN111459750A (zh) 基于非扁平网络的私有云监控方法、装置、计算机设备及存储介质
CN108804515B (zh) 一种网页加载方法、网页加载系统和服务器
CN110932933B (zh) 网络状况监测方法、计算设备及计算机存储介质
CN111988200A (zh) 基于真实流量的自动回归测试方法及装置
CN110417595B (zh) 业务服务容灾方法、装置、系统、管理服务器及电子设备
CN106506278B (zh) 一种服务可用性监控方法及装置
CN113568781B (zh) 一种数据库错误处理方法、装置及数据库集群访问系统
CN114443438A (zh) 节点状态的检测方法、节点异常的处理方法及装置
CN114168383A (zh) 一种应用状态监控重启工具、方法、介质及设备
CN106161413A (zh) 客户端接入方法和系统
CN114666302B (zh) 域名解析方法、系统、电子设备和存储介质
CN110868477A (zh) 任务调度方法、装置及系统
CN113055443B (zh) 一种资源数据部署方法、装置、设备和存储介质
CN110809064A (zh) 一种ip地址切换方法、装置及系统
CN115484162B (zh) 一种软件系统的组件适配方法、装置、服务端及存储介质
CN114710494B (zh) 应用管理方法、装置和存储介质
CN115633011A (zh) 基于动态域名的业务请求方法及装置
CN114020558A (zh) 告警回调方法、平台、系统、装置、设备及存储介质
CN111800497A (zh) 请求响应方法、热迁移系统及装置
CN115129699A (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