CN107105061A - 一种服务注册方法及装置 - Google Patents

一种服务注册方法及装置 Download PDF

Info

Publication number
CN107105061A
CN107105061A CN201710400559.7A CN201710400559A CN107105061A CN 107105061 A CN107105061 A CN 107105061A CN 201710400559 A CN201710400559 A CN 201710400559A CN 107105061 A CN107105061 A CN 107105061A
Authority
CN
China
Prior art keywords
container
service
service registry
information
registry
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.)
Granted
Application number
CN201710400559.7A
Other languages
English (en)
Other versions
CN107105061B (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.)
Information And Communication Branch Of Jiangsu Electric Power Co Ltd
State Grid Corp of China SGCC
State Grid Information and Telecommunication Co Ltd
Beijing China Power Information Technology Co Ltd
Original Assignee
State Grid Corp of China SGCC
State Grid Information and Telecommunication Co Ltd
Beijing China Power Information 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 State Grid Corp of China SGCC, State Grid Information and Telecommunication Co Ltd, Beijing China Power Information Technology Co Ltd filed Critical State Grid Corp of China SGCC
Priority to CN201710400559.7A priority Critical patent/CN107105061B/zh
Publication of CN107105061A publication Critical patent/CN107105061A/zh
Application granted granted Critical
Publication of CN107105061B publication Critical patent/CN107105061B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • 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/4541Directories for service discovery
    • 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/53Network services using third party service providers
    • 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/56Provisioning of proxy services
    • H04L67/566Grouping or aggregating service requests, e.g. for unified processing

Abstract

本发明提供一种服务注册方法及装置,获取处于启动状态的容器对应的容器标识,根据容器标识获取容器所在宿主机的IP地址和所述容器的网络端口与所述容器所在宿主机的网络端口之间的映射关系,将所述容器所在宿主机的IP地址和所述映射关系发送至服务注册中心,实现在服务注册中心注册服务的目的。由于宿主机能够与其他主机进行通信,因此其他的主机与宿主机之间通过网络端口可以实现互相访问,进而实现了其他的主机通过网络访问容器的目的,解决了现有技术中主机不能访问位于另一台主机内的容器内部网络,导致主机上面的服务不能直接访问容器内部的服务的问题。

Description

