CN112637126B - 一种服务注册方法及Pod - Google Patents

一种服务注册方法及Pod Download PDF

Info

Publication number
CN112637126B
CN112637126B CN202011324501.7A CN202011324501A CN112637126B CN 112637126 B CN112637126 B CN 112637126B CN 202011324501 A CN202011324501 A CN 202011324501A CN 112637126 B CN112637126 B CN 112637126B
Authority
CN
China
Prior art keywords
service
micro
pod
target
registration
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.)
Active
Application number
CN202011324501.7A
Other languages
English (en)
Other versions
CN112637126A (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.)
Beijing China Power Information Technology Co Ltd
Original Assignee
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 Beijing China Power Information Technology Co Ltd filed Critical Beijing China Power Information Technology Co Ltd
Priority to CN202011324501.7A priority Critical patent/CN112637126B/zh
Publication of CN112637126A publication Critical patent/CN112637126A/zh
Application granted granted Critical
Publication of CN112637126B publication Critical patent/CN112637126B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1073Registration or de-registration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种服务注册方法及Pod,Agent容器与微服务容器部署在同一个Pod中,进而两个容器能够进行本地通信,以及通过同一IP地址对外通信,保证了微服务的正常通信。进一步,Agent容器中部署有能够调用目标注册中心的服务注册接口的Agent程序,进而微服务能够通过Agent程序间接进行微服务的注册,使得使用非Java语言开发的微服务也能够在Eureka中进行注册,保证使用非Java语言开发的微服务的正常使用。进一步的,本发明中,通过设置Agent程序间接实现微服务的注册,不需要对微服务进行调整,相比于对微服务添加注册程序的方式来说,简化了对微服务的操作。

Description

