一种域名修改的方法、系统、电子设备及存储介质技术方案

技术编号:38543405 阅读:15 留言:0更新日期:2023-08-22 20:54
本申请公开了一种域名修改的方法、系统、电子设备及存储介质,所述方法应用于任务中心,包括:接收域名修改任务对应的至少一个代理端发送的状态变更任务,并将状态变更任务存入任务队列中,状态变更任务为代理端将基于域名修改任务生成的配置文件在所属域名服务器中进行生效后发送的、与域名修改任务对应的任务;从任务队列中读取状态变更任务并执行相应的任务处理,任务处理包括基于代理端的生效结果在第一数据库中写入对应的域名修改任务的代理端状态,以及,基于对应的域名修改任务的所有代理端状态在第一数据库中变更域名修改任务的任务状态。本申请支持分布式部署,实现了对域名修改的批量、并发生效和对域名状态的变更。变更。变更。

【技术实现步骤摘要】
一种域名修改的方法、系统、电子设备及存储介质


[0001]本申请涉及域名系统领域,尤其涉及一种域名修改的方法、系统、电子设备及计算机可读存储介质。

技术介绍

[0002]域名系统(Domain Name System,DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。域名是由一串用点分隔的名字组成的互联网上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识。现有技术中域名修改的过程为:用户通过前端或应用程序编程接口将域名修改信息保存到数据库中,background_task.php脚本定时扫描数据库里需要处理的任务,然后调用dns_export.php脚本进行检查并导出配置文件,最后调用web_dnsreload.php脚本将配置文件推送到域名服务器上。
[0003]然而,这种域名修改方法不支持分布式部署,域名修改无法批量、并发生效,也无法实现域名状态的变更,用户无法知晓域名是否修改成功,影响用户体验。

技术实现思路

[0004]本申请的目的是提供一种域名修改的方法及系统,能够解决域名修改无法批量、并发生效,也无法实现域名状态的变更的问题。
[0005]为解决上述技术问题,第一方面,本申请提供了一种域名修改的方法,应用于任务中心,所述方法包括:
[0006]接收域名修改任务对应的至少一个代理端发送的状态变更任务,并将状态变更任务存入任务队列中;其中,分布式部署的各个域名服务器中分别设置有代理端,状态变更任务为代理端将基于域名修改任务生成的配置文件在所属域名服务器中进行生效后发送的、与所述域名修改任务对应的任务;
[0007]从任务队列中读取状态变更任务并执行相应的任务处理;其中,所述任务处理包括:基于所述状态变更任务中代理端的生效结果在第一数据库中写入对应的域名修改任务的代理端状态,以及,基于对应的域名修改任务的所有代理端状态在第一数据库中变更所述域名修改任务的任务状态。
[0008]可选的,所述在接收域名修改任务对应的至少一个代理端发送的状态变更任务之前,所述方法还包括:
[0009]设置在各个域名服务器的代理端监听第二数据库中的域名修改任务,域名修改任务通过前端或应用程序编程接口写入第一数据库和第二数据库;
[0010]代理端在监听到新的域名修改任务后,基于所述域名修改任务生成对应的配置文件,将所述配置文件在所属域名服务器中进行生效;
[0011]代理端基于所述配置文件在所属域名服务器中的生效结果,生成与所述域名修改任务对应的状态变更任务,并将所述状态变更任务发送至任务中心;其中,生效结果包括生
效成功或生效失败,生成的状态变更任务与对应的域名修改任务的任务标识信息一致。
[0012]可选的,所述从任务队列中读取状态变更任务并执行相应的任务处理,包括:
[0013]遍历任务队列,从任务队列中依次读取每一个状态变更任务;
[0014]针对当前读取的状态变更任务,调用任务处理器执行相应的任务处理;
[0015]在所述状态变更任务执行成功的情况下,将所述状态变更任务从任务队列中移除;
[0016]在所述状态变更任务执行失败的情况下,将所述状态变更任务放入任务重试队列中,以再次执行相应的任务处理。
[0017]可选的,所述将所述状态变更任务放入任务重试队列中,以再次执行相应的任务处理,包括:
[0018]遍历任务重试队列,从任务重试队列中依次读取每一个状态变更任务;
[0019]针对当前读取的状态变更任务,调用任务处理器执行相应的任务处理;
[0020]在所述状态变更任务执行成功的情况下,将所述状态变更任务从任务重试队列中移除;
[0021]在所述状态变更任务执行失败的情况下,将所述状态变更任务重新放入任务重试队列中,直至执行成功,将所述状态变更任务从任务重试队列中移除。
[0022]可选的,所述第一数据库为关系型数据库,所述第二数据库为etcd数据库;
[0023]所述调用任务处理器执行相应的任务处理,包括:
[0024]任务处理器创建etcd客户端,并利用创建的etcd客户端对当前读取的状态变更任务进行加锁;
[0025]根据所述状态变更任务的任务标识信息、以及代理端的生效结果,在第一数据库中写入对应的域名修改任务的代理端状态;
[0026]判断与所述任务标识信息一致的所有状态变更任务是否全部完成写入代理端状态;
[0027]如果否,直接执行利用etcd客户端对所述状态变更任务进行解锁的步骤;如果是,根据所述域名修改任务的所有代理端状态在第一数据库中变更所述域名修改任务的任务状态,再执行利用etcd客户端对所述状态变更任务进行解锁的步骤。
[0028]可选的,所述根据所述域名修改任务的所有代理端状态在第一数据库中变更所述域名修改任务的任务状态,包括:
[0029]获取所述任务标识信息对应的域名修改任务的所有代理端状态;
[0030]判断所有代理端状态是否全部为生效成功状态;
[0031]若是,将所述域名修改任务的任务状态变更为成功状态;
[0032]若否,将所述域名修改任务的任务状态变更为失败状态。
[0033]第二方面,本申请还提供一种域名修改的系统,包括:
[0034]设置在分布式部署的各个域名服务器中的代理端,用于基于域名修改任务生成对应的配置文件,将配置文件在所属域名服务器中进行生效后向任务中心发送与所述域名修改任务对应的状态变更任务;
[0035]任务中心,用于接收域名修改任务对应的至少一个代理端发送的状态变更任务,并将状态变更任务存入任务队列中;从任务队列中读取状态变更任务并执行相应的任务处
理;其中,所述任务处理包括:基于所述状态变更任务中代理端的生效结果在第一数据库中写入对应的域名修改任务的代理端状态,以及,基于对应的域名修改任务的所有代理端状态在第一数据库中变更所述域名修改任务的任务状态;
[0036]第一数据库,用于存储域名修改任务、以及所述域名修改任务的任务状态和各代理端状态。
[0037]可选的,所述系统还包括第二数据库,域名修改任务通过前端或应用程序编程接口写入第一数据库和第二数据库,其中:
[0038]所述代理端,具体用于监听第二数据库中的域名修改任务,在监听到新的域名修改任务后,基于所述域名修改任务生成对应的配置文件,将所述配置文件在所属域名服务器中进行生效;基于所述配置文件在所属域名服务器中的生效结果,生成与所述域名修改任务对应的状态变更任务,并将所述状态变更任务发送至任务中心;其中,生效结果包括生效成功或生效失败,生成的状态变更任务与对应的域名修改任务的任务标识信息一致。
[0039]第三方面,本申请还提供一种电子设备,包括:
[0040]处理器;
[0041]用于存储所述处理器可执行指令的存储器;
[004本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种域名修改的方法,其特征在于,应用于任务中心,所述方法包括:接收域名修改任务对应的至少一个代理端发送的状态变更任务,并将状态变更任务存入任务队列中;其中,分布式部署的各个域名服务器中分别设置有代理端,状态变更任务为代理端将基于域名修改任务生成的配置文件在所属域名服务器中进行生效后发送的、与所述域名修改任务对应的任务;从任务队列中读取状态变更任务并执行相应的任务处理;其中,所述任务处理包括:基于所述状态变更任务中代理端的生效结果在第一数据库中写入对应的域名修改任务的代理端状态,以及,基于对应的域名修改任务的所有代理端状态在第一数据库中变更所述域名修改任务的任务状态。2.根据权利要求1所述的方法,其特征在于,所述在接收域名修改任务对应的至少一个代理端发送的状态变更任务之前,所述方法还包括:设置在各个域名服务器的代理端监听第二数据库中的域名修改任务,域名修改任务通过前端或应用程序编程接口写入第一数据库和第二数据库;代理端在监听到新的域名修改任务后,基于所述域名修改任务生成对应的配置文件,将所述配置文件在所属域名服务器中进行生效;代理端基于所述配置文件在所属域名服务器中的生效结果,生成与所述域名修改任务对应的状态变更任务,并将所述状态变更任务发送至任务中心;其中,生效结果包括生效成功或生效失败,生成的状态变更任务与对应的域名修改任务的任务标识信息一致。3.根据权利要求2所述的方法,其特征在于,所述从任务队列中读取状态变更任务并执行相应的任务处理,包括:遍历任务队列,从任务队列中依次读取每一个状态变更任务;针对当前读取的状态变更任务,调用任务处理器执行相应的任务处理;在所述状态变更任务执行成功的情况下,将所述状态变更任务从任务队列中移除;在所述状态变更任务执行失败的情况下,将所述状态变更任务放入任务重试队列中,以再次执行相应的任务处理。4.根据权利要求3所述的方法,其特征在于,所述将所述状态变更任务放入任务重试队列中,以再次执行相应的任务处理,包括:遍历任务重试队列,从任务重试队列中依次读取每一个状态变更任务;针对当前读取的状态变更任务,调用任务处理器执行相应的任务处理;在所述状态变更任务执行成功的情况下,将所述状态变更任务从任务重试队列中移除;在所述状态变更任务执行失败的情况下,将所述状态变更任务重新放入任务重试队列中,直至执行成功,将所述状态变更任务从任务重试队列中移除。5.根据权利要求3或4所述的方法,其特征在于,所述第一数据库为关系型数据库,所述第二数据库为etcd数据库;所述调用任务处理器执行相应的任务处理,包括:任务处理器创建etcd客户端,并利用创建的etcd客户端对当前读取的状态变更任务进行加锁;根据所述状态变更任务的任...

【专利技术属性】
技术研发人员:李飞鸿朱光祖黄保华管永刚
申请(专利权)人:新浪技术中国有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1