一种基于CoreDNS注册服务的边缘应用相互调度的方法及系统与流程

文档序号:20009135发布日期:2020-02-22 03:53阅读:251来源:国知局
一种基于CoreDNS注册服务的边缘应用相互调度的方法及系统与流程

本发明涉及边缘计算领域,具体涉及一种基于coredns注册服务的边缘应用相互调度的方法及系统。



背景技术:

在边缘领域中,会在边缘节点上部署好相关的应用。传统的使用方式中,应用与应用之间多为相互隔离的个体,无需应用之间的调度。而根据实际场景的需求,需要在多个应用之间进行相互调用,例如,外卖应用需要调用定位应用,以确定用户的方位以便推荐附近的餐馆等等。

现有的应用调用方法是,在调用的代码里面配置应用相关的地址路由,如http://ip:port/appname,来进行调用。但是在应用部署过程中,会根据当前的网络随机分配ip,应用的ip地址会经常改变,这种代码里面配置ip的方式无法应对ip的多变性。



技术实现要素:

针对上述技术问题,本发明提供一种基于coredns注册服务的边缘应用相互调度的方法及系统。

本发明解决上述技术问题的技术方案如下:一种基于coredns注册服务的边缘应用相互调度的方法,包括:

根据应用注册的服务的域名和ip创建dns规则;

当接收到服务注册请求时,根据应用注册的服务名称、所述域名和应用id生成服务;

生成包含所述服务的服务列表,并将所述服务列表存储到数据库中,其中,所述服务名称、域名和ip之间一一对应;

当接收到其他应用的调度请求时,根据所述调度请求的配置文件信息中的域名或服务名称调用对应的应用。

本发明的有益效果是:通过给应用提供一种特定的域名,将应用注册成服务,将应用、服务、域名、ip进行关联,边缘应用之间可直接通过域名或服务名称实现应用的相互调度,无需考虑多变的ip,实现了在边缘领域中应用与应用之间的灵活调用。

在上述技术方案的基础上,本发明还可以做如下改进。

进一步,所述根据应用注册的服务的域名和ip创建dns规则,具体包括:

采用域名解析服务器对应用注册的服务的域名进行域名解析,并将所述域名和ip的信息存到数据库中。

进一步,当接收到服务注册请求时,根据确定的服务名称和所述域名生成服务,具体包括:

当接收到的服务注册请求时,对所述服务注册请求进行解析,得到应用注册的服务名称和域名,并查询得到应用id;

根据所述应用注册的服务名称、域名和应用id生成服务。

进一步,该方法还包括:

当接收到其他应用的调度请求时,检测所述调度请求的配置文件信息中的服务名称是否在所述服务列表中,若不存在,则返回错误提示。

为实现上述发明目的,本发明还提供一种基于coredns注册服务的边缘应用相互调度的系统,包括:

创建模块,用于根据应用注册的服务的域名和ip创建dns规则;

第一生成模块,用于当接收到服务注册请求时,根据应用注册的服务名称、所述域名和应用id生成服务;

第二生成模块,用于生成包含所述服务的服务列表,并将所述服务列表存储到数据库中,其中,所述服务名称、域名和ip之间一一对应;

调用模块,用于当接收到其他应用的调度请求时,根据所述调度请求的配置文件信息中的域名或服务名称调用对应的应用。

进一步,所述创建模块,具体用于:

采用域名解析服务器对应用注册的服务的域名进行域名解析,并将所述域名和ip的信息存到数据库中。

进一步,所述第一生成模块,具体包括:

解析单元,用于当接收到的服务注册请求时,对所述服务注册请求进行解析,得到应用注册的服务名称和域名,并查询得到应用id;

生成单元,用于根据所述应用注册的服务名称、域名和应用id生成服务。

进一步,该系统还包括:

提示模块,用于当接收到其他应用的调度请求时,检测所述调度请求的配置文件信息中的服务名称是否在所述服务列表中,若不存在,则返回错误提示。

附图说明

图1为本发明实施例提供的一种基于coredns注册服务的边缘应用相互调度的方法的流程图;

图2为基于本发明实施例的边缘应用之间相互访问流程图。

具体实施方式

以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。

图1为本发明实施例提供的一种基于coredns注册服务的边缘应用相互调度的方法的流程图,如图1所示,该方法包括:

s1.根据应用注册的服务的域名和ip创建dns规则;

具体的,该步骤中,在mepm(边缘应用管理平台)中页面上创建一个dns规则,创建的过程中填写域名和ip,其中域名需要以特定的格式,如a.example.com,ip为应用部署成功后的外部网络ip。将域名与ip传给后端服务,后端服务采用域名解析服务器(如coredns)进行域名解析并将域名和ip的信息同时存到数据库中。coredns在域名解析的过程中,会将传递过来的域名和ip处理成corefile格式的文件,启动该文件即实现域名与ip的a记录,从而将域名与ip对应起来,实现域名的解析。

s2.当接收到服务注册请求时,根据应用注册的服务名称、所述域名和应用id生成服务;

s3.生成包含所述服务的服务列表,并将所述服务列表存储到数据库中,其中,所述服务名称、域名和ip之间一一对应;

具体的,该步骤中,同样可在页面上操作应用服务注册,前端页面将请求发给后端,后端接收请求解析发起的服务名称、域名、应用id进行处理。服务注册的同时在数据库中生成服务记录-服务列表,页面上展示应用下的服务列表,服务、域名、ip之间的关系为1:1:1。