一种服务注册方法及Pod
技术领域
本发明涉及微服务注册领域,更具体的说,涉及一种服务注册方法及Pod。
背景技术
注册中心Eureka是Netflix中的一个开源框架,用于实现服务注册管理,微服务在Eureka中进行服务注册后,微服务所提供的服务才能够被使用。
Eureka基于java语言开发,并且Eureka所在的平台设置有支持使用Java语言开发的微服务进行服务注册的底层程序,使得使用Java语言开发的微服务通过配置文件就可以实现服务注册。但对于使用非Java语言开发的微服务,Eureka所在的平台并未设置有对应的用于进行服务注册的底层程序,导致使用非Java语言开发的微服务不能在Eureka中注册,进而使得非Java语言开发的微服务不能被正常使用。
发明内容
有鉴于此,本发明提供一种服务注册方法及Pod,以解决使用非Java语言开发的微服务不能在Eureka中注册,使得非Java语言开发的微服务不能被正常使用的问题。
为解决上述技术问题,本发明采用了如下技术方案:
一种服务注册方法,应用于容器组合Pod,所述Pod中部署有Agent容器和微服务容器,所述Agent容器中部署有能够调用目标注册中心的服务注册接口的Agent程序;所述微服务容器部署有使用预设开发语言开发、且需要进行服务注册的微服务;所述Agent容器预先设置有所述微服务对应的服务注册参数;所述微服务容器预先设置有所述Agent程序的Agent代理地址;
所述服务注册方法包括:
所述Agent程序在所述Pod响应启动指令时,获取所述微服务对应的服务注册参数以及所述Pod的Pod地址;所述服务注册参数包括微服务参数以及注册中心地址;
所述Agent程序调用所述服务注册接口,并将所述Pod地址以及所述微服务参数通过所述服务注册接口发送到所述注册中心地址对应的目标注册中心,以使所述目标注册中心保存所述Pod地址以及所述微服务参数,实现所述微服务的注册。
可选地,所述Agent程序将所述Pod地址以及所述微服务参数通过所述服务注册接口发送到所述注册中心地址对应的目标注册中心,以使所述目标注册中心保存所述Pod地址以及所述微服务参数,实现所述微服务的注册之后,还包括:
所述Agent程序每隔固定时间发送心跳信息至所述目标注册中心。
可选地,所述Agent程序将所述Pod地址以及所述微服务参数通过所述服务注册接口发送到所述注册中心地址对应的目标注册中心,以使所述目标注册中心保存所述Pod地址以及所述微服务参数,实现所述微服务的注册之后,还包括:
所述微服务发送服务请求至所述Agent程序;所述服务请求包括请求服务名称、请求服务内容以及访问地址;
所述Agent程序确定出所述请求服务名称对应的目标服务、所述目标服务对应的Pod地址以及所述Pod地址中的服务端口;
所述Agent程序生成包括所述请求服务内容、所述访问地址、所述目标服务对应的Pod地址以及所述Pod地址中的服务端口的服务访问请求,并将所述服务访问请求发送至所述目标服务对应的Pod地址中的服务端口,以使所述目标服务提供所述请求服务内容对应的服务。
可选地,所述Agent程序确定出所述请求服务名称对应的目标服务、所述目标服务对应的Pod地址以及所述Pod地址中的服务端口,包括:
获取在所述目标注册中心注册的服务列表信息;所述服务列表信息包括每一服务的服务名称、所述服务名称对应的Pod地址以及所述Pod地址中的服务端口;
依据所述服务列表信息,确定出所述请求服务名称对应的目标服务、所述目标服务对应的Pod地址以及所述Pod地址中的服务端口。
可选地,获取在所述目标注册中心注册的服务列表信息,包括:
向所述目标注册中心发送服务列表信息获取请求,并接收所述目标注册中心返回的服务列表信息。
一种容器组合Pod,所述Pod中部署有Agent容器和微服务容器,所述Agent容器中部署有能够调用目标注册中心的服务注册接口的Agent程序;所述微服务容器部署有使用预设开发语言开发、且需要进行服务注册的微服务;所述Agent容器预先设置有所述微服务对应的服务注册参数;所述微服务容器预先设置有所述Agent程序的Agent代理地址;
所述Pod被配置成:
所述Agent程序在所述Pod响应启动指令时,获取所述微服务对应的服务注册参数以及所述Pod的Pod地址;所述服务注册参数包括微服务参数以及注册中心地址;
所述Agent程序调用所述服务注册接口,并将所述Pod地址以及所述微服务参数通过所述服务注册接口发送到所述注册中心地址对应的目标注册中心,以使所述目标注册中心保存所述Pod地址以及所述微服务参数,实现所述微服务的注册。
可选地,所述Agent程序还用于:每隔固定时间发送心跳信息至所述目标注册中心。
可选地,所述微服务还用于发送服务请求至所述Agent程序;所述服务请求包括请求服务名称、请求服务内容以及访问地址;
所述Agent程序还用于:确定出所述请求服务名称对应的目标服务、所述目标服务对应的Pod地址以及所述Pod地址中的服务端口;
生成包括所述请求服务内容、所述访问地址、所述目标服务对应的Pod地址以及所述Pod地址中的服务端口的服务访问请求,并将所述服务访问请求发送至所述目标服务对应的Pod地址中的服务端口,以使所述目标服务提供所述请求服务内容对应的服务。
可选地,所述Agent程序用于确定出所述请求服务名称对应的目标服务、所述目标服务对应的Pod地址以及所述Pod地址中的服务端口时,具体用于:
获取在所述目标注册中心注册的服务列表信息;所述服务列表信息包括每一服务的服务名称、所述服务名称对应的Pod地址以及所述Pod地址中的服务端口;
依据所述服务列表信息,确定出所述请求服务名称对应的目标服务、所述目标服务对应的Pod地址以及所述Pod地址中的服务端口。
可选地,所述Agent程序用于获取在所述目标注册中心注册的服务列表信息时,具体用于:
向所述目标注册中心发送服务列表信息获取请求,并接收所述目标注册中心返回的服务列表信息。
相较于现有技术,本发明具有以下有益效果:
本发明提供了一种服务注册方法及Pod,所述Agent容器与微服务容器部署在同一个Pod中,进而两个容器能够进行本地通信,以及通过同一IP地址对外通信,保证了微服务的正常通信。在微服务能够正常通信的基础上,所述Agent容器中部署有能够调用目标注册中心的服务注册接口的Agent程序,进而微服务能够通过Agent程序进行微服务的注册,即本发明通过Agent容器中的Agent程序间接实现微服务的注册,使得使用非Java语言开发的微服务也能够在Eureka中进行注册,保证使用非Java语言开发的微服务的正常使用。进一步的,本发明中,通过设置Agent程序间接实现微服务的注册,不需要对微服务进行调整,相比于对微服务添加注册程序的方式来说,简化了对微服务的操作。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种服务注册方法的方法流程图;
图2为本发明实施例提供的另一种服务注册方法的方法流程图;
图3为本发明实施例提供的再一种服务注册方法的方法流程图;
图4为本发明实施例提供的一种服务注册方法的场景示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
Eureka基于java语言开发,并且Eureka所在的平台设置有支持使用Java语言开发的微服务进行服务注册的底层程序,使得使用Java语言开发的微服务通过配置文件就可以实现服务注册。但对于使用非Java语言开发的微服务,Eureka所在的平台并未设置有对应的用于进行服务注册的底层程序,导致使用非Java语言开发的微服务不能在Eureka中注册,进而使得非Java语言开发的微服务不能被正常使用。
发明人经过研究发现,若是在微服务的程序中添加注册程序,该注册程序能够调用Eureka的服务注册接口,就能够实现微服务的注册。但是这样的话,在微服务的数量较多的情况下,需要对每一个微服务的程序均做改进,操作复杂。
进一步的,发明人发现,若是能够编写一个Agent(代理程序)程序,该Agent程序能够调用目标注册中心的服务注册接口,通过Agent程序来间接实现微服务的注册,就不需要对微服务的程序添加注册程序,操作简单。并且,编写的Agent程序能够适用于多个微服务,能够简化多个微服务的注册操作,实现一次编写,适用多个微服务的技术效果。
具体的,本发明实施例中,所述Agent容器与微服务容器部署在同一个Pod(在Kubernetes集群中,Pod是所有业务类型的基础,它是一个或多个容器的组合)中,进而两个容器能够进行本地通信,以及通过同一IP地址对外通信,保证了微服务的正常通信。在微服务能够正常通信的基础上,所述Agent容器中部署有能够调用目标注册中心的服务注册接口的Agent程序,进而微服务能够通过Agent程序进行微服务的注册,即本发明通过Agent容器中的Agent程序间接实现微服务的注册,使得使用非Java语言开发的微服务也能够在Eureka中进行注册,保证使用非Java语言开发的微服务的正常使用。进一步的,本发明中,通过设置Agent程序间接实现微服务的注册,不需要对微服务进行调整,相比于对微服务添加注册程序的方式来说,简化了对微服务的操作。
在上述内容的基础上,本发明实施例提供了一种服务注册方法。应用于容器组合Pod。在实际应用中,所述Pod中部署有Agent容器和微服务容器,所述Agent容器中部署有能够调用目标注册中心的服务注册接口的Agent程序;所述微服务容器部署有使用预设开发语言开发(如非java语言)、且需要进行服务注册的微服务。
本实施例中,使用Deployment来创建Pod,以及用来管理Pod的生命周期等。然后通过Kubernetes(容器集群管理软件)将Agent程序和微服务部署到同一个Pod中,使得Agent程序和微服务能够本地通信,并且共享网络,使用同一个IP地址对外通信,即将Agent程序和微服务作为了一个整体,微服务实现了服务提供,Agent程序实现了微服务的对外通信。所述微服务容器预先设置有所述Agent程序的Agent代理地址。具体的,在应用容器,即微服务容器里面通过环境变量设置HTTP_PROXY(Agent代理地址)。该Agent代理地址是后续访问微服务的通信地址,Agent通过微服务名称找到Pod地址,通过该Pod地址,能够访问到微服务。其中,环境变量设置过程为:
env:
-name:HTTP_PROXY
value:'127.0.0.1:30000
所述Agent容器预先设置有所述微服务对应的服务注册参数,具体的,在Agent容器里面通过环境变量配置EUREKA_ENDPOINT(注册中心地址)、SERVICE_NAME(服务名称)、SERVICE_PORT(服务端口)。其中,服务名称和服务端口为微服务对应的服务注册参数。通过上述的Agent代理地址访问微服务,微服务通过Pod地址和服务端口对外提供服务。
需要说明的是,一个微服务容器与一个Agent容器设置在一个Pod中,另一个微服务容器与其匹配的Agent容器设置在一个Pod中,即同一个Pod中,仅设置一个微服务容器与一个Agent容器。
在上述内容的基础上,参照图1,本发明中的服务注册方法包括:
S11、所述Agent程序在所述Pod响应启动指令时,获取所述微服务对应的服务注册参数以及所述Pod的Pod地址。
在实际应用中,Pod中设置有程序,程序中设置有启动指令,在Pod第一次启动时,会运行该程序,并响应该程序中的启动指令,此时,Agent程序就会向目标注册中心注册微服务。
具体的,Agent程序获取预先设置有所述微服务对应的服务注册参数,以及为该Pod分配的Pod地址。所述服务注册参数包括上述的微服务参数以及注册中心地址。微服务参数包括上述的服务名称和服务端口,注册中心地址即为上述的注册中心地址。
S12、所述Agent程序调用所述服务注册接口,并将所述Pod地址以及所述微服务参数通过所述服务注册接口发送到所述注册中心地址对应的目标注册中心,以使所述目标注册中心保存所述Pod地址以及所述微服务参数,实现所述微服务的注册。
Agent程序在获取到所述Pod地址以及所述微服务参数之后,会调用服务注册接口,通过该接口将获取的数据发送至注册中心地址对应的目标注册中心,所述目标注册中心保存所述Pod地址以及所述微服务参数,实现所述微服务的注册。并在成功注册后,返回成功注册信息至Agent程序。
更具体的,Agent程序读取环境变量,把Pod地址、服务名称、服务端口注册到注册中心,注册中心保存服务名称与Pod地址和端口关系。在完成注册之后,所述Agent程序每隔固定时间发送心跳信息至所述目标注册中心。
具体的,Agent定时发送心跳到注册中心,使目标注册中心知道应用,即微服务是否正常运行、发送应用运行状态(UP表示运行,DOWN表示未运行)和当前时间。
本实施例中,Eureka本身提供服务注册功能,Agent程序会访问eureka提供接口,简化其他语言程序对接eureka开发。具体的,所述Agent容器与微服务容器部署在同一个Pod中,进而两个容器能够进行本地通信,以及通过同一IP地址对外通信,保证了微服务的正常通信。在微服务能够正常通信的基础上,所述Agent容器中部署有能够调用目标注册中心的服务注册接口的Agent程序,进而微服务能够通过Agent程序进行微服务的注册,即本发明通过Agent容器中的Agent程序间接实现微服务的注册,使得使用非Java语言开发的微服务也能够在Eureka中进行注册,保证使用非Java语言开发的微服务的正常使用。进一步的,本发明中,通过设置Agent程序间接实现微服务的注册,不需要对微服务进行调整,相比于对微服务添加注册程序的方式来说,简化了对微服务的操作。更进一步的,本发明中,编写完Agent程序后,可以将该Agent程序应用到多个微服务中,达到一次编写,多次使用的效果。
上述实施例介绍了微服务的注册过程,在实际应用中,在微服务注册之后,还能够提供服务。具体的,参照图2,在步骤S12之后,还包括:
S21、所述微服务发送服务请求至所述Agent程序。
在实际应用中,一个微服务可能会调用另一个微服务,如一个微服务是购物软件,另一个微服务是订单服务,若是用户点开购物软件后,想要访问自己的订单,此时需要购物软件调用订单服务软件,进而购物软件通过HTTP代理方式访问与该购物软件处于同一Pod中的Agent程序,此时购物软件就会发送服务请求至该Agent程序。
所述服务请求包括请求服务名称、请求服务内容以及访问地址。其中,请求服务名称可以是上述的订单服务,请求服务内容可以是查询历史订单,访问地址是URL中的访问地址。
S22、所述Agent程序确定出所述请求服务名称对应的目标服务、所述目标服务对应的Pod地址以及所述Pod地址中的服务端口。
在实际应用中,Agent程序会从自身存储的服务列表信息中查询得到所述请求服务名称对应的目标服务、所述目标服务对应的Pod地址以及所述Pod地址中的服务端口。
更具体的,参照图3,步骤S22可以包括:
S31、获取在所述目标注册中心注册的服务列表信息。
在实际应用中,Agent程序会向所述目标注册中心发送服务列表信息获取请求,并接收所述目标注册中心返回的服务列表信息。
所述服务列表信息包括每一服务的服务名称、所述服务名称对应的Pod地址以及所述Pod地址中的服务端口。
具体的,目标注册中心在接收到Agent程序发送的微服务的注册信息(微服务对应的服务注册参数以及所述Pod的Pod地址)之后,会将该注册信息保存到服务列表信息中,进而使得服务列表信息中包括各个微服务的注册信息。
Agent程序能够与目标注册中心通信,向所述目标注册中心发送服务列表信息获取请求,目标注册中心接收到服务列表信息获取请求之后,会返回服务列表信息至Agent程序,Agent程序保存该服务列表信息在内存中。
S32、依据所述服务列表信息,确定出所述请求服务名称对应的目标服务、所述目标服务对应的Pod地址以及所述Pod地址中的服务端口。
具体的,服务列表信息中包括各个微服务的注册信息,Agent程序直接依据请求服务名称来查询服务列表信息,得到该请求服务名称对应的目标服务、所述目标服务对应的Pod地址以及所述Pod地址中的服务端口。
S23、所述Agent程序生成包括所述请求服务内容、所述访问地址、所述目标服务对应的Pod地址以及所述Pod地址中的服务端口的服务访问请求,并将所述服务访问请求发送至所述目标服务对应的Pod地址中的服务端口,以使所述目标服务提供所述请求服务内容对应的服务。
Agent程序在获取到所述目标服务对应的Pod地址以及所述Pod地址中的服务端口之后,会生成包括所述请求服务内容、所述访问地址、所述目标服务对应的Pod地址以及所述Pod地址中的服务端口的服务访问请求,即URL请求,然后将该URL请求发送至目标服务对应的Pod地址中的服务端口,通过该服务端口找到微服务,进而使该微服务提供该请求的服务内容对应的服务。仍以上述实施例为例,此时订单服务提供历史订单信息至购物软件,以使购物软件将该历史订单信息反馈给用户。
本实施例中,应用发送请求给Agent,Agent接收请求,Agent转发请求到服务提供者,在实际应用中,服务提供者可能有多个,但每次请求只请求其中一个,则Agent在接收到应用请求之后,根据服务名称找到对应的Pod地址和端口,在多个信息中随机选择一个实例,Agent发送请求到服务提供者。以使服务提供者提供服务。
综上所述,参照图4,Agent容器中的Agent程序能够实现微服务(应用)的注册、发送心跳以及读取服务等功能。
可选地,在上述服务注册方法的实施例的基础上,本发明的另一实施例提供了一种容器组合Pod,所述Pod中部署有Agent容器和微服务容器,所述Agent容器中部署有能够调用目标注册中心的服务注册接口的Agent程序;所述微服务容器部署有使用预设开发语言开发、且需要进行服务注册的微服务;所述Agent容器预先设置有所述微服务对应的服务注册参数;所述微服务容器预先设置有所述Agent程序的Agent代理地址;
所述Pod被配置成:
所述Agent程序在所述Pod响应启动指令时,获取所述微服务对应的服务注册参数以及所述Pod的Pod地址;所述服务注册参数包括微服务参数以及注册中心地址;
所述Agent程序调用所述服务注册接口,并将所述Pod地址以及所述微服务参数通过所述服务注册接口发送到所述注册中心地址对应的目标注册中心,以使所述目标注册中心保存所述Pod地址以及所述微服务参数,实现所述微服务的注册。
进一步,所述Agent程序还用于:每隔固定时间发送心跳信息至所述目标注册中心。
进一步,所述微服务还用于发送服务请求至所述Agent程序;所述服务请求包括请求服务名称、请求服务内容以及访问地址;
所述Agent程序还用于:确定出所述请求服务名称对应的目标服务、所述目标服务对应的Pod地址以及所述Pod地址中的服务端口;
生成包括所述请求服务内容、所述访问地址、所述目标服务对应的Pod地址以及所述Pod地址中的服务端口的服务访问请求,并将所述服务访问请求发送至所述目标服务对应的Pod地址中的服务端口,以使所述目标服务提供所述请求服务内容对应的服务。
进一步,所述Agent程序用于确定出所述请求服务名称对应的目标服务、所述目标服务对应的Pod地址以及所述Pod地址中的服务端口时,具体用于:
获取在所述目标注册中心注册的服务列表信息;所述服务列表信息包括每一服务的服务名称、所述服务名称对应的Pod地址以及所述Pod地址中的服务端口;
依据所述服务列表信息,确定出所述请求服务名称对应的目标服务、所述目标服务对应的Pod地址以及所述Pod地址中的服务端口。
进一步,所述Agent程序用于获取在所述目标注册中心注册的服务列表信息时,具体用于:
向所述目标注册中心发送服务列表信息获取请求,并接收所述目标注册中心返回的服务列表信息。
所述Agent容器与微服务容器部署在同一个Pod中,进而两个容器能够进行本地通信,以及通过同一IP地址对外通信,保证了微服务的正常通信。在微服务能够正常通信的基础上,所述Agent容器中部署有能够调用目标注册中心的服务注册接口的Agent程序,进而微服务能够通过Agent程序进行微服务的注册,即本发明通过Agent容器中的Agent程序间接实现微服务的注册,使得使用非Java语言开发的微服务也能够在Eureka中进行注册,保证使用非Java语言开发的微服务的正常使用。进一步的,本发明中,通过设置Agent程序间接实现微服务的注册,不需要对微服务进行调整,相比于对微服务添加注册程序的方式来说,简化了对微服务的操作。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (8)

