域名解析方法、装置、设备及存储介质转让专利

申请号 : CN202110734752.0

文献号 : CN113472915B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 周靖植

申请人 : 中国平安人寿保险股份有限公司

摘要 :

本申请涉及云解析技术领域,揭示了一种域名解析方法、装置、设备及存储介质,其中方法包括:通过目标域名解析类,获取目标应用服务根据目标请求提交的待解析的域名,对待解析的域名进行域名解析,得到第一域名解析结果;当第一域名解析结果为成功时根据第一域名解析结果确定目标域名数据;当第一域名解析结果为失败时,根据预设域名解析规则、域名解析服务器和本地操作系统的域名解析文件,对待解析的域名进行域名解析,得到第二域名解析结果;当第二域名解析结果为成功时,根据第二域名解析结果确定目标域名数据,否则,根据待解析的域名生成域名解析失败信号。从而使基础云的域名解析跟基础云设施解耦合,缩短了域名解析的修改流程。

权利要求 :

1.一种域名解析方法,其特征在于,所述方法包括:

通过目标域名解析类,获取目标应用服务根据目标请求提交的待解析的域名;

通过所述目标域名解析类,对所述待解析的域名进行域名解析,得到第一域名解析结果;

当所述第一域名解析结果为成功时,根据所述第一域名解析结果确定目标域名数据;

当所述第一域名解析结果为失败时,获取预设域名解析规则;

根据所述预设域名解析规则、域名解析服务器和本地操作系统的域名解析文件,对所述待解析的域名进行域名解析,得到第二域名解析结果;

当所述第二域名解析结果为成功时,根据所述第二域名解析结果确定所述目标域名数据,否则,根据所述待解析的域名生成域名解析失败信号;

所述通过目标域名解析类,获取目标应用服务根据目标请求提交的待解析的域名的步骤之前,还包括:获取域名配置请求;

响应所述域名配置请求,获取待更新的域名解析列表;

根据所述待更新的域名解析列表更新所述目标域名解析类的目标Sprint配置文件;

通过所述目标域名解析类,从所述目标Sprint配置文件中获取所述待更新的域名解析列表,将获取的所述待更新的域名解析列表写入Java虚拟机的缓存中,生成第一缓存完成信号;

通过SpringBoot的服务启动类,根据所述第一缓存完成信号对所述目标应用服务进行重启;

所述获取域名配置请求的步骤之前,还包括:

获取域名解析类生成请求;

响应所述域名解析类生成请求,采用工程创建工具创建工程,得到待配置的域名解析类;

获取待添加的工程配置文件和待添加的Sprint配置文件,其中,所述待添加的工程配置文件包括:SpringBoot的依赖配置数据、域名缓存操作工具的依赖配置数据,所述待添加的Sprint配置文件包括:打开JVM虚拟域名配置数据和待添加的域名解析列表;

根据所述待添加的工程配置文件和所述待添加的Sprint配置文件,对所述待配置的域名解析类进行配置,得到所述目标域名解析类;

通过所述目标域名解析类,将所述目标域名解析类中的域名解析列表写入Java虚拟机的缓存中,生成第二缓存完成信号;

通过所述SpringBoot的服务启动类,根据所述第二缓存完成信号对所述目标应用服务进行重启;

所述根据所述待添加的工程配置文件和所述待添加的Sprint配置文件,对所述待配置的域名解析类进行配置,得到所述目标域名解析类的步骤,包括:根据所述待添加的工程配置文件更新所述待配置的域名解析类的工程配置文件;

根据所述待添加的Sprint配置文件更新所述待配置的域名解析类的Sprint配置文件;

将所述待配置的域名解析类作为所述目标域名解析类。

2.根据权利要求1所述的域名解析方法,其特征在于,所述通过所述目标域名解析类,对所述待解析的域名进行域名解析,得到第一域名解析结果的步骤,包括:通过所述目标域名解析类,在Java虚拟机中,将所述待解析的域名在所述Java虚拟机的缓存中进行查找,当在所述Java虚拟机的缓存中查找到域名时,确定所述第一域名解析结果为成功,否则,确定所述第一域名解析结果为失败。

3.根据权利要求1所述的域名解析方法,其特征在于,所述根据所述预设域名解析规则、域名解析服务器和本地操作系统的域名解析文件,对所述待解析的域名进行域名解析,得到第二域名解析结果的步骤,包括:当所述预设域名解析规则为依次采用所述域名解析服务器及所述本地操作系统的域名解析文件进行域名解析时,采用所述域名解析服务器,对所述待解析的域名进行域名解析,得到待处理的域名解析结果;

当所述待处理的域名解析结果为成功时,确定所述第二域名解析结果为成功;

当所述待处理的域名解析结果为失败时,采用所述本地操作系统的域名解析文件,对所述待解析的域名进行域名解析,得到所述第二域名解析结果。

4.根据权利要求1所述的域名解析方法,其特征在于,所述根据所述预设域名解析规则、域名解析服务器和本地操作系统的域名解析文件,对所述待解析的域名进行域名解析,得到第二域名解析结果的步骤,还包括:当所述预设域名解析规则为依次采用所述本地操作系统的域名解析文件及所述域名解析服务器进行域名解析时,采用所述本地操作系统的域名解析文件,对所述待解析的域名进行域名解析,得到待分析的域名解析结果;