例如,创建一个定位服务,服务名称可设定为location,endpoint域名为a.location.com。前端将数据传递给后端,后端获取数据进行逻辑处理生成服务,并生成一个服务列表,存储到数据库中。

s4.当接收到其他应用的调度请求时,根据所述调度请求的配置文件信息中的域名或服务名称调用对应的应用。

具体的,上述步骤s1到s3已将应用注册服务成功,然后其他应用在需要调用该应用时,在调度请求的配置文件中指定服务的服务名称,即可调用该服务名称对应的应用,也可以通过服务的域名来直接访问对应的应用,如http://domain:port/即可调用,其中domain即为服务的域名。

图2为基于本实施例的边缘应用之间相互访问流程图,如图2所示,同一个数据中心控制的两个不同的边缘iaas,即边缘iaas1和边缘iaas2,两个边缘iaas上分别起两个不同的应用,即应用1和应用2,两个应用各自启动成功、创建dns规则并注册服务后,即可相互访问。

通过本发明实施例的方案将边缘节点上部署的应用服务化,可以实现边缘应用之间的相互调度。在边缘应用领域,边缘应用在部署过程中会分为不同的边缘iaas,即可能会出现多种应用部署在同一个边缘iaas的情况,同时也会有不同的应用部署在不同的边缘iaas的场景。本发明的方案支持上述的两种情况,也就是在同一个数据中心的前提下,本发明支持多种应用部署在同一个边缘iaas的场景,同时也会支持不同的应用部署在不同的边缘iaas的场景。

本发明实施例提供的一种基于coredns注册服务的边缘应用相互调度的方法,通过给应用提供一种特定的域名,将应用注册成服务,将应用、服务、域名、ip进行关联,边缘应用之间可直接通过域名或服务名称实现应用的相互调度,无需考虑多变的ip,实现了在边缘领域中应用与应用之间的灵活调用。

可选地,在该实施例中,步骤s1具体包括:

采用域名解析服务器对应用注册的服务的域名进行域名解析,并将所述域名和ip的信息存到数据库中。

具体的,该步骤中,域名解析服务器可采用coredns,采用coredns可以使应用服务注册的过程更加简洁化,注册过程中采用corefile文件的方式进行配置,插件化方式的管理还可以灵活的支持业务的拓展与二次开发,另外配置文件编译出来是一个二进制的文件,内置缓存、健康检查等,无需第三方辅助其他功能,内存管理更加的安全。

可选地,在该实施例中,步骤s2具体包括:

s2.1.当接收到的服务注册请求时,对所述服务注册请求进行解析,得到应用注册的服务名称和域名,并查询得到应用id;

s2.2.根据所述应用注册的服务名称、域名和应用id生成服务。

可选地,在该实施例中,该方法还包括:

s5.当接收到其他应用的调度请求时,检测所述调度请求的配置文件信息中的服务名称是否在所述服务列表中,若不存在,则返回错误提示。

采用本实施例的一个具体应用示例如下,应用1为外卖应用,应用2为定位应用。外卖应用会调用定位应用。外卖应用不需要注册成服务,定位应用需要注册为服务,服务名称定义为location。

1、先启动定位应用,并且运行成功。接下来是将定位应用注册成服务的过程。

2、创建dns规则,定位应用dns域名为:a.location.com,ip:172.16.60.247,外卖应用的dns域名:a.takeaway.com,ip:12.12.12.21。将域名和ip数据传到后端,后端服务采用coredns进行域名解析并将域名和ip的信息同时存到数据库中。coredns在域名解析的过程中,会将传递过来的域名和ip处理成corefile格式的文件,启动该文件即实现域名与ip的a记录,从而实现域名的解析。3、创建应用服务注册,创建一个定位服务,名称为location,endpoint为a.location.com。前端将数据传递给后端,后端获取数据进行逻辑处理生成服务,并生成一个服务列表,存储到数据库中。

4、上述步骤已将定位应用注册服务成功,然后启动外卖应用。在外卖应用部署的配置文件中指定定位服务的服务名称location,启动应用的时候后端拿到配置文件信息中的服务名称location到上述的服务列表进行检测,若已存在,则可以正常进行调用,否则给出错误提示。

5、ue(用户设备)通过域名a.takeaway.com访问外卖应用,外卖应用中访问定位应用时,只需要通过http://a.location.com:port/访问即可。

本发明实施例提供一种基于coredns注册服务的边缘应用相互调度的系统,该系统包括:

创建模块,用于根据应用注册的服务的域名和ip创建dns规则;

第一生成模块,用于当接收到服务注册请求时,根据应用注册的服务名称、所述域名和应用id生成服务;

第二生成模块,用于生成包含所述服务的服务列表,并将所述服务列表存储到数据库中,其中,所述服务名称、域名和ip之间一一对应;

调用模块,用于当接收到其他应用的调度请求时,根据所述调度请求的配置文件信息中的域名或服务名称调用对应的应用。

可选地,在该实施例中,所述创建模块,具体用于:

采用域名解析服务器对应用注册的服务的域名进行域名解析,并将所述域名和ip的信息存到数据库中。

可选地,在该实施例中,所述第一生成模块,具体包括:

解析单元,用于当接收到的服务注册请求时,对所述服务注册请求进行解析,得到应用注册的服务名称和域名,并查询得到应用id;

生成单元,用于根据所述应用注册的服务名称、域名和应用id生成服务。

可选地,在该实施例中,该系统还包括:

提示模块,用于当接收到其他应用的调度请求时,检测所述调度请求的配置文件信息中的服务名称是否在所述服务列表中,若不存在,则返回错误提示。

读者应理解,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统实施例中的模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1