1.一种服务注册方法,其特征在于,应用于容器组合Pod,所述Pod中部署有Agent容器和微服务容器,所述Agent容器中部署有能够调用目标注册中心的服务注册接口的Agent程序;所述微服务容器部署有使用预设开发语言开发、且需要进行服务注册的微服务;所述Agent容器预先设置有所述微服务对应的服务注册参数;所述微服务容器预先设置有所述Agent程序的Agent代理地址;
所述服务注册方法包括:
所述Agent程序在所述Pod响应启动指令时,获取所述微服务对应的服务注册参数以及所述Pod的Pod地址;所述服务注册参数包括微服务参数以及注册中心地址;
所述Agent程序调用所述服务注册接口,并将所述Pod地址以及所述微服务参数通过所述服务注册接口发送到所述注册中心地址对应的目标注册中心,以使所述目标注册中心保存所述Pod地址以及所述微服务参数,实现所述微服务的注册;
所述微服务发送服务请求至所述Agent程序;所述服务请求包括请求服务名称、请求服务内容以及访问地址;
所述Agent程序确定出所述请求服务名称对应的目标服务、所述目标服务对应的Pod地址以及所述Pod地址中的服务端口;
所述Agent程序生成包括所述请求服务内容、所述访问地址、所述目标服务对应的Pod地址以及所述Pod地址中的服务端口的服务访问请求,并将所述服务访问请求发送至所述目标服务对应的Pod地址中的服务端口,以使所述目标服务提供所述请求服务内容对应的服务。
2.根据权利要求1所述的服务注册方法,其特征在于,所述Agent程序将所述Pod地址以及所述微服务参数通过所述服务注册接口发送到所述注册中心地址对应的目标注册中心,以使所述目标注册中心保存所述Pod地址以及所述微服务参数,实现所述微服务的注册之后,还包括:
所述Agent程序每隔固定时间发送心跳信息至所述目标注册中心。
3.根据权利要求1所述的服务注册方法,其特征在于,所述Agent程序确定出所述请求服务名称对应的目标服务、所述目标服务对应的Pod地址以及所述Pod地址中的服务端口,包括:
获取在所述目标注册中心注册的服务列表信息;所述服务列表信息包括每一服务的服务名称、所述服务名称对应的Pod地址以及所述Pod地址中的服务端口;
依据所述服务列表信息,确定出所述请求服务名称对应的目标服务、所述目标服务对应的Pod地址以及所述Pod地址中的服务端口。
4.根据权利要求3所述的服务注册方法,其特征在于,获取在所述目标注册中心注册的服务列表信息,包括:
向所述目标注册中心发送服务列表信息获取请求,并接收所述目标注册中心返回的服务列表信息。
5.一种容器组合Pod,其特征在于,所述Pod中部署有Agent容器和微服务容器,所述Agent容器中部署有能够调用目标注册中心的服务注册接口的Agent程序;所述微服务容器部署有使用预设开发语言开发、且需要进行服务注册的微服务;所述Agent容器预先设置有所述微服务对应的服务注册参数;所述微服务容器预先设置有所述Agent程序的Agent代理地址;
所述Pod被配置成:
所述Agent程序在所述Pod响应启动指令时,获取所述微服务对应的服务注册参数以及所述Pod的Pod地址;所述服务注册参数包括微服务参数以及注册中心地址;
所述Agent程序调用所述服务注册接口,并将所述Pod地址以及所述微服务参数通过所述服务注册接口发送到所述注册中心地址对应的目标注册中心,以使所述目标注册中心保存所述Pod地址以及所述微服务参数,实现所述微服务的注册;
所述微服务还用于发送服务请求至所述Agent程序;所述服务请求包括请求服务名称、请求服务内容以及访问地址;
所述Agent程序还用于:确定出所述请求服务名称对应的目标服务、所述目标服务对应的Pod地址以及所述Pod地址中的服务端口;
生成包括所述请求服务内容、所述访问地址、所述目标服务对应的Pod地址以及所述Pod地址中的服务端口的服务访问请求,并将所述服务访问请求发送至所述目标服务对应的Pod地址中的服务端口,以使所述目标服务提供所述请求服务内容对应的服务。
6.根据权利要求5所述的Pod,其特征在于,所述Agent程序还用于:每隔固定时间发送心跳信息至所述目标注册中心。
7.根据权利要求5所述的Pod,其特征在于,所述Agent程序用于确定出所述请求服务名称对应的目标服务、所述目标服务对应的Pod地址以及所述Pod地址中的服务端口时,具体用于:
获取在所述目标注册中心注册的服务列表信息;所述服务列表信息包括每一服务的服务名称、所述服务名称对应的Pod地址以及所述Pod地址中的服务端口;
依据所述服务列表信息,确定出所述请求服务名称对应的目标服务、所述目标服务对应的Pod地址以及所述Pod地址中的服务端口。
8.根据权利要求7所述的Pod,其特征在于,所述Agent程序用于获取在所述目标注册中心注册的服务列表信息时,具体用于:
向所述目标注册中心发送服务列表信息获取请求,并接收所述目标注册中心返回的服务列表信息。
CN202011324501.7A 2020-11-23 2020-11-23 一种服务注册方法及Pod Active CN112637126B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011324501.7A CN112637126B (zh) 2020-11-23 2020-11-23 一种服务注册方法及Pod

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011324501.7A CN112637126B (zh) 2020-11-23 2020-11-23 一种服务注册方法及Pod

Publications (2)

Publication Number Publication Date
CN112637126A CN112637126A (zh) 2021-04-09
CN112637126B true CN112637126B (zh) 2023-04-07

Family

ID=75303688

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011324501.7A Active CN112637126B (zh) 2020-11-23 2020-11-23 一种服务注册方法及Pod

Country Status (1)

Country Link
CN (1) CN112637126B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113938520A (zh) * 2021-08-31 2022-01-14 阿里巴巴(中国)有限公司 一种服务注册方法、设备及存储介质
CN115242625B (zh) * 2022-06-24 2024-03-19 平安银行股份有限公司 服务部署方法、装置、计算机设备及可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105515759A (zh) * 2015-11-27 2016-04-20 国网信息通信产业集团有限公司 一种微服务注册方法及***
CN110134455A (zh) * 2019-04-12 2019-08-16 平安医疗健康管理股份有限公司 一种应用管理***及方法
CN110990081A (zh) * 2019-12-10 2020-04-10 北京懿医云科技有限公司 微服务注册、发现方法及装置、存储介质及电子设备
CN111131193A (zh) * 2019-12-10 2020-05-08 四川新网银行股份有限公司 支持多协议异构非代码侵入的分布式服务治理的方法
CN111917838A (zh) * 2020-07-14 2020-11-10 浙江大华技术股份有限公司 基于微服务的处理方法及装置、存储介质、电子装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016192866A1 (en) * 2015-06-03 2016-12-08 Telefonaktiebolaget Lm Ericsson (Publ) Implanted agent within a first service container for enabling a reverse proxy on a second container
US11057487B2 (en) * 2019-05-17 2021-07-06 Citrix Systems, Inc. Systems and methods for recording metadata about microservices for requests to the microservices

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105515759A (zh) * 2015-11-27 2016-04-20 国网信息通信产业集团有限公司 一种微服务注册方法及***
CN110134455A (zh) * 2019-04-12 2019-08-16 平安医疗健康管理股份有限公司 一种应用管理***及方法
CN110990081A (zh) * 2019-12-10 2020-04-10 北京懿医云科技有限公司 微服务注册、发现方法及装置、存储介质及电子设备
CN111131193A (zh) * 2019-12-10 2020-05-08 四川新网银行股份有限公司 支持多协议异构非代码侵入的分布式服务治理的方法
CN111917838A (zh) * 2020-07-14 2020-11-10 浙江大华技术股份有限公司 基于微服务的处理方法及装置、存储介质、电子装置

Also Published As

Publication number Publication date
CN112637126A (zh) 2021-04-09

Similar Documents

Publication Publication Date Title
US11363105B2 (en) Determining a target service based on a service discovery request
CN108510389B (zh) 基于区块链的智能合约调用方法、设备及可读存储介质
CN111052711B (zh) 发现由网络存储库功能提供的服务的方法
CN107948135B (zh) 一种支持多种api协议的数据处理方法及装置
US20060190608A1 (en) Method for the obtaining of deployment components to electronic devices
CN111034238B (zh) 获得关于电信网络中的订户的用户订阅数据的方法
CN108667866B (zh) 一种基于api智能适配的请求处理方法及装置
CN112637126B (zh) 一种服务注册方法及Pod
CN106230977B (zh) 一种客户端功能加载方法、***、客户端和服务端
CN113645304A (zh) 数据服务处理方法及相关设备
CN111641676A (zh) 一种第三方云监控服务的构建方法及装置
CN111414261B (zh) 一种分布式***的跨网络调用方法、装置及相关组件
WO2021093671A1 (zh) 任务处理方法、***、装置、设备及计算机可读存储介质
CN114006915B (zh) 资源请求方法、装置、设备及计算机可读存储介质
WO2009062396A1 (fr) Procédé d'accès à des ressources et système d'accès à des ressources
CN115361279A (zh) 配置数据的更新方法、装置、电子设备及计算机可读介质
US20040199643A1 (en) Distributed service component systems
JP4532238B2 (ja) オンデマンドサービス提供システム
KR20050032156A (ko) 이동 통신 단말에서의 다운로드 디스크립터 처리 방법 및이를 위한 이동 통신 단말
CN113347284B (zh) 资源访问方法、资源访问装置、电子设备及存储介质
CN116074386B (zh) 服务调用方法及装置、服务注册方法及装置
CN110995798B (zh) 一种用于功能手机网络应用的数据通信方法和***
CN114979269A (zh) 接受管理端管理Web中间件的方法、存储介质和***
CN117201311A (zh) 信息的优化方法、装置及电子设备
CN116346775A (zh) Andriod***中网络请求的方法及装置、电子设备

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20211111

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

Applicant after: BEIJING CHINA POWER INFORMATION TECHNOLOGY Co.,Ltd.

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

Applicant before: BEIJING CHINA POWER INFORMATION TECHNOLOGY Co.,Ltd.

Applicant before: STATE GRID INFORMATION & TELECOMMUNICATION GROUP Co.,Ltd.

GR01 Patent grant
GR01 Patent grant