当所述待分析的域名解析结果为成功时,确定所述第二域名解析结果为成功;

当所述待分析的域名解析结果为失败时,采用所述域名解析服务器,对所述待解析的域名进行域名解析,得到所述第二域名解析结果。

5.一种域名解析装置,其特征在于,所述装置包括:

待解析的域名获取模块,用于通过目标域名解析类,获取目标应用服务根据目标请求提交的待解析的域名;

第一域名解析结果确定模块,用于通过所述目标域名解析类,对所述待解析的域名进行域名解析,得到第一域名解析结果;

第一目标域名数据确定模块,用于当所述第一域名解析结果为成功时,根据所述第一域名解析结果确定目标域名数据;

预设域名解析规则确定模块,用于当所述第一域名解析结果为失败时,获取预设域名解析规则;

第二域名解析结果确定模块,用于根据所述预设域名解析规则、域名解析服务器和本地操作系统的域名解析文件,对所述待解析的域名进行域名解析,得到第二域名解析结果;

第二目标域名数据确定模块,用于当所述第二域名解析结果为成功时,根据所述第二域名解析结果确定所述目标域名数据,否则,根据所述待解析的域名生成域名解析失败信号;

所述通过目标域名解析类,获取目标应用服务根据目标请求提交的待解析的域名的步骤之前,还包括:获取域名配置请求;

响应所述域名配置请求,获取待更新的域名解析列表;

根据所述待更新的域名解析列表更新所述目标域名解析类的目标Sprint配置文件;

通过所述目标域名解析类,从所述目标Sprint配置文件中获取所述待更新的域名解析列表,将获取的所述待更新的域名解析列表写入Java虚拟机的缓存中,生成第一缓存完成信号;

通过SpringBoot的服务启动类,根据所述第一缓存完成信号对所述目标应用服务进行重启;

所述获取域名配置请求的步骤之前,还包括:

获取域名解析类生成请求;

响应所述域名解析类生成请求,采用工程创建工具创建工程,得到待配置的域名解析类;

获取待添加的工程配置文件和待添加的Sprint配置文件,其中,所述待添加的工程配置文件包括:SpringBoot的依赖配置数据、域名缓存操作工具的依赖配置数据,所述待添加的Sprint配置文件包括:打开JVM虚拟域名配置数据和待添加的域名解析列表;

根据所述待添加的工程配置文件和所述待添加的Sprint配置文件,对所述待配置的域名解析类进行配置,得到所述目标域名解析类;

通过所述目标域名解析类,将所述目标域名解析类中的域名解析列表写入Java虚拟机的缓存中,生成第二缓存完成信号;

通过所述SpringBoot的服务启动类,根据所述第二缓存完成信号对所述目标应用服务进行重启;

所述根据所述待添加的工程配置文件和所述待添加的Sprint配置文件,对所述待配置的域名解析类进行配置,得到所述目标域名解析类的步骤,包括:根据所述待添加的工程配置文件更新所述待配置的域名解析类的工程配置文件;

根据所述待添加的Sprint配置文件更新所述待配置的域名解析类的Sprint配置文件;

将所述待配置的域名解析类作为所述目标域名解析类。

6.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述方法的步骤。

7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。

说明书 :

域名解析方法、装置、设备及存储介质

技术领域

[0001] 本申请涉及到云解析技术领域,特别是涉及到一种域名解析方法、装置、设备及存储介质。

背景技术

[0002] 客户应用服务是用于接受HTTP(超文本传输协议)报文、查询HBase(分布式的、面向列的开源数据库)表、返回对应的客户画像和客户标签的Java(面向对象编程语言)模块。客户应用服务基于Spring(开放源代码的J2EE应用程序框架)框架搭建接口微服务,在数据访问层使用HBaseClient(HBase提供的一套比较底层的API)组件跟HBaseServer(HBase的服务)集群通信,而且采用的KV(Key‑Value)数据库是基于Hadoop(由Apache基金会所开发的分布式系统基础架构)体系的HBase。因客户应用服务对应的Java模块部署在容器云中,需要配置基础云的Host(IP地址和域名的对应关系的系统文件)域名解析,而基础云的域名解析需要运维人员修改Host表或域名服务器,从而使基础云的域名解析跟基础云设施耦合较大,导致域名解析修改流程较长,影响了应用服务的上线速度。而且HBaseServer节点在扩容时,仍然需要配置基础云的Host域名解析,从而进一步影响了应用服务的上线速度。

发明内容