一种服务注册方法及装置
技术领域
本发明属于服务注册技术领域,尤其涉及一种服务注册方法及装置。
背景技术
Docker是一个开源的应用容器引擎,允许开发者打包应用到容器中。在Docker上构建了一个容器后,用户通过访问此容器以完成特定的服务功能。当构建了一个容器后,为了使得用户能够及时发现此容器,以便访问此容器并利用此容器提供的服务功能,需要在服务注册中心注册此容器。
现有技术中,实现服务注册的方式是基于容器的IP实现服务注册。注册完成后,服务注册中心会存储有与容器所能完成的服务功能对应的服务名称,在服务名称下存储有容器的IP。在使用服务的过程中,从服务注册中心中查找可用的容器并通过容器的IP实现网络访问此容器。
但是,由于服务注册中心存储的容器的IP是容器内部的IP,容器内部的IP是在创建Docker容器时,Docker创建的在主机和容器之间的虚拟共享网络中的一个IP地址。因此,其他的主机与此容器内部的IP不能进行通信,导致其他的主机不能通过此容器的内部IP网络访问此容器内部的服务。
发明内容
有鉴于此,本发明的目的在于提供一种服务注册方法及装置,用于解决现有技术中主机不能访问位于另一台主机内的容器内部网络,导致主机上面的服务不能直接访问容器内部的服务的问题。技术方案如下:
本发明提供一种服务注册方法,包括:
获取处于启动状态的容器对应的容器标识;
根据所述容器标识,获取所述容器的容器信息;其中,所述容器信息包括容器所在宿主机的IP地址和所述容器的网络端口与所述容器所在宿主机的网络端口之间的映射关系;
将所述容器信息发送至服务注册中心;其中,所述容器信息用于所述服务注册中心生成服务注册节点。
优选地,所述将所述容器信息发送至服务注册中心之后,还包括:
向所述服务注册中心发送服务请求;
接收所述服务注册中心返回的服务注册节点信息;其中,所述服务注册节点信息包括宿主机的IP地址和所述映射关系;
根据所述服务注册节点信息访问与所述服务注册节点对应的容器。
优选地,所述接收所述服务注册中心返回的服务注册节点信息之后,还包括:
将所述服务请求和所述服务注册节点信息存储在配置文件中;其中,所述服务请求与所述服务注册节点信息存在对应关系;
其中,所述根据所述服务注册节点信息访问与所述服务注册节点对应的容器包括:
在所述配置文件中查找与所述服务请求对应的服务注册节点信息;
当查找到与所述服务请求对应的服务注册节点信息时,则根据所述服务注册节点信息访问与所述服务注册节点对应的容器;
当未查找到与所述服务请求对应的服务注册节点信息时,返回执行向所述服务注册中心发送服务请求的步骤。
本发明还提供另一种服务注册方法,包括:
接收容器发送的容器信息;其中,所述容器信息包括容器所在宿主机的IP地址和所述容器的网络端口与所述容器所在宿主机的网络端口之间的映射关系;
根据所述容器信息,生成与所述容器对应的服务注册节点。
优选地,所述接收容器发送的容器信息还包括:
接收容器发送的所述容器的服务名称;
其中,所述根据所述容器信息,生成与所述容器对应的服务注册节点包括:
根据所述容器的服务名称,生成第一级服务注册节点;
根据所述宿主机的IP地址和所述映射关系,在所述第一级服务节点下生成第二级服务注册节点。
优选地,所述根据所述容器信息,生成与所述容器对应的服务注册节点之后,还包括:
接收所述容器发送的服务请求;
获取与所述服务请求对应的服务注册节点信息;
将所述服务注册节点信息发送至所述容器。
优选地,所述根据所述容器信息,生成与所述容器对应的服务注册节点之后,还包括:
在预定时间内判断是否接收到所述容器发送的心跳信息;
当预定时间内没有接收到所述容器发送的心跳信息时,删除与所述容器对应的服务注册节点。
本发明还提供一种服务注册装置,包括:
第一获取单元,用于获取处于启动状态的容器对应的容器标识;
所述第一获取单元,还用于根据所述容器标识,获取所述容器的容器信息;其中,所述容器信息包括容器所在宿主机的IP地址和所述容器的网络端口与所述容器所在宿主机的网络端口之间的映射关系;
第一发送单元,用于将所述获取单元获取到的所述容器信息发送至服务注册中心;其中,所述容器信息用于所述服务注册中心生成服务注册节点。
优选地,还包括:
第二发送单元,用于向所述服务注册中心发送服务请求;
第一接收单元,用于接收所述服务注册中心返回的服务注册节点信息;其中,所述服务注册节点信息包括宿主机的IP地址和所述映射关系;
访问单元,用于根据所述接收单元接收的所述服务注册节点信息访问与所述服务注册节点对应的容器。
优选地,还包括:
存储单元,用于将所述服务请求和所述服务注册节点信息存储在配置文件中;其中,所述服务请求与所述服务注册节点信息存在对应关系;
其中,所述访问单元,还包括:
查找子单元,用于在所述配置文件中查找与所述服务请求对应的服务注册节点信息;
访问子单元,当所述查找子单元查找到与所述服务请求对应的服务注册节点信息时,则根据所述服务注册节点信息访问与所述服务注册节点对应的容器;
当所述查找子单元未查找到与所述服务请求对应的服务注册节点信息时,调用所述第二发送单元。
本发明还提供另一种服务注册装置,包括:
第二接收单元,用于接收容器发送的容器信息;其中,所述容器信息包括容器所在宿主机的IP地址和所述容器的网络端口与所述容器所在宿主机的网络端口之间的映射关系;
注册单元,用于根据所述第一接收单元接收到的所述容器信息,生成与所述容器对应的服务注册节点。
优选地,所述第二接收单元还用于接收容器发送的所述容器的服务名称;
所述注册单元,还包括:
第一注册子单元,用于根据所述容器的服务名称,生成第一级服务注册节点;
第二注册子单元,用于根据所述宿主机的IP地址和所述映射关系,在所述第一级服务节点下生成第二级服务注册节点。
优选地,还包括:
第三接收单元,用于接收所述容器发送的服务请求;
第二获取单元,用于获取与所述服务请求对应的服务注册节点信息;
第三发送单元,用于将所述获取单元获取到的所述服务注册节点信息发送至所述容器。
优选地,还包括:
判断单元,用于在预定时间内判断是否接收到所述容器发送的心跳信息;
删除单元,用于当所述判断单元判断预定时间内没有接收到所述容器发送的心跳信息时,删除与所述容器对应的服务注册节点。
与现有技术相比,本发明提供的上述技术方案具有如下优点:
从上述技术方案可知,本申请中获取处于启动状态的容器对应的容器标识,根据容器标识获取容器所在宿主机的IP地址和所述容器的网络端口与所述容器所在宿主机的网络端口之间的映射关系,将所述容器所在宿主机的IP地址和所述映射关系发送至服务注册中心,实现在服务注册中心注册的目的。其他的主机与宿主机之间可以通过网络实现互相访问,且由于宿主机的网络端口与容器的网络端口之间存在映射关系,当其他的主机通过网络端口实现访问宿主机时,即可实现通过与宿主机的网络端口具有映射关系的容器的网络端口访问容器的目的。进而实现了其他的主机通过网络访问容器的目的。解决了现有技术中主机不能访问位于另一台主机内的容器内部网络,导致主机上面的服务不能直接访问容器内部的服务的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种服务注册方法的流程图;
图2是本发明实施例提供的另一种服务注册方法的流程图;
图3是本发明实施例提供的另一种服务注册方法的流程图;
图4是本发明实施例提供的另一种服务注册方法的流程图;
图5是本发明实施例提供的一种服务注册装置的结构示意图;
图6是本发明实施例提供的另一种服务注册装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本实施例公开了一种服务注册方法,所述服务注册方法应用于基于Docker构建的容器上,参见图1,该实施例包括以下步骤:
S101、获取处于启动状态的容器对应的容器标识;
基于Docker构建容器后,通过容器运行命令启动容器后,获取处于启动状态的容器对应的容器标识。其中,容器标识用于唯一标识容器。
在实际使用时,容器标识可以是创建基于Docker的容器时,分配给容器的一个全局唯一的标识符(UUID)。由于标识符是在创建容器时,自动为容器分配的唯一标识符,因此避免了命名冲突和人为更改导致的容器标识不唯一的问题产生。容器标识还可以是创建容器时用多个单词随机生成的容器名字。
S102、根据所述容器标识,获取所述容器的容器信息;其中,所述容器信息包括容器所在宿主机的IP地址和所述容器的网络端口与所述容器所在宿主机的网络端口之间的映射关系;
在启动容器时,通过“-P”或“-P参数”指定端口映射。例如通过“-p 5123:80”指令即可实现将容器的80端口映射为容器所在宿主机的5123端口,形成容器的网络端口与容器所在宿主机的网络端口之间的映射关系。使得外部程序通过宿主机的网络端口访问,就能直接访问基于Docker的容器。
当容器启动并创建了容器的网络端口与容器所在宿主机的网络端口之间的映射关系后,容器会存储此映射关系。
根据容器标识,从容器内存储此映射关系的地址下,获取容器的网络端口与容器所在宿主机的网络端口之间的映射关系。
并根据容器标识,识别出容器所在宿主机,然后获取宿主机的IP地址。
S103、将所述容器信息发送至服务注册中心;其中,所述容器信息用于所述服务注册中心生成服务注册节点。
将宿主机的IP地址和所述容器的网络端口与所述容器所在宿主机的网络端口之间的映射关系发送至服务注册中心,服务注册中心根据接收到的容器信息生成服务注册节点。
在本实施例中服务注册中心为Zookeeper注册中心,当然也可以为其他类型的服务注册中心。
从上述技术方案可知,本申请中获取处于启动状态的容器对应的容器标识,根据容器标识获取容器所在宿主机的IP地址和所述容器的网络端口与所述容器所在宿主机的网络端口之间的映射关系,将所述容器所在宿主机的IP地址和所述映射关系发送至服务注册中心,实现在服务注册中心注册的目的。其他的主机与宿主机之间可以通过网络实现互相访问,且由于宿主机的网络端口与容器的网络端口之间存在映射关系,当其他的主机通过网络端口实现访问宿主机时,即可实现通过与宿主机的网络端口具有映射关系的容器的网络端口访问容器的目的。进而实现了其他的主机通过网络访问容器的目的。解决了现有技术中主机不能访问位于另一台主机内的容器内部网络,导致主机上面的服务不能直接访问容器内部的服务的问题。
本发明公开了另一种服务注册方法,参见图2,该实施例包括以下步骤:
S201、获取处于启动状态的容器对应的容器标识;
S202、根据所述容器标识,获取所述容器的容器信息;其中,所述容器信息包括容器所在宿主机的IP地址和所述容器的网络端口与所述容器所在宿主机的网络端口之间的映射关系;
S203、将所述容器信息发送至服务注册中心;其中,所述容器信息用于所述服务注册中心生成服务注册节点;本实施例中步骤S201-S203的实现方式与上一实施例中步骤S101-S103的实现方式类似,此处不在赘述。
S204、向所述服务注册中心发送服务请求;
当前能够提供服务的容器,即当前处于启动状态的容器都会在服务注册中心完成服务注册。当一个容器需要访问另一容器时,通过向服务注册中心发送服务请求,即可从服务注册中心处获知当前能够提供服务的容器的相关信息,进而根据服务注册中心返回的信息,访问能提供服务的容器。
S205、接收所述服务注册中心返回的服务注册节点信息;其中,所述服务注册节点信息包括宿主机的IP地址和所述映射关系;
接收到服务注册中心返回的服务注册节点信息后,将所述服务请求和所述服务注册节点信息存储在配置文件中;其中,所述服务请求与所述服务注册节点信息存在对应关系。
S206、根据所述服务注册节点信息访问与所述服务注册节点对应的容器。
由于在配置文件中存储的是服务请求和与服务请求对应的服务注册节点信息,在容器访问能够提供服务的容器时,根据服务请求在配置文件中查找与服务请求对应的服务注册节点信息;
当查找到与所述服务请求对应的服务注册节点信息时,说明配置文件中存储有与服务请求对应的能够提供服务的容器对应的服务注册节点信息,则根据配置文件中存储的服务注册节点信息访问与服务注册节点对应的容器。
由于容器的状态是变化的,而只有处于启动状态的容器才能提供服务,处于关闭状态的容器不能提供服务。因此,当配置文件中存储的与服务注册节点信息对应的容器关闭后,仍然根据配置文件中存储的与服务请求对应的此服务注册节点信息访问容器时,将不能利用容器所提供的服务。
为了避免此问题的发生,容器可以向服务注册中心订阅与服务请求对应的服务注册节点信息。在容器订阅了与服务请求对应的服务注册节点信息后,服务注册中心中与服务请求对应的服务注册节点信息发生变化时,将更新后的服务注册节点信息实时发送至容器,容器接收到更新后的服务注册节点信息后,修改配置文件中存储的与服务请求对应的服务注册节点信息。使得配置文件中存储的与服务请求对应的服务注册节点信息是能够提供服务的容器对应的服务注册节点信息,避免了通过配置文件中存储的服务注册节点信息访问的容器不能提供服务的问题产生。
当未查找到与所述服务请求对应的服务注册节点信息时,说明配置文件中没有存储有与服务请求对应的能够提供服务的容器对应的服务注册节点信息,则执行向所述服务注册中心发送服务请求的步骤,以实现从服务注册中心获取能够提供服务的容器的服务注册节点信息。
在本实施例中,通过向服务注册中心发送服务请求,接收服务注册中心返回的能够提供服务的容器对应的服务注册节点信息,并存储在配置文件中,通过配置文件中存储的服务注册节点信息实现访问容器的目的。
本实施公开了一种服务注册方法,所述服务注册方法应用于服务注册中心,参见图3,该实施例包括以下步骤:
S301、接收容器发送的容器信息;其中,所述容器信息包括容器所在宿主机的IP地址和所述容器的网络端口与所述容器所在宿主机的网络端口之间的映射关系;
可选地,容器发送的容器信息除了包括容器所在宿主机的IP地址和所述容器的网络端口与所述容器所在宿主机的网络端口之间的映射关系这两项之外,还包括容器的服务名称;
容器的服务名称可以是在容器建立时,通过“name”指令自行定义的。通常以容器所能提供的服务定义容器的服务名称。
S302、根据所述容器信息,生成与所述容器对应的服务注册节点。
具体地,根据接收到的容器的服务名称,生成第一级服务注册节点;
其中,第一级服务注册节点的名称可以直接以容器的服务名称命名。
根据接收到的宿主机的IP地址和所述映射关系,在所述第一级服务节点下生成第二级服务注册节点。
可选地,在生成第一级服务注册节点之前,还包括:
接收到容器的服务名称后,判断是否存在与所述服务名称相同的第一级服务注册节点名称;
不存在与所述服务名称相同的第一级服务注册节点名称时,则根据接收到的容器的服务名称,生成第一级服务注册节点;根据接收到的宿主机的IP地址和所述映射关系,在所述第一级服务节点下生成第二级服务注册节点。
存在与所述服务名称相同的第一级服务注册节点名称时,则将接收到的宿主机的IP地址和所述映射关系,在已经存在的第一级服务注册节点下,增加一个第二级服务注册节点,新增加的第二级服务注册节点信息包括接收到的宿主机的IP地址和所述映射关系。使得能够提供相同服务的容器,都注册到相同的第一级服务注册节点,便于管理服务注册节点。
在本发明实施例中,利用接收到的容器所在宿主机的IP地址、所述容器的网络端口与所述容器所在宿主机的网络端口之间的映射关系以及容器的服务名称,生成两级服务注册节点。由于在服务注册中心注册的是容器所在宿主机的IP地址,宿主机能够与其他的主机通过网络实现互相访问,且由于宿主机的网络端口与容器的网络端口之间存在映射关系,当其他的主机通过网络端口实现访问宿主机时,即可实现通过与宿主机的网络端口具有映射关系的容器的网络端口访问容器的目的。进而实现了其他的主机通过网络访问容器的目的。解决了现有技术中主机不能访问位于另一台主机内的容器内部网络,导致主机上面的服务不能直接访问容器内部的服务的问题。同时,将具有相同服务的容器,都注册到一个节点下,便于管理注册节点。
本实施公开了另一种服务注册方法,所述服务注册方法应用于服务注册中心,参见图4,该实施例包括以下步骤:
S401、接收容器发送的容器信息;其中,所述容器信息包括容器所在宿主机的IP地址和所述容器的网络端口与所述容器所在宿主机的网络端口之间的映射关系;
S402、根据所述容器信息,生成与所述容器对应的服务注册节点;
本实施例中步骤S401-S402的实现方式与上一实施例中步骤S301-S302的实现方式类似,此处不在赘述。
S403、接收所述容器发送的服务请求;
服务请求包括所述容器需要的服务名称。
S404、获取与所述服务请求对应的服务注册节点信息;
服务注册中心生成的与容器对应的服务注册节点是两级服务注册节点,第一级服务注册节点的名称与容器的服务名称相同。
由于接收到的容器发送的服务请求中包括服务名称,因此根据服务请求中包括的服务名称,查找与服务名称相同的第一级服务注册节点。查找到第一级服务注册节点后,获取第一级服务注册节点下的第二级服务注册节点信。
其中,由于能够提供相同服务的容器都注册到相同的第一级服务注册节点,因此,在一个第一级服务注册节点下可能存在多个第二级服务注册节点,每个第二级服务注册节点对应一个容器,这时可以获取任一第二级服务注册节点的信息。
S405、将所述服务注册节点信息发送至所述容器。
将第二服务注册节点的信息发送至容器,使得容器根据接收到的第二服务注册节点的信息访问能够提供服务的容器。
可选地,在本实施例中步骤S402之后,还包括:
S406、预定时间内判断是否接收到所述容器发送的心跳信息;当预定时间内没有接收到所述容器发送的心跳信息,则执行S407;
容器处于开启状态并完成在服务注册中心的服务注册后,每隔预定时间向服务注册中心发送一次心跳信息,服务注册中心接收到容器发送的心跳信息,则确定此容器仍然处于开启状态,继续维持与容器对应的服务注册节点。
当预定时间内服务注册中心没有接收到容器发送的心跳信息,则确定此容器已经关闭,此容器将不能提供服务,则删除与容器对应的服务注册节点。
S407、删除与所述容器对应的服务注册节点。
由于容器对应的服务注册节点是两级的服务注册节点,第一级服务注册节点对应的是能够提供相同服务的多个容器,而第二级服务注册节点才对应唯一的一个容器,当删除与容器对应的服务注册节点时,可以只删除第二级服务注册节点,而并不删除第一级服务注册节点。可以理解的是,在第一级服务注册节点下仅存在一个第二级服务注册节点时,在确定需要删除第二级服务注册节点时,可以同时将第一级服务注册节点删除。
本实施例中步骤S406-S407的执行顺序,只要在步骤S402之后即可,而并不限定步骤S406-S407与步骤S403-S405的执行先后顺序。
在本发明实施例中,服务注册中心接收已经完成服务注册的容器发送的心跳信息,判断容器是否处于开启状态,当容器处于开启状态,则维持与容器对应的服务注册节点,当容器处于关闭状态,则删除与容器对应的服务注册节点。避免了服务注册中心内存储有不能提供服务的容器的信息,导致不能给容器提供正确的访问信息的问题产生。且接收到容器发送的服务请求后,通过先查找第一级服务注册节点,找到能够提供所需服务的第一级服务注册节点后,再从第一级服务注册节点的下一级服务注册节点选择容器的信息,并返回给容器。采用逐级查找的方式,提高了查找速度,能够快速地响应容器发送的服务请求。
对应上述服务注册方法,本发明还提供了一种服务注册装置,所述服务注册装置应用在容器侧,所述服务注册装置的结构示意图请参阅图5所示,本实施例中服务注册装置包括:
第一获取单元501和第一发送单元502;
第一获取单元501,用于获取处于启动状态的容器对应的容器标识;
所述第一获取单元501,还用于根据所述容器标识,获取所述容器的容器信息;其中,所述容器信息包括容器所在宿主机的IP地址和所述容器的网络端口与所述容器所在宿主机的网络端口之间的映射关系;
第一发送单元502,用于将所述获取单元获取到的所述容器信息发送至服务注册中心;其中,所述容器信息用于所述服务注册中心生成服务注册节点。
可选地,所述服务注册装置还包括:
第二发送单元503、第一接收单元504、访问单元505和存储单元506;
第二发送单元503,用于向所述服务注册中心发送服务请求;
接收单元504,用于接收所述服务注册中心返回的服务注册节点信息;其中,所述服务注册节点信息包括宿主机的IP地址和所述映射关系;
访问单元505,用于根据所述接收单元接收的所述服务注册节点信息访问与所述服务注册节点对应的容器。
存储单元506,用于将所述服务请求和所述服务注册节点信息存储在配置文件中;其中,所述服务请求与所述服务注册节点信息存在对应关系;
可选地,所述访问单元505,还包括:
查找子单元,用于在所述配置文件中查找与所述服务请求对应的服务注册节点信息;
访问子单元,当所述查找子单元查找到与所述服务请求对应的服务注册节点信息时,则根据所述服务注册节点信息访问与所述服务注册节点对应的容器;
当所述查找子单元未查找到与所述服务请求对应的服务注册节点信息时,调用所述第二发送单元。
从上述技术方案可知,本实施例中公开的服务注册装置,获取单元获取处于启动状态的容器的容器标识,并根据容器标识,获取所述容器的容器信息;其中,所述容器信息包括容器所在宿主机的IP地址和所述容器的网络端口与所述容器所在宿主机的网络端口之间的映射关系,通过第一发送单元将获取单元获取到的容器信息发送至服务注册中心,所述容器信息用于所述服务注册中心生成服务注册节点。由于宿主机能够与位其他主机通过网络实现互相访问,且由于宿主机的网络端口与容器的网络端口之间存在映射关系,当其他的主机通过网络端口实现访问宿主机时,即可实现通过与宿主机的网络端口具有映射关系的容器的网络端口访问容器的目的。进而实现了其他的主机通过网络访问容器的目的。解决了现有技术中主机不能访问位于另一台主机内的容器内部网络,导致主机上面的服务不能直接访问容器内部的服务的问题。
本发明实施例还提供了另一种服务注册装置,所述服务注册装置应用在服务注册中心侧,其结构示意图请参阅图6所示,本实施例中服务注册装置包括:
第二接收单元601和注册单元602;
第二接收单元601,用于接收容器发送的容器信息;其中,所述容器信息包括容器所在宿主机的IP地址和所述容器的网络端口与所述容器所在宿主机的网络端口之间的映射关系;
可选地,所述第二接收单元601,还用于接收容器发送的所述容器的服务名称;
注册单元602,用于根据所述第一接收单元接收到的所述容器信息,生成与所述容器对应的服务注册节点。
可选地,所述注册单元602,还包括:
第一注册子单元、第二注册子单元;
第一注册子单元,用于根据所述容器的服务名称,生成第一级服务注册节点;
第二注册子单元,用于根据所述宿主机的IP地址和所述映射关系,在所述第一级服务节点下生成第二级服务注册节点。
可选地,所述服务注册装置,还包括:
第三接收单元603、第二获取单元604、第三发送单元605、判断单元606和删除单元607;
第三接收单元603,用于接收所述容器发送的服务请求;
第二获取单元604,用于获取与所述服务请求对应的服务注册节点信息;
第三发送单元605,用于将所述获取单元获取到的所述服务注册节点信息发送至所述容器;
判断单元606,用于在预定时间内判断是否接收到所述容器发送的心跳信息;
删除单元607,用于当所述判断单元判断预定时间内没有接收到所述容器发送的心跳信息时,删除与所述容器对应的服务注册节点。
从上述技术方案可知,本实施例中公开的服务注册装置,通过注册单元将具有相同服务功能的容器,都注册到一个节点下,便于服务注册中心管理注册节点。在第二接收单元接收到容器发送的服务请求后,采用逐级查找的方式,从注册节点中获取对应服务请求的服务注册节点信息,提高了查找速度,能够快速地响应容器发送的服务请求。同时,通过删除单元删除不能提供服务的容器的注册节点,避免了服务注册中心内存储有不能提供服务的容器的信息,导致不能给容器提供正确的访问信息的问题产生。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例提供的装置而言,由于其与实施例提供的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (14)

