一种分布式服务注册方法及装置制造方法及图纸

技术编号:21278267 阅读:29 留言:0更新日期:2019-06-06 10:43
本发明专利技术提供一种分布式服务注册方法及装置,所述方法包括:以守护进程的形式定时执行以下步骤:对目标应用本地的配置文件进行解析,获得用于获取所述目标应用所对应的服务信息的http接口;根据所述http接口向所述目标应用发起http请求,以获取所述目标应用所对应的服务信息;将所述服务信息转换为服务注册信息,并将所述服务注册信息写入分布式存储节点。本发明专利技术提出的一种分布式服务注册方法及装置,为不同类型不同语言的分布式服务提供了统一的服务注册模型,需要服务注册的应用仅需要提供获取服务信息的http接口即可,属于应用外的注册方式,与应用程序是分离的,避免了应用内注册方式的缺点。

A Distributed Service Registration Method and Device

The invention provides a distributed service registration method and device. The method includes: performing the following steps regularly in the form of a daemon process: parsing the local configuration file of the target application, obtaining an HTTP interface for obtaining the corresponding service information of the target application, and initiating an HTTP request to the target application according to the HTTP interface in order to obtain the target application. The corresponding service information transforms the service information into service registration information and writes the service registration information into the distributed storage node. The distributed service registration method and device provided by the invention provides a unified service registration model for distributed services in different languages. The application requiring service registration only needs to provide an HTTP interface to obtain service information. It belongs to the registration mode outside the application and is separated from the application program, thus avoiding the shortcomings of the internal registration mode in the application.

【技术实现步骤摘要】
一种分布式服务注册方法及装置
本专利技术涉及软件工程领域,更具体地,涉及一种分布式服务注册方法及装置。
技术介绍
在微服务架构生态系统中,服务的注册和发现是基础支撑。服务的注册就是将微服务的运行信息写入到存储节点或集群,服务发现就是从存储节点或集群读取微服务的运行信息。基于分布式服务的服务信息,服务网关可实现负载均衡功能,应用管理中心可实现应用运行的监控。目前实现服务注册的常用方案是在应用内实现服务注册,即开发人员将服务注册功能以工具包的方式提供给应用程序,然后应用程序通过主动调用服务注册功能来完成服务信息的注册。但应用内实现服务注册这种方案会有如下不足:1)应用程序所采用的编程语言众多,如c++、php、java、go等,需要为每种语言都提供服务注册功能的工具包,并进行持续维护,成本很高;2)服务注册工具包的升级困难,因为这会造成依赖工具包的应用程序更新工具包版本,并且测试重新发布,在实践中,这是很困难的。
技术实现思路
为了解决应用内服务注册的方式所存在的以上问题,本专利技术提供一种分布式服务注册方法及装置。根据本专利技术的一个方面,提供一种分布式服务注册方法,以守护进程的形式定时执行以下步骤:S1,对目标应用本地的配置文件进行解析,获得用于获取所述目标应用所对应的服务信息的http接口;S2,根据所述http接口向所述目标应用发起http请求,以获取所述目标应用所对应的服务信息;S3,将所述服务信息转换为服务注册信息,并将所述服务注册信息写入分布式存储节点。其中,步骤S1中所述用于获取所述目标应用所对应的服务信息的http接口包括:服务监听的本机端口和获取所述目标应用运行状态的httpuri接口。其中,所述步骤S2进一步包括:根据所述http接口所包含的信息构造完整的httpurl地址,并向所述httpurl地址发起获取所述目标应用所对应的服务信息的http请求。其中,所述目标应用所对应的服务信息包括:所述目标应用的名称、所述目标应用的实例、所述目标应用的版本信息和可自定义的扩展信息。其中,所述服务注册信息包括:所述目标应用的名称、所述目标应用的ID、所述目标应用的版本信息、所述目标应用所在的IP地址、所述目标应用所在的主机名和可自定义的扩展信息。其中,步骤S3中将所述服务注册信息写入分布式存储节点的步骤进一步包括:将所述服务注册信息以key-value的形式写入到分布式存储节点中,同时设置所述服务注册信息的过期时间。其中,所述分布式存储节点的类型包括:Redis、MySQL、Etcd和ZooKeeper中的一种。根据本专利技术的另一个方面,提供一种分布式服务注册装置,包括:解析子单元,用于对目标应用本地的配置文件进行解析,获得用于获取所述目标应用所对应的服务信息的http接口;服务信息获取子单元,用于根据所述http接口向所述目标应用发起http请求,以获取所述目标应用所对应的服务信息注册子单元,用于将所述服务信息转换为服务注册信息,并将所述服务注册信息写入分布式存储节点。根据本专利技术的另一个方面,提供一种分布式服务注册设备,包括存储器、处理器、以及总线,所述处理器和存储器通过所述总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述存储器中的程序指令,以执行如上所述的方法。根据本专利技术的又一个方面,提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如上所述的方法。本专利技术提出的一种分布式服务注册方法及装置,为不同类型不同语言的分布式服务提供了统一的服务注册模型,需要服务注册的应用仅需要提供获取服务信息的http接口即可,本专利技术的服务注册方法属于应用外的注册方式,与应用程序是分离的,避免了应用内注册方式的缺点,不需要为不同语言的应用开发对应的服务注册工具包且在需要对服务注册进程进行升级时不需要对应用程序进行升级。附图说明图1为根据本专利技术一实施例提供的一种分布式服务注册方法的流程示意图;图2为根据本专利技术一实施例提供的一种分布式服务注册方法的实现交互图;图3为根据本专利技术另一实施例提供的一种分布式服务注册装置的结构示意图;图4为根据本专利技术另一实施例提供的一种分布式服务注册设备的结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他的实施例,都属于本专利技术保护的范围。如图1所示,为本专利技术一实施例提供的一种分布式服务注册方法的流程示意图,具体地,以守护进程的形式定时执行以下步骤:S1,对目标应用本地的配置文件进行解析,获得用于获取所述目标应用所对应的服务信息的http接口;S2,根据所述http接口向所述目标应用发起http请求,以获取所述目标应用所对应的服务信息;S3,将所述服务信息转换为服务注册信息,并将所述服务注册信息写入分布式存储节点。本专利技术所提供的分布式服务注册方法,其具体实现是以守护进程的形式在每个服务器上运行,为方便叙述,用服务注册进程表示该守护进程,服务注册进程与服务器和分布式存储节点的具体交互过程如图2所示。S1中,目标应用是指需要接入服务注册功能的应用。目标应用本地的配置文件是指目标应用所在服务器本地的配置文件。配置文件的内容由多行port/readyUri构成,每个需要接入服务注册功能的应用都对应一行port/readyUri信息,所述用于获取所述目标应用所对应的服务信息的http接口即是指port/readyUri,即服务注册进程根据该http接口就可以获取该目标应用所对应的服务信息。其中,port表示监听各个需要接入服务注册功能的应用的本机端口;readyUri用于将该需要接入服务注册功能的应用的运行状态告诉服务注册进程。例如,名为app1的应用需要使用服务注册功能,那么应用开发者需要提供查询该运行状态的httpuri,假设app1应用的http监听端口为9001,那么在该应用所在服务器本地的配置文件中就会有一行信息为9001/readyUri。即服务注册进程对目标应用本地的配置文件进行解析,获得用于获取所述目标应用所对应的服务信息的http接口。对于需要接入服务注册功能的应用,服务注册进程需要通过该目标应用所提供的http接口获取到所述目标应用的服务信息。因此,在S2中,根据所述http接口向所述目标应用发起http请求,以获取所述目标应用所对应的服务信息。其中,根据所述http接口向所述目标应用发起http请求是指,服务注册进程获得所述http接口后,会根据该http接口构造一个完整的httpurl地址,例如:http://localhost:port/readyUri,然后向该httpurl地址发起http请求,此http请求即用于获取目标应用所对应的服务信息。服务注册进程定时轮询(如每隔10s)所有需要进行服务注册的应用的http接口,以获取每个需要信息服务注册的应用所对应的服务信息。S3中,分布式存储节点用于存储服务注册信息,需要保证高可用。本专利技术实施例本文档来自技高网...