[0003] 本申请的主要目的为提供一种域名解析方法、装置、设备及存储介质,旨在解决现有技术中的基于容器云部署应用服务的情况下,基础云的域名解析跟基础云设施耦合较大,修改域名解析需要运维人员修改Host表或域名服务器,导致域名解析修改流程较长,影响了应用服务的上线速度的技术问题。
[0004] 为了实现上述发明目的,本申请提出一种域名解析方法,所述方法包括:
[0005] 通过目标域名解析类,获取目标应用服务根据目标请求提交的待解析的域名;
[0006] 通过所述目标域名解析类,对所述待解析的域名进行域名解析,得到第一域名解析结果;
[0007] 当所述第一域名解析结果为成功时,根据所述第一域名解析结果确定目标域名数据;
[0008] 当所述第一域名解析结果为失败时,获取预设域名解析规则;
[0009] 根据所述预设域名解析规则、域名解析服务器和本地操作系统的域名解析文件,对所述待解析的域名进行域名解析,得到第二域名解析结果;
[0010] 当所述第二域名解析结果为成功时,根据所述第二域名解析结果确定所述目标域名数据,否则,根据所述待解析的域名生成域名解析失败信号。
[0011] 进一步的,所述通过目标域名解析类,获取目标应用服务根据目标请求提交的待解析的域名的步骤之前,还包括:
[0012] 获取域名配置请求;
[0013] 响应所述域名配置请求,获取待更新的域名解析列表;
[0014] 根据所述待更新的域名解析列表更新所述目标域名解析类的目标Sprint配置文件;
[0015] 通过所述目标域名解析类,从所述目标Sprint配置文件中获取所述待更新的域名解析列表,将获取的所述待更新的域名解析列表写入Java虚拟机的缓存中,生成第一缓存完成信号;
[0016] 通过SpringBoot的服务启动类,根据所述第一缓存完成信号对所述目标应用服务进行重启。
[0017] 进一步的,所述获取域名配置请求的步骤之前,还包括:
[0018] 获取域名解析类生成请求;
[0019] 响应所述域名解析类生成请求,采用工程创建工具创建工程,得到待配置的域名解析类;
[0020] 获取待添加的工程配置文件和待添加的Sprint配置文件,其中,所述待添加的工程配置文件包括:SpringBoot的依赖配置数据、域名缓存操作工具的依赖配置数据,所述待添加的Sprint配置文件包括:打开JVM虚拟域名配置数据和待添加的域名解析列表;
[0021] 根据所述待添加的工程配置文件和所述待添加的Sprint配置文件,对所述待配置的域名解析类进行配置,得到所述目标域名解析类;
[0022] 通过所述目标域名解析类,将所述目标域名解析类中的域名解析列表写入Java虚拟机的缓存中,生成第二缓存完成信号;
[0023] 通过所述SpringBoot的服务启动类,根据所述第二缓存完成信号对所述目标应用服务进行重启。
[0024] 进一步的,所述根据所述待添加的工程配置文件和所述待添加的Sprint配置文件,对所述待配置的域名解析类进行配置,得到所述目标域名解析类的步骤,包括:
[0025] 根据所述待添加的工程配置文件更新所述待配置的域名解析类的工程配置文件;
[0026] 根据所述待添加的Sprint配置文件更新所述待配置的域名解析类的Sprint配置文件;
[0027] 将所述待配置的域名解析类作为所述目标域名解析类。
[0028] 进一步的,所述通过所述目标域名解析类,对所述待解析的域名进行域名解析,得到第一域名解析结果的步骤,包括:
[0029] 通过所述目标域名解析类,在Java虚拟机中,将所述待解析的域名在所述Java虚拟机的缓存中进行查找,当在所述Java虚拟机的缓存中查找到域名时,确定所述第一域名解析结果为成功,否则,确定所述第一域名解析结果为失败。
[0030] 进一步的,所述根据所述预设域名解析规则、域名解析服务器和本地操作系统的域名解析文件,对所述待解析的域名进行域名解析,得到第二域名解析结果的步骤,包括:
[0031] 当所述预设域名解析规则为依次采用所述域名解析服务器及所述本地操作系统的域名解析文件进行域名解析时,采用所述域名解析服务器,对所述待解析的域名进行域名解析,得到待处理的域名解析结果;
[0032] 当所述待处理的域名解析结果为成功时,确定所述第二域名解析结果为成功;
[0033] 当所述待处理的域名解析结果为失败时,采用所述本地操作系统的域名解析文件,对所述待解析的域名进行域名解析,得到所述第二域名解析结果。
[0034] 进一步的,所述根据所述预设域名解析规则、域名解析服务器和本地操作系统的域名解析文件,对所述待解析的域名进行域名解析,得到第二域名解析结果的步骤,还包括:
[0035] 当所述预设域名解析规则为依次采用所述本地操作系统的域名解析文件及所述域名解析服务器进行域名解析时,采用所述本地操作系统的域名解析文件,对所述待解析的域名进行域名解析,得到待分析的域名解析结果;
[0036] 当所述待分析的域名解析结果为成功时,确定所述第二域名解析结果为成功;
[0037] 当所述待分析的域名解析结果为失败时,采用所述域名解析服务器,对所述待解析的域名进行域名解析,得到所述第二域名解析结果。
[0038] 本申请还提出了一种域名解析装置,所述装置包括:
[0039] 待解析的域名获取模块,用于通过目标域名解析类,获取目标应用服务根据目标请求提交的待解析的域名;
[0040] 第一域名解析结果确定模块,用于通过所述目标域名解析类,对所述待解析的域名进行域名解析,得到第一域名解析结果;
[0041] 第一目标域名数据确定模块,用于当所述第一域名解析结果为成功时,根据所述第一域名解析结果确定目标域名数据;
[0042] 预设域名解析规则确定模块,用于当所述第一域名解析结果为失败时,获取预设域名解析规则;
[0043] 第二域名解析结果确定模块,用于根据所述预设域名解析规则、域名解析服务器和本地操作系统的域名解析文件,对所述待解析的域名进行域名解析,得到第二域名解析结果;
[0044] 第二目标域名数据确定模块,用于当所述第二域名解析结果为成功时,根据所述第二域名解析结果确定所述目标域名数据,否则,根据所述待解析的域名生成域名解析失败信号。
[0045] 本申请还提出了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
[0046] 本申请还提出了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
[0047] 本申请的域名解析方法、装置、设备及存储介质,其中方法首先通过目标域名解析类,获取目标应用服务根据目标请求提交的待解析的域名,对所述待解析的域名进行域名解析,得到第一域名解析结果,当所述第一域名解析结果为成功时,根据所述第一域名解析结果确定目标域名数据,然后当所述第一域名解析结果为失败时,获取预设域名解析规则,最后根据所述预设域名解析规则、域名解析服务器和本地操作系统的域名解析文件,对所述待解析的域名进行域名解析,得到第二域名解析结果,当所述第二域名解析结果为成功时,根据所述第二域名解析结果确定所述目标域名数据,否则,根据所述待解析的域名生成域名解析失败信号,实现了通过目标域名解析类实现了软件层面的域名解析的配置,使基础云的域名解析跟基础云设施解耦合,缩短了域名解析的修改流程,提高了应用服务的上线速度。