1.一种服务注册方法,其特征在于,包括:
获取处于启动状态的容器对应的容器标识;
根据所述容器标识,获取所述容器的容器信息;其中,所述容器信息包括容器所在宿主机的IP地址和所述容器的网络端口与所述容器所在宿主机的网络端口之间的映射关系;
将所述容器信息发送至服务注册中心;其中,所述容器信息用于所述服务注册中心生成服务注册节点。
2.根据权利要求1所述的服务注册方法,其特征在于,所述将所述容器信息发送至服务注册中心之后,还包括:
向所述服务注册中心发送服务请求;
接收所述服务注册中心返回的服务注册节点信息;其中,所述服务注册节点信息包括宿主机的IP地址和所述映射关系;
根据所述服务注册节点信息访问与所述服务注册节点对应的容器。
3.根据权利要求2所述的服务注册方法,其特征在于,所述接收所述服务注册中心返回的服务注册节点信息之后,还包括:
将所述服务请求和所述服务注册节点信息存储在配置文件中;其中,所述服务请求与所述服务注册节点信息存在对应关系;
其中,所述根据所述服务注册节点信息访问与所述服务注册节点对应的容器包括:
在所述配置文件中查找与所述服务请求对应的服务注册节点信息;
当查找到与所述服务请求对应的服务注册节点信息时,则根据所述服务注册节点信息访问与所述服务注册节点对应的容器;
当未查找到与所述服务请求对应的服务注册节点信息时,返回执行向所述服务注册中心发送服务请求的步骤。
4.一种服务注册方法,其特征在于,包括:
接收容器发送的容器信息;其中,所述容器信息包括容器所在宿主机的IP地址和所述容器的网络端口与所述容器所在宿主机的网络端口之间的映射关系;
根据所述容器信息,生成与所述容器对应的服务注册节点。
5.根据权利要求4所述的服务注册方法,其特征在于,所述接收容器发送的容器信息还包括:
接收容器发送的所述容器的服务名称;
其中,所述根据所述容器信息,生成与所述容器对应的服务注册节点包括:
根据所述容器的服务名称,生成第一级服务注册节点;
根据所述宿主机的IP地址和所述映射关系,在所述第一级服务节点下生成第二级服务注册节点。
6.根据权利要求4或5所述的服务注册方法,其特征在于,所述根据所述容器信息,生成与所述容器对应的服务注册节点之后,还包括:
接收所述容器发送的服务请求;
获取与所述服务请求对应的服务注册节点信息;
将所述服务注册节点信息发送至所述容器。
7.根据权利要求4或5所述的服务注册方法,其特征在于,所述根据所述容器信息,生成与所述容器对应的服务注册节点之后,还包括:
在预定时间内判断是否接收到所述容器发送的心跳信息;
当预定时间内没有接收到所述容器发送的心跳信息时,删除与所述容器对应的服务注册节点。
8.一种服务注册装置,其特征在于,包括:
第一获取单元,用于获取处于启动状态的容器对应的容器标识;
所述第一获取单元,还用于根据所述容器标识,获取所述容器的容器信息;其中,所述容器信息包括容器所在宿主机的IP地址和所述容器的网络端口与所述容器所在宿主机的网络端口之间的映射关系;
第一发送单元,用于将所述获取单元获取到的所述容器信息发送至服务注册中心;其中,所述容器信息用于所述服务注册中心生成服务注册节点。
9.根据权利要求8所述的服务注册装置,其特征在于,还包括:
第二发送单元,用于向所述服务注册中心发送服务请求;
第一接收单元,用于接收所述服务注册中心返回的服务注册节点信息;其中,所述服务注册节点信息包括宿主机的IP地址和所述映射关系;
访问单元,用于根据所述接收单元接收的所述服务注册节点信息访问与所述服务注册节点对应的容器。
10.根据权利要求9所述的服务注册装置,其特征在于,还包括:
存储单元,用于将所述服务请求和所述服务注册节点信息存储在配置文件中;其中,所述服务请求与所述服务注册节点信息存在对应关系;
其中,所述访问单元,还包括:
查找子单元,用于在所述配置文件中查找与所述服务请求对应的服务注册节点信息;
访问子单元,当所述查找子单元查找到与所述服务请求对应的服务注册节点信息时,则根据所述服务注册节点信息访问与所述服务注册节点对应的容器;
当所述查找子单元未查找到与所述服务请求对应的服务注册节点信息时,调用所述第二发送单元。
11.一种服务注册装置,其特征在于,包括:
第二接收单元,用于接收容器发送的容器信息;其中,所述容器信息包括容器所在宿主机的IP地址和所述容器的网络端口与所述容器所在宿主机的网络端口之间的映射关系;
注册单元,用于根据所述第一接收单元接收到的所述容器信息,生成与所述容器对应的服务注册节点。
12.根据权利要求11所述的服务注册装置,其特征在于,所述第二接收单元还用于接收容器发送的所述容器的服务名称;
所述注册单元,还包括:
第一注册子单元,用于根据所述容器的服务名称,生成第一级服务注册节点;
第二注册子单元,用于根据所述宿主机的IP地址和所述映射关系,在所述第一级服务节点下生成第二级服务注册节点。
13.根据权利要求11或12所述的服务注册装置,其特征在于,还包括:
第三接收单元,用于接收所述容器发送的服务请求;
第二获取单元,用于获取与所述服务请求对应的服务注册节点信息;
第三发送单元,用于将所述获取单元获取到的所述服务注册节点信息发送至所述容器。
14.根据权利要求11或12所述的服务注册装置,其特征在于,还包括:
判断单元,用于在预定时间内判断是否接收到所述容器发送的心跳信息;
删除单元,用于当所述判断单元判断预定时间内没有接收到所述容器发送的心跳信息时,删除与所述容器对应的服务注册节点。
CN201710400559.7A 2017-05-31 2017-05-31 一种服务注册方法及装置 Active CN107105061B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710400559.7A CN107105061B (zh) 2017-05-31 2017-05-31 一种服务注册方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710400559.7A CN107105061B (zh) 2017-05-31 2017-05-31 一种服务注册方法及装置