【技术保护点】
1.一种分布式服务注册方法,其特征在于,以守护进程的形式定时执行以下步骤:S1,对目标应用本地的配置文件进行解析,获得用于获取所述目标应用所对应的服务信息的http接口;S2,根据所述http接口向所述目标应用发起http请求,以获取所述目标应用所对应的服务信息;S3,将所述服务信息转换为服务注册信息,并将所述服务注册信息写入分布式存储节点。

【技术特征摘要】
1.一种分布式服务注册方法,其特征在于,以守护进程的形式定时执行以下步骤:S1,对目标应用本地的配置文件进行解析,获得用于获取所述目标应用所对应的服务信息的http接口;S2,根据所述http接口向所述目标应用发起http请求,以获取所述目标应用所对应的服务信息;S3,将所述服务信息转换为服务注册信息,并将所述服务注册信息写入分布式存储节点。2.根据权利要求1所述的方法,其特征在于,步骤S1中所述用于获取所述目标应用所对应的服务信息的http接口包括:服务监听的本机端口和获取所述目标应用运行状态的httpuri接口。3.根据权利要求2所述的方法,其特征在于,所述步骤S2进一步包括:根据所述http接口所包含的信息构造完整的httpurl地址,并向所述httpurl地址发起获取所述目标应用所对应的服务信息的http请求。4.根据权利要求3所述的方法,其特征在于,所述目标应用所对应的服务信息包括:所述目标应用的名称、所述目标应用的实例、所述目标应用的版本信息和可自定义的扩展信息。5.根据权利要求1所述的方法,其特征在于,所述服务注册信息包括:所述目标应用的名称、所述目标应用的ID、所述目标应用的版本信息、所述目标应用所在的IP地址、所述目标应用所在的主机名和可自定义的扩展信息。...

【专利技术属性】
技术研发人员:支猛张文明陈少杰
申请(专利权)人:武汉斗鱼网络科技有限公司
类型:发明
国别省市:湖北,42

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

1