附图说明

[0048] 图1为本申请一实施例的域名解析方法的流程示意图;
[0049] 图2为本申请一实施例的域名解析装置的结构示意框图;
[0050] 图3为本申请一实施例的计算机设备的结构示意框图。
[0051] 本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

[0052] 为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0053] 参照图1,本申请实施例中提供一种域名解析方法,所述方法包括:
[0054] S1:通过目标域名解析类,获取目标应用服务根据目标请求提交的待解析的域名;
[0055] S2:通过所述目标域名解析类,对所述待解析的域名进行域名解析,得到第一域名解析结果;
[0056] S3:当所述第一域名解析结果为成功时,根据所述第一域名解析结果确定目标域名数据;
[0057] S4:当所述第一域名解析结果为失败时,获取预设域名解析规则;
[0058] S5:根据所述预设域名解析规则、域名解析服务器和本地操作系统的域名解析文件,对所述待解析的域名进行域名解析,得到第二域名解析结果;
[0059] S6:当所述第二域名解析结果为成功时,根据所述第二域名解析结果确定所述目标域名数据,否则,根据所述待解析的域名生成域名解析失败信号。
[0060] 本实施例首先通过目标域名解析类,获取目标应用服务根据目标请求提交的待解析的域名,对所述待解析的域名进行域名解析,得到第一域名解析结果,当所述第一域名解析结果为成功时,根据所述第一域名解析结果确定目标域名数据,然后当所述第一域名解析结果为失败时,获取预设域名解析规则,最后根据所述预设域名解析规则、域名解析服务器和本地操作系统的域名解析文件,对所述待解析的域名进行域名解析,得到第二域名解析结果,当所述第二域名解析结果为成功时,根据所述第二域名解析结果确定所述目标域名数据,否则,根据所述待解析的域名生成域名解析失败信号,实现了通过目标域名解析类实现了软件层面的域名解析的配置,使基础云的域名解析跟基础云设施解耦合,缩短了域名解析的修改流程,提高了应用服务的上线速度。
[0061] 对于S1,通过目标应用服务,接收客户端发送的所述目标请求,对所述目标请求携带的参数进行域名提取,将提取到的域名作为所述待解析的域名,将所述待解析的域名发送给所述目标域名解析类。可以理解的是,可以采用HTTP的POST请求将所述待解析的域名发送给所述目标域名解析类。
[0062] 所述目标域名解析类,是基于Spring和Java虚拟机的缓存自定义的域名解析类。
[0063] 其中,所述目标应用服务,是基于SpringBoot(Pivotal团队提供的全新框架)的Java模块。
[0064] 目标请求,是访问Hbaseserver集群获取数据的请求。
[0065] 可选的,所述目标应用服务是Java模块,基于Spring框架搭建接口微服务,在数据访问层使用HBaseClient组件跟HBaseServer集群通信,而且采用的KV数据库是基于Hadoop体系的HBase。所述目标应用服务需要使用Hbaseserver集群的域名来定位Hbaseserver集群的集群节点以及通过节点域名来访问通信。而且所述目标应用服务部署在容器云中。
[0066] 其中,所述目标应用服务用于接收HTTP报文,根据HTTP报文查询Hbaseserver集群中的Hbase表,将从Hbase表中查询到的数据返回给HTTP报文的发起端。
[0067] 客户端包括但不限于:移动设备的客户端、电脑的客户端。
[0068] 对于S2,通过所述目标域名解析类,根据Java虚拟机的缓存对所述待解析的域名进行软件层面的域名解析,当解析成功时确定所述第一域名解析结果为成功,当解析失败时确定所述第一域名解析结果为失败。
[0069] 对于S3,当所述第一域名解析结果为成功时,意味着软件层面的域名解析成功,此时可以将所述第一域名解析结果在Java虚拟机中对应的域名和IP地址作为所述目标域名数据。
[0070] 对于S4,当所述第一域名解析结果为失败时,意味着软件层面的域名解析失败,此时需要采用域名解析服务器和本地操作系统的域名解析文件进行兜底的域名解析,因此可以从数据库中获取预设域名解析规则,也可以从第三方应用系统中获取预设域名解析规则,还可以将预设域名解析规则写入实现本申请的应用程序中。
[0071] 可选的,预设域名解析规则包括:依次采用所述域名解析服务器及所述本地操作系统的域名解析文件进行域名解析。
[0072] 可选的,预设域名解析规则包括:依次采用所述本地操作系统的域名解析文件及所述域名解析服务器进行域名解析。
[0073] 域名解析服务器包括但不限于:HTTP域名解析系统。
[0074] 本地操作系统的域名解析文件,是所述目标应用服务所在服务器的操作系统的Host表,负责IP地址与域名快速解析,将解析得到的数据以ASCII格式保存。
[0075] 对于S5,采用所述预设域名解析规则,根据域名解析服务器和本地操作系统的域名解析文件,对所述待解析的域名进行域名解析,当解析成功时确定所述第二域名解析结果为成功,当解析失败时确定所述第二域名解析结果为失败。
[0076] 对于S6,当所述第二域名解析结果为成功时,意味着域名解析服务器和本地操作系统的域名解析文件其中至少一个对所述待解析的域名进行成功的域名解析,因此将成功的所述第二域名解析结果对应的域名和IP地址作为所述目标域名数据。
[0077] 当所述第二域名解析结果为失败时,意味着域名解析服务器和本地操作系统的域名解析文件都没有对所述待解析的域名进行成功的域名解析,根据所述待解析的域名生成域名解析失败信号,所述域名解析失败信号用于提醒用户域名解析失败。
[0078] 在一个实施例中,上述通过目标域名解析类,获取目标应用服务根据目标请求提交的待解析的域名的步骤之前,还包括:
[0079] S11:获取域名配置请求;
[0080] S12:响应所述域名配置请求,获取待更新的域名解析列表;
[0081] S13:根据所述待更新的域名解析列表更新所述目标域名解析类的目标Sprint配置文件;
[0082] S14:通过所述目标域名解析类,从所述目标Sprint配置文件中获取所述待更新的域名解析列表,将获取的所述待更新的域名解析列表写入Java虚拟机的缓存中,生成第一缓存完成信号;
[0083] S15:通过SpringBoot的服务启动类,根据所述第一缓存完成信号对所述目标应用服务进行重启。
[0084] 本实施例通过修改所述目标域名解析类的Sprint配置文件进行软件层面的域名解析修改,实现了通过目标域名解析类实现了软件层面的域名解析的配置,使基础云的域名解析跟基础云设施解耦合,缩短了域名解析的修改流程,提高了应用服务的上线速度。
[0085] 对于S11,获取用户输入的域名配置请求。
[0086] 域名配置请求,是进行软件层面的域名解析配置的请求。
[0087] 对于S12,响应所述域名配置请求,获取用户输入的待更新的域名解析列表。
[0088] 待更新的域名解析列表,是需要配置的域名数据的列表。
[0089] 对于S13,在所述目标域名解析类的目标Sprint配置文件中导入待更新的域名解析列表。
[0090] 对于S14,通过所述目标域名解析类,采用KV存储格式将所述目标Sprint配置文件中的所述待更新的域名解析列表写入Java虚拟机的缓存中,在完成缓存时生成第一缓存完成信号。
[0091] 也就是说,KV存储格式,是将域名存储到Key中,将IP地址存储在Value中。
[0092] Java虚拟机,也就是JVM,是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
[0093] 对于S15,通过SpringBoot的服务启动类,在收到所述第一缓存完成信号时,对所述目标应用服务进行重启。可以理解的是,所述目标应用服务重启成功才能接收接收客户端发送的所述目标请求。
[0094] SpringBoot的服务启动类,是SpringBoot中用于启动应用服务的类,具体实现方法在此不做赘述。
[0095] 在一个实施例中,上述获取域名配置请求的步骤之前,还包括:
[0096] S111:获取域名解析类生成请求;
[0097] S112:响应所述域名解析类生成请求,采用工程创建工具创建工程,得到待配置的域名解析类;
[0098] S113:获取待添加的工程配置文件和待添加的Sprint配置文件,其中,所述待添加的工程配置文件包括:SpringBoot的依赖配置数据、域名缓存操作工具的依赖配置数据,所述待添加的Sprint配置文件包括:打开JVM虚拟域名配置数据和待添加的域名解析列表;
[0099] S114:根据所述待添加的工程配置文件和所述待添加的Sprint配置文件,对所述待配置的域名解析类进行配置,得到所述目标域名解析类;
[0100] S115:通过所述目标域名解析类,将所述目标域名解析类中的域名解析列表写入Java虚拟机的缓存中,生成第二缓存完成信号;
[0101] S116:通过所述SpringBoot的服务启动类,根据所述第二缓存完成信号对所述目标应用服务进行重启。
[0102] 本实施例实现了基于Spring和Java虚拟机的缓存自定义的域名解析类,从而为实现软件层面的域名解析提供了基础。
[0103] 对于S111,获取用户输入的域名解析类生成请求。
[0104] 域名解析类生成请求,是生成域名解析类的请求。
[0105] 对于S112,响应所述域名解析类生成请求,采用工程创建工具创建Maven工程,将创建得到的Maven工程作为待配置的域名解析类。
[0106] 可以理解的是,也可以采用工程创建工具创建其他工程作为待配置的域名解析类,在此不做限定。
[0107] 可选的,工程创建工具采用Intellij IDea。可以理解的是,工程创建工具还可以采用其他工具,在此不做限定。
[0108] 待配置的域名解析类对应的工程包括三类文件:3个Java配置文件、1个Sprint配置文件、1个工程配置文件。
[0109] 对于S113,获取用户输入的待添加的工程配置文件和待添加的Sprint配置文件。
[0110] SpringBoot的依赖配置数据,是对SpringBoot进行依赖的程序。
[0111] 域名缓存操作工具的依赖配置数据,也就是对DNS‑cache‑manipulator(域名缓存)进行依赖的程序。
[0112] 打开JVM虚拟域名配置数据,是打开JVM虚拟域名的配置数据。比如,打开JVM虚拟域名配置数据为:true,在此举例不做具体限定。
[0113] 待添加的域名解析列表,是需要添加的域名解析的列表。待添加的域名解析列表包括:域名和IP地址。
[0114] 对于S114,根据所述待添加的工程配置文件和所述待添加的Sprint配置文件,对所述待配置的域名解析类进行配置,将配置后的所述待配置的域名解析类作为所述目标域名解析类。
[0115] 对于S115,通过所述目标域名解析类,采用KV存储格式,从所述目标域名解析类中的域名解析列表中读取数据然后写入Java虚拟机的缓存中,在完成缓存时生成第二缓存完成信号。
[0116] 对于S116,通过SpringBoot的服务启动类,在收到所述第二缓存完成信号时,对所述目标应用服务进行重启。
[0117] 在一个实施例中,上述根据所述待添加的工程配置文件和所述待添加的Sprint配置文件,对所述待配置的域名解析类进行配置,得到所述目标域名解析类的步骤,包括:
[0118] S1141:根据所述待添加的工程配置文件更新所述待配置的域名解析类的工程配置文件;
[0119] S1142:根据所述待添加的Sprint配置文件更新所述待配置的域名解析类的Sprint配置文件;
[0120] S1143:将所述待配置的域名解析类作为所述目标域名解析类。
[0121] 本实施例根据所述待添加的工程配置文件和所述待添加的Sprint配置文件,对所述待配置的域名解析类进行配置,从而为实现软件层面的域名解析提供了基础。
[0122] 对于S1141,将所述待添加的工程配置文件添加到所述待配置的域名解析类的工程配置文件中,通过所述待添加的工程配置文件的SpringBoot的依赖配置数据使所述待配置的域名解析类能够与目标应用服务互相通信,通过所述待添加的工程配置文件的域名缓存操作工具的依赖配置数据使所述待配置的域名解析类能够调用域名缓存操作工具。
[0123] 对于S1142,将所述待添加的Sprint配置文件添加到所述待配置的域名解析类的Sprint配置文件。
[0124] 比如,打开JVM虚拟域名配置数据为:true,待添加的域名解析列表为:www.example‑1.com:30.15.10.197,example‑2.com:30.15.10.198,根据所述待添加的Sprint配置文件更新所述待配置的域名解析类的Sprint配置文件,得到
“base.javahost.enabled=true”“base.javahost.list=www.example‑1.com:
30.15.10.197,example‑2.com:30.15.10.198”,在此举例不做具体限定。
[0125] 对于S1143,将添加了所述待添加的工程配置文件及所述待添加的Sprint配置文件的所述待配置的域名解析类作为所述目标域名解析类。
[0126] 在一个实施例中,上述通过所述目标域名解析类,对所述待解析的域名进行域名解析,得到第一域名解析结果的步骤,包括:
[0127] S21:通过所述目标域名解析类,在Java虚拟机中,将所述待解析的域名在所述Java虚拟机的缓存中进行查找,当在所述Java虚拟机的缓存中查找到域名时,确定所述第一域名解析结果为成功,否则,确定所述第一域名解析结果为失败。
[0128] 本实施例实现了通过所述目标域名解析类,采用Java虚拟机的缓存对所述待解析的域名进行软件层面的域名解析,使基础云的域名解析跟基础云设施解耦合。
[0129] 对于S21,通过执行所述目标域名解析类,在Java虚拟机中,将所述待解析的域名在所述Java虚拟机的缓存中进行查找,当在所述Java虚拟机的缓存中查找到域名时,意味着所述Java虚拟机的缓存中存储有所述待解析的域名的域名解析,因此确定所述第一域名解析结果为成功;当在所述Java虚拟机的缓存中没有查找到域名时,意味着所述Java虚拟机的缓存中存储没有所述待解析的域名的域名解析,因此确定所述第一域名解析结果为失败。
[0130] 在一个实施例中,上述根据所述预设域名解析规则、域名解析服务器和本地操作系统的域名解析文件,对所述待解析的域名进行域名解析,得到第二域名解析结果的步骤,包括:
[0131] S511:当所述预设域名解析规则为依次采用所述域名解析服务器及所述本地操作系统的域名解析文件进行域名解析时,采用所述域名解析服务器,对所述待解析的域名进行域名解析,得到待处理的域名解析结果;
[0132] S512:当所述待处理的域名解析结果为成功时,确定所述第二域名解析结果为成功;
[0133] S513:当所述待处理的域名解析结果为失败时,采用所述本地操作系统的域名解析文件,对所述待解析的域名进行域名解析,得到所述第二域名解析结果。
[0134] 本实施例采用依次采用所述域名解析服务器及所述本地操作系统的域名解析文件进行域名解析,对所述待解析的域名进行域名解析,从而实现了兜底策略,提高了域名解析的成功率。
[0135] 对于S511,当所述预设域名解析规则为依次采用所述域名解析服务器及所述本地操作系统的域名解析文件进行域名解析时,意味着先采用所述域名解析服务器,对所述待解析的域名进行域名解析,当采用所述域名解析服务器对所述待解析的域名进行成功的域名解析时确定所述待处理的域名解析结果为成功,当采用所述域名解析服务器对所述待解析的域名没有进行成功的域名解析时确定所述待处理的域名解析结果为失败。
[0136] 对于S512,当所述待处理的域名解析结果为成功时,意味着所述域名解析服务器已经对所述待解析的域名进行成功的域名解析,因此可以确定所述第二域名解析结果为成功。
[0137] 对于S513,当所述待处理的域名解析结果为失败时,意味着所述域名解析服务器没有对所述待解析的域名进行成功的域名解析,此时采用所述本地操作系统的域名解析文件,对所述待解析的域名进行域名解析;当采用所述本地操作系统的域名解析文件对所述待解析的域名进行成功的域名解析时,确定所述第二域名解析结果为成功;当采用所述本地操作系统的域名解析文件对所述待解析的域名没有进行成功的域名解析时,确定所述第二域名解析结果为失败。
[0138] 在一个实施例中,上述根据所述预设域名解析规则、域名解析服务器和本地操作系统的域名解析文件,对所述待解析的域名进行域名解析,得到第二域名解析结果的步骤,还包括:
[0139] S521:当所述预设域名解析规则为依次采用所述本地操作系统的域名解析文件及所述域名解析服务器进行域名解析时,采用所述本地操作系统的域名解析文件,对所述待解析的域名进行域名解析,得到待分析的域名解析结果;
[0140] S522:当所述待分析的域名解析结果为成功时,确定所述第二域名解析结果为成功;
[0141] S523:当所述待分析的域名解析结果为失败时,采用所述域名解析服务器,对所述待解析的域名进行域名解析,得到所述第二域名解析结果。
[0142] 本实施例采用依次采用所述本地操作系统的域名解析文件及所述域名解析服务器进行域名解析,对所述待解析的域名进行域名解析,从而实现了兜底策略,提高了域名解析的成功率。
[0143] 对于S521,当所述预设域名解析规则为依次采用所述本地操作系统的域名解析文件及所述域名解析服务器进行域名解析时,意味着先采用所述本地操作系统的域名解析文件,对所述待解析的域名进行域名解析,当采用所述本地操作系统的域名解析文件对所述待解析的域名进行成功的域名解析时确定所述待分析的域名解析结果为成功,当采用所述本地操作系统的域名解析文件对所述待解析的域名没有进行成功的域名解析时确定所述待分析的域名解析结果为失败。
[0144] 对于S522,当所述待分析的域名解析结果为成功时,意味着所述本地操作系统的域名解析文件已经对所述待解析的域名进行成功的域名解析,因此可以确定所述第二域名解析结果为成功。
[0145] 对于S523,当所述待分析的域名解析结果为失败时,意味着所述本地操作系统的域名解析文件没有对所述待解析的域名进行成功的域名解析,此时采用所述域名解析服务器,对所述待解析的域名进行域名解析;当采用所述域名解析服务器对所述待解析的域名进行成功的域名解析时,确定所述第二域名解析结果为成功;当采用所述域名解析服务器对所述待解析的域名没有进行成功的域名解析时,确定所述第二域名解析结果为失败。
[0146] 参照图2,本申请还提出了一种域名解析装置,所述装置包括:
[0147] 待解析的域名获取模块100,用于通过目标域名解析类,获取目标应用服务根据目标请求提交的待解析的域名;
[0148] 第一域名解析结果确定模块200,用于通过所述目标域名解析类,对所述待解析的域名进行域名解析,得到第一域名解析结果;
[0149] 第一目标域名数据确定模块300,用于当所述第一域名解析结果为成功时,根据所述第一域名解析结果确定目标域名数据;
[0150] 预设域名解析规则确定模块400,用于当所述第一域名解析结果为失败时,获取预设域名解析规则;
[0151] 第二域名解析结果确定模块500,用于根据所述预设域名解析规则、域名解析服务器和本地操作系统的域名解析文件,对所述待解析的域名进行域名解析,得到第二域名解析结果;
[0152] 第二目标域名数据确定模块600,用于当所述第二域名解析结果为成功时,根据所述第二域名解析结果确定所述目标域名数据,否则,根据所述待解析的域名生成域名解析失败信号。
[0153] 本实施例首先通过目标域名解析类,获取目标应用服务根据目标请求提交的待解析的域名,对所述待解析的域名进行域名解析,得到第一域名解析结果,当所述第一域名解析结果为成功时,根据所述第一域名解析结果确定目标域名数据,然后当所述第一域名解析结果为失败时,获取预设域名解析规则,最后根据所述预设域名解析规则、域名解析服务器和本地操作系统的域名解析文件,对所述待解析的域名进行域名解析,得到第二域名解析结果,当所述第二域名解析结果为成功时,根据所述第二域名解析结果确定所述目标域名数据,否则,根据所述待解析的域名生成域名解析失败信号,实现了通过目标域名解析类实现了软件层面的域名解析的配置,使基础云的域名解析跟基础云设施解耦合,缩短了域名解析的修改流程,提高了应用服务的上线速度。
[0154] 参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于储存域名解析方法等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种域名解析方法。所述域名解析方法,包括:通过目标域名解析类,获取目标应用服务根据目标请求提交的待解析的域名;通过所述目标域名解析类,对所述待解析的域名进行域名解析,得到第一域名解析结果;当所述第一域名解析结果为成功时,根据所述第一域名解析结果确定目标域名数据;当所述第一域名解析结果为失败时,获取预设域名解析规则;根据所述预设域名解析规则、域名解析服务器和本地操作系统的域名解析文件,对所述待解析的域名进行域名解析,得到第二域名解析结果;当所述第二域名解析结果为成功时,根据所述第二域名解析结果确定所述目标域名数据,否则,根据所述待解析的域名生成域名解析失败信号。
[0155] 本实施例首先通过目标域名解析类,获取目标应用服务根据目标请求提交的待解析的域名,对所述待解析的域名进行域名解析,得到第一域名解析结果,当所述第一域名解析结果为成功时,根据所述第一域名解析结果确定目标域名数据,然后当所述第一域名解析结果为失败时,获取预设域名解析规则,最后根据所述预设域名解析规则、域名解析服务器和本地操作系统的域名解析文件,对所述待解析的域名进行域名解析,得到第二域名解析结果,当所述第二域名解析结果为成功时,根据所述第二域名解析结果确定所述目标域名数据,否则,根据所述待解析的域名生成域名解析失败信号,实现了通过目标域名解析类实现了软件层面的域名解析的配置,使基础云的域名解析跟基础云设施解耦合,缩短了域名解析的修改流程,提高了应用服务的上线速度。
[0156] 本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种域名解析方法,包括步骤:通过目标域名解析类,获取目标应用服务根据目标请求提交的待解析的域名;通过所述目标域名解析类,对所述待解析的域名进行域名解析,得到第一域名解析结果;当所述第一域名解析结果为成功时,根据所述第一域名解析结果确定目标域名数据;当所述第一域名解析结果为失败时,获取预设域名解析规则;根据所述预设域名解析规则、域名解析服务器和本地操作系统的域名解析文件,对所述待解析的域名进行域名解析,得到第二域名解析结果;当所述第二域名解析结果为成功时,根据所述第二域名解析结果确定所述目标域名数据,否则,根据所述待解析的域名生成域名解析失败信号。
[0157] 上述执行的域名解析方法,首先通过目标域名解析类,获取目标应用服务根据目标请求提交的待解析的域名,对所述待解析的域名进行域名解析,得到第一域名解析结果,当所述第一域名解析结果为成功时,根据所述第一域名解析结果确定目标域名数据,然后当所述第一域名解析结果为失败时,获取预设域名解析规则,最后根据所述预设域名解析规则、域名解析服务器和本地操作系统的域名解析文件,对所述待解析的域名进行域名解析,得到第二域名解析结果,当所述第二域名解析结果为成功时,根据所述第二域名解析结果确定所述目标域名数据,否则,根据所述待解析的域名生成域名解析失败信号,实现了通过目标域名解析类实现了软件层面的域名解析的配置,使基础云的域名解析跟基础云设施解耦合,缩短了域名解析的修改流程,提高了应用服务的上线速度。
[0158] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(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)等。
[0159] 需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
[0160] 以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。