Publications (2)

Publication Number Publication Date
CN107105061A true CN107105061A (zh) 2017-08-29
CN107105061B CN107105061B (zh) 2020-09-29

Family

ID=59660840

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710400559.7A Active CN107105061B (zh) 2017-05-31 2017-05-31 一种服务注册方法及装置

Country Status (1)

Country Link
CN (1) CN107105061B (zh)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107635002A (zh) * 2017-09-21 2018-01-26 浪潮软件股份有限公司 一种容器化应用的访问方法及装置
CN108228313A (zh) * 2017-11-30 2018-06-29 中国联合网络通信集团有限公司 下游容器的发现方法及装置
CN108932153A (zh) * 2018-07-06 2018-12-04 杭州涂鸦信息技术有限公司 一种多Docker实例动态分配宿主机端口的方法和装置
CN109151052A (zh) * 2018-09-19 2019-01-04 广州城市信息研究所有限公司 地图服务注册方法、地图服务数据获取方法和装置
CN109302314A (zh) * 2018-09-28 2019-02-01 深信服科技股份有限公司 一种被控节点模拟方法及相关装置
CN110569056A (zh) * 2019-09-11 2019-12-13 北京奇艺世纪科技有限公司 一种规则服务信息的更新方法及装置
CN112383594A (zh) * 2020-10-30 2021-02-19 新华三技术有限公司 基于超级账本Fabric网络的跨主机通信方法及装置
CN112764885A (zh) * 2021-01-28 2021-05-07 北京达佳互联信息技术有限公司 对象的访问方法、装置、电子设备、存储介质和程序产品
CN113051035A (zh) * 2021-03-31 2021-06-29 杭州海康威视系统技术有限公司 一种远程控制方法、装置、系统及宿主机
US20220191304A1 (en) * 2020-12-15 2022-06-16 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers
US11604666B2 (en) 2019-02-22 2023-03-14 Vmware, Inc. Service path generation in load balanced manner
US11659061B2 (en) 2020-01-20 2023-05-23 Vmware, Inc. Method of adjusting service function chains to improve network performance
US11722559B2 (en) 2019-10-30 2023-08-08 Vmware, Inc. Distributed service chain across multiple clouds
US11722367B2 (en) 2014-09-30 2023-08-08 Nicira, Inc. Method and apparatus for providing a service with a plurality of service nodes
US11734043B2 (en) 2020-12-15 2023-08-22 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers
US11743172B2 (en) 2020-04-06 2023-08-29 Vmware, Inc. Using multiple transport mechanisms to provide services at the edge of a network
US11750476B2 (en) 2017-10-29 2023-09-05 Nicira, Inc. Service operation chaining

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9225638B2 (en) 2013-05-09 2015-12-29 Vmware, Inc. Method and system for service switching using service tags
US10805192B2 (en) 2018-03-27 2020-10-13 Nicira, Inc. Detecting failure of layer 2 service using broadcast messages

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105893010A (zh) * 2015-11-17 2016-08-24 乐视云计算有限公司 用于容器部署的主机调度方法及系统
CN105979009A (zh) * 2016-07-06 2016-09-28 乾云众创(北京)信息科技研究院有限公司 一种针对云应用容器的增加负载自动均衡方法
CN106130990A (zh) * 2016-06-29 2016-11-16 中国联合网络通信集团有限公司 容器访问的控制方法及装置
CN106445585A (zh) * 2016-08-30 2017-02-22 中国民生银行股份有限公司 基于容器技术的应用部署方法和系统
US20170093865A1 (en) * 2015-09-30 2017-03-30 Brother Kogyo Kabushiki Kaisha Server Transmitting Device Information Assigned to Service Identification Information

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170093865A1 (en) * 2015-09-30 2017-03-30 Brother Kogyo Kabushiki Kaisha Server Transmitting Device Information Assigned to Service Identification Information
CN105893010A (zh) * 2015-11-17 2016-08-24 乐视云计算有限公司 用于容器部署的主机调度方法及系统
CN106130990A (zh) * 2016-06-29 2016-11-16 中国联合网络通信集团有限公司 容器访问的控制方法及装置
CN105979009A (zh) * 2016-07-06 2016-09-28 乾云众创(北京)信息科技研究院有限公司 一种针对云应用容器的增加负载自动均衡方法
CN106445585A (zh) * 2016-08-30 2017-02-22 中国民生银行股份有限公司 基于容器技术的应用部署方法和系统

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11722367B2 (en) 2014-09-30 2023-08-08 Nicira, Inc. Method and apparatus for providing a service with a plurality of service nodes
CN107635002A (zh) * 2017-09-21 2018-01-26 浪潮软件股份有限公司 一种容器化应用的访问方法及装置
US11750476B2 (en) 2017-10-29 2023-09-05 Nicira, Inc. Service operation chaining
CN108228313A (zh) * 2017-11-30 2018-06-29 中国联合网络通信集团有限公司 下游容器的发现方法及装置
CN108228313B (zh) * 2017-11-30 2021-11-30 中国联合网络通信集团有限公司 下游容器的发现方法及装置
CN108932153A (zh) * 2018-07-06 2018-12-04 杭州涂鸦信息技术有限公司 一种多Docker实例动态分配宿主机端口的方法和装置
CN109151052A (zh) * 2018-09-19 2019-01-04 广州城市信息研究所有限公司 地图服务注册方法、地图服务数据获取方法和装置
CN109151052B (zh) * 2018-09-19 2022-04-19 广州城市信息研究所有限公司 地图服务注册方法、地图服务数据获取方法和装置
CN109302314A (zh) * 2018-09-28 2019-02-01 深信服科技股份有限公司 一种被控节点模拟方法及相关装置
US11604666B2 (en) 2019-02-22 2023-03-14 Vmware, Inc. Service path generation in load balanced manner
US11609781B2 (en) 2019-02-22 2023-03-21 Vmware, Inc. Providing services with guest VM mobility
CN110569056A (zh) * 2019-09-11 2019-12-13 北京奇艺世纪科技有限公司 一种规则服务信息的更新方法及装置
US11722559B2 (en) 2019-10-30 2023-08-08 Vmware, Inc. Distributed service chain across multiple clouds
US11659061B2 (en) 2020-01-20 2023-05-23 Vmware, Inc. Method of adjusting service function chains to improve network performance
US11743172B2 (en) 2020-04-06 2023-08-29 Vmware, Inc. Using multiple transport mechanisms to provide services at the edge of a network
CN112383594B (zh) * 2020-10-30 2022-04-22 新华三技术有限公司 基于超级账本Fabric网络的跨主机通信方法及装置
CN112383594A (zh) * 2020-10-30 2021-02-19 新华三技术有限公司 基于超级账本Fabric网络的跨主机通信方法及装置
US20220191304A1 (en) * 2020-12-15 2022-06-16 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers
US11611625B2 (en) * 2020-12-15 2023-03-21 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers
US11734043B2 (en) 2020-12-15 2023-08-22 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers
CN112764885A (zh) * 2021-01-28 2021-05-07 北京达佳互联信息技术有限公司 对象的访问方法、装置、电子设备、存储介质和程序产品
CN113051035A (zh) * 2021-03-31 2021-06-29 杭州海康威视系统技术有限公司 一种远程控制方法、装置、系统及宿主机
CN113051035B (zh) * 2021-03-31 2024-02-02 杭州海康威视系统技术有限公司 一种远程控制方法、装置、系统及宿主机

