CN114125051B - 一种动态服务发现的代理方法及装置 - Google Patents

一种动态服务发现的代理方法及装置 Download PDF

Info

Publication number
CN114125051B
CN114125051B CN202210090441.XA CN202210090441A CN114125051B CN 114125051 B CN114125051 B CN 114125051B CN 202210090441 A CN202210090441 A CN 202210090441A CN 114125051 B CN114125051 B CN 114125051B
Authority
CN
China
Prior art keywords
service
name
address
domain name
dynamic
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
CN202210090441.XA
Other languages
English (en)
Other versions
CN114125051A (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.)
Feihu Information Technology Tianjin Co Ltd
Original Assignee
Feihu Information Technology Tianjin 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 Feihu Information Technology Tianjin Co Ltd filed Critical Feihu Information Technology Tianjin Co Ltd
Priority to CN202210090441.XA priority Critical patent/CN114125051B/zh
Publication of CN114125051A publication Critical patent/CN114125051A/zh
Application granted granted Critical
Publication of CN114125051B publication Critical patent/CN114125051B/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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Abstract

本申请公开了一种动态服务发现的代理方法及装置,获取HTTP请求,HTTP请求为获取动态服务发现的请求,从HTTP请求中获取域名,域名为被代理服务的域名,基于预先配置的映射关系,确定域名对应的服务名称,映射关系用于表征域名与服务名称之间的对应关系,获取服务名称对应的服务实例的IP地址,服务实例的IP地址为动态IP地址,服务实例的IP地址用于实现动态服务发现。通过上述方案,基于被代理服务的域名与服务名称的映射关系来获取域名对应的服务名称,通过Eureka注册中心得到服务实例的动态IP地址,并通过服务实例的动态IP地址实现动态服务发现。此外,通过Ribbon装置将网关请求转发至服务实例,使得通过Ribbon装置实现被代理服务的负载均衡。

Description

一种动态服务发现的代理方法及装置
技术领域
本申请涉及计算机技术领域,更具体地说,涉及一种动态服务发现的代理方法及装置。
背景技术
微服务是一种由域名到服务实例的网络互联协议(Internet Protocol,IP)地址的映射机制,可以实现相对静态的服务发现。
服务发现是指客户端自动发现服务实例地址列表的能力,是微服务框架需要具备的关键能力,借助于自动化的服务发现,微服务之间可以在无需感知对端部署位置与IP地址的情况下实现通信。
微服务的主流部署形态之一是使用Kubernetes容器编排系统,在部署微服务过程中,服务实例以Pod的形式在集群内部进行动态调度。Pod为Kubernetes容器编排系统的基本调度单元。Kubernetes中的每个Pod都被分配一个唯一的在集群内的IP地址这样就可以允许应用程序使用同一端口,而避免了发生冲突的问题。因而服务实例的IP地址也是不断变化的。因此,如何在服务实例的IP地址变化后进行服务发现的动态更新,成为本领域技术人员亟待解决的问题。
发明内容
有鉴于此,本申请公开了一种动态服务发现的代理方法及装置,旨在通过Eureka注册中心得到服务实例的IP地址,基于服务实例的IP地址实现动态服务发现和通过Ribbon装置实现被代理服务的负载均衡。
为了实现上述目的,其公开的技术方案如下:
本申请第一方面公开了一种动态服务发现的代理方法,所述方法包括:
获取HTTP请求;所述HTTP请求为获取动态服务发现的请求;
从所述HTTP请求中获取域名;所述域名为被代理服务的域名;
基于预先配置的映射关系,确定所述域名对应的服务名称;所述映射关系用于表征所述域名与所述服务名称之间的对应关系;
获取所述服务名称对应的服务实例的IP地址;所述服务实例的IP地址为动态IP地址;所述服务实例的IP地址用于实现动态服务发现。
优选的,所述从所述HTTP请求中获取域名,包括:
解析所述HTTP请求,得到所述HTTP请求对应的URL;
从所述URL中获取域名。
优选的,配置映射关系的过程,包括:
配置被代理服务的域名和配置被代理服务的服务名称;
基于配置后的被代理服务的域名和配置后的被代理服务的服务名称,确定配置后的映射关系,并将所述映射关系存储至Eureka注册中心。
优选的,所述获取所述服务名称对应的服务实例的IP地址,包括:
通过所述Eureka注册中心,获取所述服务名称对应的服务实例的IP地址。
优选的,在所述基于预先配置的映射关系,确定所述域名对应的服务名称之后,还包括:
通过预设标识主键将所述服务名称存储至网关请求的请求上下文中。
优选的,在所述获取所述服务名称对应的服务实例的IP地址之后,还包括:
通过Ribbon装置将所述网关请求转发至所述服务实例。
本申请第二方面公开了一种动态服务发现的代理装置,所述装置包括:
第一获取单元,用于获取HTTP请求;所述HTTP请求为获取动态服务发现的请求;
第二获取单元,用于从所述HTTP请求中获取域名;所述域名为被代理服务的域名;
确定单元,用于基于预先配置的映射关系,确定所述域名对应的服务名称;所述映射关系用于表征所述域名与所述服务名称之间的对应关系;
第三获取单元,用于获取所述服务名称对应的服务实例的IP地址;所述服务实例的IP地址为动态IP地址;所述服务实例的IP地址用于实现动态服务发现。
优选的,所述第二获取单元,包括:
解析模块,用于解析所述HTTP请求,得到所述HTTP请求对应的URL;
获取模块,用于从所述URL中获取域名。
优选的,配置映射关系的过程的确定单元,包括:
配置模块,用于配置被代理服务的域名和配置被代理服务的服务名称;
确定模块,用于基于配置后的被代理服务的域名和配置后的被代理服务的服务名称,确定配置后的映射关系,并将所述映射关系存储至Eureka注册中心。
优选的,所述第三获取单元,具体用于:
通过Eureka注册中心,获取所述服务名称对应的服务实例的IP地址。
经由上述技术方案可知,本申请公开了一种动态服务发现的代理方法及装置,获取HTTP请求,HTTP请求为获取动态服务发现的请求,从HTTP请求中获取域名,域名为被代理服务的域名,基于预先配置的映射关系,确定域名对应的服务名称,映射关系用于表征域名与服务名称之间的对应关系,获取服务名称对应的服务实例的IP地址,服务实例的IP地址为动态IP地址,服务实例的IP地址用于实现动态服务发现。通过上述方案,基于被代理服务的域名与服务名称的映射关系来获取域名对应的服务名称,通过Eureka注册中心得到服务实例的动态IP地址,并通过服务实例的动态IP地址实现动态服务发现。此外,通过Ribbon装置将网关请求转发至服务实例,使得通过Ribbon装置实现被代理服务的负载均衡。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例公开的一种动态服务发现的代理系统的架构图;
图2为本申请实施例公开的动态服务发现的代理系统对请求响应代理处理的示意图;
图3为本申请实施例公开的一种动态服务发现的代理方法的流程示意图;
图4为本申请实施例公开的Apollo配置中心与本地应用容器的交互示意图;
图5为本申请实施例公开的auth-gateway项目配置页面的示意图;
图6为本申请实施例公开的一种动态服务发现的代理装置的结构示意图;
图7为本申请实施例公开的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
由背景技术可知,微服务的主流部署形态之一是使用Kubernetes容器编排系统,在部署微服务过程中,服务实例以Pod的形式在集群内部进行动态调度,因而服务实例的IP地址也是不断变化的,这给基于域名的服务发现带来了一些难题。因此,如何在服务实例的IP地址变化后进行服务发现的动态更新,成为本领域技术人员亟待解决的问题。
为了解决上述问题,本申请实施例公开了一种动态服务发现的代理方法及装置。基于被代理服务的域名与服务名称的映射关系来获取域名对应的服务名称,通过Eureka注册中心得到服务实例的IP地址,基于服务实例的IP地址实现动态服务发现。此外,通过Ribbon装置将网关请求转发至服务实例,使得通过Ribbon装置实现被代理服务的负载均衡。具体实现方式通过下述实施例进行说明。
以下首先介绍本申请的一种动态服务发现的代理方法及装置所适用的动态服务发现的代理系统的架构图,具体参考图1所示,该动态服务发现的代理系统包括DomainPreLocation Filter过滤器11、Ribbon Routing Filter路由过滤器12、客户端13和Apollo配置中心14。
在执行动态服务发现的代理过程之前,需要通过Apollo配置中心14配置域名和服务名称之间的映射关系。具体通过Apollo配置中心14配置域名和服务名称之间的映射关系的过程如下:
Domain PreLocation Filter过滤器11从Apollo配置中心14配置被代理服务的域名。其中,Domain PreLocation Filter过滤器11将被代理服务的域名解析配置为动态服务发现的代理装置的固定IP地址。
Ribbon Routing Filter路由过滤器12从Apollo配置中心14配置被代理服务的服务名称。其中,服务名称用于表征服务实例的IP地址的标识。
增加完上述两项配置后,点击发布按钮,Apollo配置中心14会将配置推送并更新至动态服务发现的代理系统。
动态服务发现的代理系统对超文本传输协议(Hyper Text Transfer Protocol,HTTP)请求响应代理处理的过程是通过Zuul过滤器槽链中的Domain PreLocation Filter过滤器11和Ribbon Routing Filter路由过滤器12来实现的,整体处理流程如图2所示,图2示出了动态服务发现的代理系统对请求响应代理处理的示意图。
图2中,"pre" filters为预处理过滤器,用于路由前相关业务逻辑的处理,"routing" filter(s)为路由过滤器,用于路由请求到被代理的服务,"post" filters为后置处理过滤器,用于收到被代理服务的响应后相关业务逻辑的处理,"custom" filters为自定义的预处理过滤器,属于预处理过滤器的一部分,"error" filters为全局错误处理过滤器,用于处理上述过滤器执行过程中的错误,origin server为被代理的服务实例。
Domain PreLocation Filter过滤器11属于图2中的"custom" filters中的一个,Ribbon Routing Filter路由过滤器12属于图2中的"routing" filter(s)中的一个。
基于配置后的被代理服务的域名和配置后的被代理服务的服务名称,DomainPreLocation Filter过滤器11确定配置后的映射关系,并将映射关系存储至Eureka注册中心。
其中,Eureka注册中心为一个开源的用于服务注册和服务发现的装置。
Domain PreLocation Filter过滤器11获取HTTP请求;HTTP请求为获取动态服务发现的请求。
其中,服务发现是指客户端13自动发现服务实例地址列表的能力,是微服务框架需要具备的关键能力,借助于自动化的服务发现,微服务之间可以在无需感知对端部署位置与IP地址的情况下实现通信。
Domain PreLocation Filter过滤器11解析HTTP请求,得到HTTP请求对应的统一资源定位器(Uniform Resource Locator,URL),并从URL中获取域名。
其中,域名是由一串用点分隔的字符组成的互联网上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位。
被代理服务可以是域名系统(Domain Name System,DNS)服务等。DNS服务是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。
Domain PreLocation Filter过滤器11通过预设标识主键将服务名称存储至网关请求的请求上下文中。
其中,网关请求为应用程序网关Zuul的请求,网关请求提供动态路由、监控、弹性、安全性等功能。
Ribbon Routing Filter路由过滤器12通过预设标识主键为查询条件进行查找,基于预先配置的映射关系,确定域名对应的服务名称;映射关系用于表征域名与服务名称之间的对应关系。
其中,预设标识主键是以“serviceId”为标识的主键。
服务名称用于表征服务实例的IP地址的标识,即映射到具体服务实例IP地址的标识。
Ribbon Routing Filter路由过滤器12从Eureka注册中心获取服务名称对应的服务实例的IP地址;服务实例的IP地址为动态IP地址;服务实例的IP地址用于实现动态服务发现。
Ribbon Routing Filter路由过滤器12通过Ribbon装置将网关请求转发至服务实例。
当Ribbon Routing Filter路由过滤器12接收到服务实例的响应数据时,RibbonRouting Filter路由过滤器12将响应数据发送至客户端13。
客户端13接收到响应数据后,通过服务实例的IP地址实现动态服务发现。
其中,客户端13只需要知得到域名,由于域名对应的服务实例的IP地址是动态变化的,通过动态变化的IP地址来实现动态服务发现。
本申请实施例中,基于被代理服务的域名与服务名称的映射关系来获取域名对应的服务名称,通过Eureka注册中心得到服务实例的动态IP地址,并通过服务实例的动态IP地址实现动态服务发现。此外,通过Ribbon装置将网关请求转发至服务实例,使得通过Ribbon装置实现被代理服务的负载均衡。
参考图3所示,为本申请实施例公开的一种动态服务发现的代理方法的流程示意图,该动态服务发现的代理方法主要包括如下步骤:
S301:获取HTTP请求;HTTP请求为获取动态服务发现的请求。
在S301中,通过Domain PreLocation Filter过滤器获取HTTP请求。
其中,服务发现是指客户端自动发现服务实例地址列表的能力,是微服务框架需要具备的关键能力,借助于自动化的服务发现,微服务之间可以在无需感知对端部署位置与IP地址的情况下实现通信。
S302:从HTTP请求中获取域名;域名为被代理服务的域名。
在S302中,解析HTTP请求,得到HTTP请求对应的URL,并从URL中获取域名。
其中,域名是由一串用点分隔的字符组成的互联网上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位。
被代理服务可以是DNS服务等。DNS服务是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够更方便地访问互联网。
S303:基于预先配置的映射关系,确定域名对应的服务名称;映射关系用于表征域名与服务名称之间的对应关系。
在S303中,通过Apollo配置中心配置域名与服务名称之间的映射关系。
其中,Apollo配置中心为一个开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。
使用Apollo配置中心可以实现应用配置的动态修改和推送更新,无需重启被代理服务,主要原理如图4所示,图4示出了Apollo配置中心与本地应用容器的交互示意图。
图4中,技术人员通过修改配置/发布配置至本地应用容器的Apollo配置中心。
Apollo配置中心将配置更新推送至Apollo客户端。Apollo客户端中设置内存缓存。
Apollo客户端将获取到的配置通知、更新通知发送至应用程序。
Apollo客户端通过sync同步操作向本地文件缓存同步Apollo配置中心的配置内容。
其中,sync是用来展示Apollo配置内容的存储设计方案,是保证本方案高可用的一个支撑条件。
Apollo客户端定时从Apollo配置中心拉取配置。
具体配置映射关系的过程结合图5进行说明,图5为auth-gateway项目配置页面的示意图。图5仅为示例图。
图5中,auth-gateway项目配置页面包括环境列表功能、项目信息功能、管理项目功能、添加集群功能、添加命名空间Namespace和应用application等。
应用application包括表格、文本、更改历史、实例列表、过滤配置、同步配置、比较配置和新增配置等功能。
表格内容包括发布状态、Key配置的键、Value配置的值、备注、最后修改人、最后修改时间、操作等内容。
打开Apollo配置中心,找到auth-gateway项目配置页面。点击新增按钮,增加如下两个配置(zuul.domain.locations.{{proxied-app}}.domain和zuul.domain.locations.{{proxied-app}}.service-id)。
zuul.domain.locations.{{proxied-app}}.domain为配置被代理服务的域名。其中,{{proxied-app}}表示被代理服务的逻辑名称。
zuul.domain.locations.{{proxied-app}}.service-id为配置被代理服务的服务名称。
其中,服务名称是一种可以映射到具体服务实例IP地址的标识。
IP地址又称为网际协议地址、互联网协议地址。是网际协议中用于标识发送或接收数据报的设备的一串数字。
基于配置后的被代理服务的域名和配置后的被代理服务的服务名称,确定配置后的映射关系,并将映射关系存储至Eureka注册中心。
其中,被代理服务被Kubernetes容器编排系统调度后,会自动上报被代理服务自己的服务名称和IP地址的对应关系到Eureka注册中心。
被代理服务可以是DNS服务等。DNS服务是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。
Kubernetes容器编排系统是用于自动部署、扩展和管理容器化应用程序的开源系统。
Eureka注册中心用于实现服务注册和服务发现。
在基于预先配置的映射关系,确定域名对应的服务名称之后,通过预设标识主键将服务名称存储至网关请求的请求上下文中。
其中,网关请求为应用程序网关Zuul的请求,网关请求提供动态路由、监控、弹性、安全性等功能。
请求上下文是指应用程序网关Zuul的请求响应处理过程中与当前处理线程相关联的一个映射。
S304:获取服务名称对应的服务实例的IP地址;服务实例的IP地址为动态IP地址;服务实例的IP地址用于实现动态服务发现。
在S304中,通过Eureka注册中心,获取服务名称对应的服务实例的IP地址。
在获取服务名称对应的服务实例的IP地址之后,通过Ribbon装置将网关请求转发至服务实例。
其中,Ribbon装置为客户端的进程间通信(Inter Process Communication,IPC)装置,主要提供负载均衡、容错等功能。
负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。负载均衡(Load Balance)其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。
服务实例为一种对外提供某种服务的运行单元,具有一个或者多个IP地址。
当Ribbon Routing Filter路由过滤器12接收到服务实例的响应数据时,RibbonRouting Filter路由过滤器12将响应数据发送至客户端,客户端接收到响应数据后,通过服务实例的IP地址实现动态服务发现。
客户端只需要知得到域名,由于域名对应的服务实例的IP地址是动态变化的,通过动态变化的IP地址来实现动态服务发现。
本方案通过代理的方式,利用Eureka进行动态服务发现,利用Ribbon实现负载均衡,通过适配使用Kubernetes这个容器编排系统和动态IP地址,并且保证较低的运维成本,由于解耦了客户端的配置与被代理服务的IP地址变化,可以降低配置失败率。
本申请实施例中,基于被代理服务的域名与服务名称的映射关系来获取域名对应的服务名称,通过Eureka注册中心得到服务实例的动态IP地址,并通过服务实例的动态IP地址实现动态服务发现。此外,通过Ribbon装置将网关请求转发至服务实例,使得通过Ribbon装置实现被代理服务的负载均衡。
基于上述实施例图3公开的一种动态服务发现的代理方法,本申请实施例还对应公开了一种动态服务发现的代理装置,如图6所示,该动态服务发现的代理装置包括第一获取单元601、第二获取单元602、确定单元603和第三获取单元604。
第一获取单元601,用于获取HTTP请求;HTTP请求为获取动态服务发现的请求。
第二获取单元602从HTTP请求中获取域名;域名为被代理服务的域名。
确定单元603,用于基于预先配置的映射关系,确定域名对应的服务名称;映射关系用于表征域名与服务名称之间的对应关系。
第三获取单元604,用于获取服务名称对应的服务实例的IP地址;服务实例的IP地址为动态IP地址;服务实例的IP地址用于实现动态服务发现。
进一步的,第二获取单元602包括解析模块和获取模块。
解析模块,用于解析HTTP请求,得到HTTP请求对应的URL。
获取模块,用于从URL中获取域名。
进一步的,配置映射关系的过程的确定单元603包括配置模块和确定模块。
配置模块,用于配置被代理服务的域名和配置被代理服务的服务名称。
确定模块,用于基于配置后的被代理服务的域名和配置后的被代理服务的服务名称,确定配置后的映射关系,并将映射关系存储至Eureka注册中心。
进一步的,第三获取单元604,具体用于通过Eureka注册中心,获取服务名称对应的服务实例的IP地址。
进一步的,动态服务发现的代理装置还包括存储单元。
存储单元,用于通过预设标识主键将服务名称存储至网关请求的请求上下文中。
进一步的,动态服务发现的代理装置还包括转发单元。
转发单元,用于通过Ribbon装置将网关请求转发至所述服务实例。
本申请实施例中,基于被代理服务的域名与服务名称的映射关系来获取域名对应的服务名称,通过Eureka注册中心得到服务实例的动态IP地址,并通过服务实例的动态IP地址实现动态服务发现。此外,通过Ribbon装置将网关请求转发至服务实例,使得通过Ribbon装置实现被代理服务的负载均衡。
本申请实施例还提供了一种存储介质,存储介质包括存储的指令,其中,在指令运行时控制存储介质所在的设备执行上述动态服务发现的代理方法。
本申请实施例还提供了一种电子设备,其结构示意图如图7所示,具体包括存储器701,以及一个或者一个以上的指令702,其中一个或者一个以上指令702存储于存储器701中,且经配置以由一个或者一个以上处理器703执行一个或者一个以上指令702执行上述动态服务发现的代理方法。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请各实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (7)

1.一种动态服务发现的代理方法,其特征在于,所述方法包括:
获取HTTP请求;所述HTTP请求为获取动态服务发现的请求;
从所述HTTP请求中获取域名;所述域名为被代理服务的域名;
基于预先配置的映射关系,确定所述域名对应的服务名称;所述映射关系用于表征所述域名与所述服务名称之间的对应关系;
通过预设标识主键将所述服务名称存储至网关请求的请求上下文中,所述请求上下文是指应用程序网关的请求响应处理过程中与当前处理线程相关联的一个映射;
获取所述服务名称对应的服务实例的IP地址;所述服务实例的IP地址为动态IP地址;所述服务实例的IP地址用于实现动态服务发现;
其中,使用Apollo配置中心实现应用配置的动态修改和推送更新,通过Apollo配置中心配置映射关系的过程,包括:
配置被代理服务的域名和配置被代理服务的服务名称,所述服务名称用于表征服务实例的IP地址的标识;
基于配置后的被代理服务的域名和配置后的被代理服务的服务名称,确定配置后的映射关系,并将所述映射关系存储至Eureka注册中心。
2.根据权利要求1所述的方法,其特征在于,所述从所述HTTP请求中获取域名,包括:
解析所述HTTP请求,得到所述HTTP请求对应的URL;
从所述URL中获取域名。
3.根据权利要求1所述的方法,其特征在于,所述获取所述服务名称对应的服务实例的IP地址,包括:
通过所述Eureka注册中心,获取所述服务名称对应的服务实例的IP地址。
4.根据权利要求1所述的方法,其特征在于,在所述获取所述服务名称对应的服务实例的IP地址之后,还包括:
通过Ribbon装置将所述网关请求转发至所述服务实例。
5.一种动态服务发现的代理装置,其特征在于,所述装置包括:
第一获取单元,用于获取HTTP请求;所述HTTP请求为获取动态服务发现的请求;
第二获取单元,用于从所述HTTP请求中获取域名;所述域名为被代理服务的域名;
确定单元,用于基于预先配置的映射关系,确定所述域名对应的服务名称;所述映射关系用于表征所述域名与所述服务名称之间的对应关系;
存储单元,用于通过预设标识主键将服务名称存储至网关请求的请求上下文中,所述请求上下文是指应用程序网关的请求响应处理过程中与当前处理线程相关联的一个映射;
第三获取单元,用于获取所述服务名称对应的服务实例的IP地址;所述服务实例的IP地址为动态IP地址;所述服务实例的IP地址用于实现动态服务发现;
其中,使用Apollo配置中心实现应用配置的动态修改和推送更新,通过Apollo配置中心配置映射关系的过程的确定单元,包括:
配置模块,用于配置被代理服务的域名和配置被代理服务的服务名称,所述服务名称用于表征服务实例的IP地址的标识;
确定模块,用于基于配置后的被代理服务的域名和配置后的被代理服务的服务名称,确定配置后的映射关系,并将所述映射关系存储至Eureka注册中心。
6.根据权利要求5所述的装置,其特征在于,所述第二获取单元,包括:
解析模块,用于解析所述HTTP请求,得到所述HTTP请求对应的URL;
获取模块,用于从所述URL中获取域名。
7.根据权利要求5所述的装置,其特征在于,所述第三获取单元,具体用于:
通过Eureka注册中心,获取所述服务名称对应的服务实例的IP地址。
CN202210090441.XA 2022-01-26 2022-01-26 一种动态服务发现的代理方法及装置 Active CN114125051B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210090441.XA CN114125051B (zh) 2022-01-26 2022-01-26 一种动态服务发现的代理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210090441.XA CN114125051B (zh) 2022-01-26 2022-01-26 一种动态服务发现的代理方法及装置

Publications (2)

Publication Number Publication Date
CN114125051A CN114125051A (zh) 2022-03-01
CN114125051B true CN114125051B (zh) 2022-05-27

Family

ID=80361469

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210090441.XA Active CN114125051B (zh) 2022-01-26 2022-01-26 一种动态服务发现的代理方法及装置

Country Status (1)

Country Link
CN (1) CN114125051B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115242882B (zh) * 2022-09-20 2023-01-10 之江实验室 一种基于传输层路由访问k8s容器环境的方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111818194A (zh) * 2020-07-01 2020-10-23 中国建设银行股份有限公司 基于域名的访问系统和方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108040079A (zh) * 2017-10-26 2018-05-15 山东浪潮云服务信息科技有限公司 基于国产cpu和操作系统的分布式容器集群服务发现方法
CN108551488A (zh) * 2018-05-03 2018-09-18 山东汇贸电子口岸有限公司 基于国产cpu和os的分布式容器集群负载均衡方法
CN110519379A (zh) * 2019-08-29 2019-11-29 泰康保险集团股份有限公司 基于微服务的请求处理方法及设备
CN112637346B (zh) * 2020-12-24 2023-12-01 北京知道创宇信息技术股份有限公司 代理方法、装置、代理服务器及存储介质

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111818194A (zh) * 2020-07-01 2020-10-23 中国建设银行股份有限公司 基于域名的访问系统和方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DNS SRV:使用DNS服务器做服务发现;Debian中国;《腾讯云社区-专栏首页-Debian中国》;20200121;全文 *

Also Published As

Publication number Publication date
CN114125051A (zh) 2022-03-01

Similar Documents

Publication Publication Date Title
JP3980596B2 (ja) サーバを遠隔かつ動的に構成する方法およびシステム
US8966121B2 (en) Client-side management of domain name information
US8195831B2 (en) Method and apparatus for determining and using server performance metrics with domain name services
US9870428B2 (en) Configuring an origin server content delivery using a pulled data list
US8341297B2 (en) Latencies and weightings in a domain name service (DNS) system
US9553930B2 (en) DNS overriding-based methods of accelerating content delivery
US7979580B2 (en) Content delivery and global traffic management network system
US6754699B2 (en) Content delivery and global traffic management network system
US9130970B2 (en) Systems for accelerating content delivery via DNS overriding
US7346676B1 (en) Load balancing service
CN107528862B (zh) 域名解析的方法及装置
US9384208B2 (en) Configuring a cached website file removal using a pulled data list
CN102047243A (zh) 基于类别请求路由
US20110295989A1 (en) Network system, network management device and gateway device
CN109451014A (zh) 一种WebService代理系统及其透明代理方法
CN114125051B (zh) 一种动态服务发现的代理方法及装置
US20030115243A1 (en) Distributed process execution system and method
CN115190103A (zh) 基于服务网格的服务域名解析方法、装置及设备
CN1317849C (zh) 一种网络管理系统和方法
CN112702441B (zh) 基于容器的访问数据处理方法、装置、系统及存储介质
Van de Vyvere et al. Comparing a polling and push-based approach for live open data interfaces
WO2002007012A2 (en) Content delivery and global traffic management across a network system
Dykstra et al. Web Proxy Auto Discovery for the WLCG

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
GR01 Patent grant
GR01 Patent grant