Also Published As

Publication number Publication date
CN107105061B (zh) 2020-09-29

Similar Documents

Publication Publication Date Title
CN107105061A (zh) 一种服务注册方法及装置
CN108510389B (zh) 基于区块链的智能合约调用方法、设备及可读存储介质
Day Patterns in network architecture
CN108989372A (zh) 服务发现的方法、注册中心和设备
CN104917851B (zh) 信息处理方法及dns缓存服务器
CN106031116B (zh) 一种ns与vnf的关联方法、装置及系统
CN109600768A (zh) 网络切片的管理方法、设备及系统
CN110071984A (zh) 一种网络标识映射方法和系统以及终端、标识网关
CN109391592A (zh) 网络功能服务的发现方法及设备
CN108965007A (zh) Api网关接口配置更新方法及装置
CN109391504A (zh) 网络切片的部署方法和装置
CN106878343B (zh) 一种云计算环境下提供网络安全即服务的系统
CN106506719B (zh) 命名数据网络中分发策略的配置方法及配置系统
CN104836800B (zh) 一种服务质量控制的方法、设备及系统
CN105554176B (zh) 发送报文的方法、装置和通信系统
CN109343983A (zh) 功能模块间的信息交互方法、装置、设备及存储介质
CN107066340B (zh) 一种基于linux的无中断线速收包、发包方法及设备
CN110213391A (zh) 一种网络协议地址的配置方法及装置
CN107210924A (zh) 用于配置通信系统的方法和设备
US11316916B2 (en) Packet processing method, related device, and computer storage medium
CN107612833A (zh) 一种基于存储系统的uri路由方法及相关装置
CN104488240B (zh) 一种会话管理方法、地址管理方法及相关装置
CN101764836B (zh) 分布式心跳服务器架构及其进程处理方法
CN109639796A (zh) 一种负载均衡实现方法、装置、设备及可读存储介质
CN109819023A (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
CB03 Change of inventor or designer information

Inventor after: Wang Jiye

Inventor after: Yang Jie

Inventor after: Xia Yuandie

Inventor after: Wu Jiasheng

Inventor after: Wang Yufei

Inventor before: Wang Jiye

Inventor before: Yang Jie

Inventor before: Wu Jiasheng

Inventor before: Wang Yufei

CB03 Change of inventor or designer information
TA01 Transfer of patent application right

Effective date of registration: 20171031

Address after: 100192 Beijing city Haidian District Qinghe small Camp Road No. 15 building 710 room research

Applicant after: Beijing China Power Information Technology Co., Ltd.

Applicant after: State Grid Corporation of China

Applicant after: INFORMATION COMMUNICATION BRANCH, STATE GRID JIANGSU ELECTRIC POWER COMPANY

Applicant after: STATE GRID INFORMATION & TELECOMMUNICATION GROUP CO., LTD.

Address before: 100192 Beijing city Haidian District Qinghe small Camp Road No. 15 building 710 room research

Applicant before: Beijing China Power Information Technology Co., Ltd.

Applicant before: STATE GRID INFORMATION & TELECOMMUNICATION GROUP CO., LTD.

Applicant before: State Grid Corporation of China

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20180608

Address after: 100192 room 710, research building 15, Xiaoying East Road, Qinghe, Haidian District, Beijing

Applicant after: Beijing China Power Information Technology Co., Ltd.

Applicant after: STATE GRID INFORMATION & TELECOMMUNICATION GROUP CO., LTD.

Applicant after: Information and communication branch of Jiangsu Electric Power Co., Ltd.

Applicant after: State Grid Corporation of China

Address before: 100192 room 710, research building 15, Xiaoying East Road, Qinghe, Haidian District, Beijing

Applicant before: Beijing China Power Information Technology Co., Ltd.

Applicant before: State Grid Corporation of China

Applicant before: INFORMATION COMMUNICATION BRANCH, STATE GRID JIANGSU ELECTRIC POWER COMPANY

Applicant before: STATE GRID INFORMATION & TELECOMMUNICATION GROUP CO., LTD.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant