CN114398176A - 服务访问方法、装置、电子设备及存储介质 - Google Patents
服务访问方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114398176A CN114398176A CN202210001630.5A CN202210001630A CN114398176A CN 114398176 A CN114398176 A CN 114398176A CN 202210001630 A CN202210001630 A CN 202210001630A CN 114398176 A CN114398176 A CN 114398176A
- Authority
- CN
- China
- Prior art keywords
- service
- target
- request
- service request
- information
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及一种服务访问方法、装置、电子设备及存储介质,应用于计算机技术领域,所述方法包括:接收用于访问目标租户对应的目标服务的业务请求,其中,目标租户对应的服务部署在多个kubernetes集群中;目标服务为目标租户对应的服务中的任一服务;基于预先建立的针对目标租户对应的单个服务的请求服务信息和服务的路由地址的映射关系,获取与业务请求的请求地址中携带的请求服务信息匹配的目标路由地址,其中,目标路由地址包括:目标服务在kubernetes集群中对应的目标节点的地址;将业务请求发送至目标节点,以通过目标节点中的目标服务对业务请求进行处理。本申请可以简化业务请求的过程,提高业务请求的效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种服务访问方法、装置、电子设备及存储介质。
背景技术
随着分布式技术的发展,大型单体应用逐渐转化为多个敏捷微服务。随着微服务数量的增多,对微服务进行配置、管理,以及使微服务高可用等变的越来越困难,而Kubernetes可以很好的解决这些问题。
然而,在kubernetes中部署各种服务后,kubernetes集群外的业务请求访问集群内部署的服务时,业务请求端需要知晓该服务具体部署到哪个Kubernetes集群,以及对业务请求进行控制管理的服务器的地址。如果业务请求较多,业务请求端需要维护相应的关系表。可见,业务请求过程比较复杂,效率较低。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种服务访问方法、装置、电子设备及存储介质。
根据本申请的第一方面,提供了一种服务访问方法,包括:
接收用于访问目标租户对应的目标服务的业务请求,其中,所述目标租户对应的服务部署在多个kubernetes集群中;所述目标服务为所述服务中的任一服务;
基于预先建立的针对所述目标租户对应的单个所述服务的请求服务信息和所述服务的路由地址的映射关系,获取与所述业务请求的请求地址中携带的请求服务信息匹配的目标路由地址,其中,所述目标路由地址包括:所述目标服务在所述kubernetes集群中对应的目标节点的地址;
将所述业务请求发送至所述所述目标节点,以通过所述目标节点中的所述目标服务对所述业务请求进行处理。
可选的,在获取与所述业务请求的请求地址中携带的请求服务信息匹配的目标路由地址之前,所述方法还包括:
响应于将所述目标租户对应的服务部署在多个kubernetes集群中,获取单个所述服务分别在kubernetes集群中对应的路由地址;
根据单个所述服务的请求服务信息和所述路由地址,生成所述请求服务信息和路由地址的映射关系。
可选的,所述请求服务信息包括:单个所述服务的信息和所述目标租户的信息;
基于所述映射关系,获取与所述业务请求的请求地址中携带的请求服务信息匹配的目标路由地址,包括:
从所述业务请求的请求地址携带的请求服务信息中获取所述目标服务的信息和所述目标租户的信息;
根据所述目标服务的信息、所述目标租户的信息和所述映射关系,确定与所述目标服务的信息和所述目标租户的信息匹配的目标路由地址。
可选的,所述方法还包括:
在接收所述业务请求后,对所述业务请求的访问权限进行校验,如果校验通过,执行所述获取与所述业务请求的请求地址匹配的目标路由地址的步骤。
可选的,所述方法还包括:
针对所述目标租户对应的单个所述服务,实时获取所述服务在所述kubernetes集群中对应的节点的当前业务请求的请求数量;
如果所述请求数量小于预设数量,将新增的业务请求发送至所述服务在所述kubernetes集群中对应的节点,以通过所述节点中的所述服务对所述新增的业务请求进行处理;
如果所述请求数量等于所述预设数量,停止将新增的业务请求发送至所述服务在所述kubernetes集群中对应的节点。
可选的,所述方法还包括:
在停止将新增的业务请求发送至所述服务在所述kubernetes集群中对应的节点的情况下,将所述新增的业务请求缓存至本地;
在检测到所述服务在所述kubernetes集群中对应的节点的当前业务请求的请求数量小于所述预设数量的情况下,优先将所述新增的业务请求发送至所述服务在所述kubernetes集群中对应的节点,以通过所述节点中的所述服务对所述新增的业务请求进行处理。
可选的,所述目标节点的地址包括:所述目标节点的互联网协议地址和所述目标服务对应的端口号。
根据本申请的第二方面,提供了一种服务访问装置,包括:
业务请求接收模块,用于接收用于访问目标租户对应的目标服务的业务请求,其中,所述目标租户对应的服务部署在多个kubernetes集群中;所述目标服务为所述服务中的任一服务;
路由地址获取模块,用于基于预先建立的针对所述目标租户对应的单个所述服务的请求服务信息和所述服务的路由地址的映射关系,获取与所述业务请求的请求地址中携带的请求服务信息匹配的目标路由地址,其中,所述目标路由地址包括:所述目标服务在所述kubernetes集群中对应的目标节点的地址;
业务请求发送模块,用于将所述业务请求发送至所述所述目标节点,以通过所述目标节点中的所述目标服务对所述业务请求进行处理。
可选的,所述服务访问装置还包括:
路由地址获取模块,用于响应于将所述目标租户对应的服务部署在多个kubernetes集群中,获取单个所述服务分别在kubernetes集群中对应的路由地址;
映射关系生成模块,用于根据单个所述服务的请求服务信息和所述路由地址,生成所述请求服务信息和路由地址的映射关系。
可选的,所述请求服务信息包括:单个所述服务的信息和所述目标租户的信息;
所述路由地址获取模块,具体用于从所述业务请求的请求地址携带的请求服务信息中获取所述目标服务的信息和所述目标租户的信息;根据所述目标服务的信息、所述目标租户的信息和所述映射关系,确定与所述目标服务的信息和所述目标租户的信息匹配的目标路由地址。
可选的,所述服务访问装置还包括:
权限校验模块,用于在接收所述业务请求后,对所述业务请求的访问权限进行校验,如果校验通过,通过所述路由地址获取模块执行所述获取与所述业务请求的请求地址匹配的目标路由地址的步骤。
可选的,所述服务访问装置还包括:
请求数量获取模块,用于针对所述目标租户对应的单个所述服务,实时获取所述服务在所述kubernetes集群中对应的节点的当前业务请求的请求数量;
业务请求发送模块,用于如果所述请求数量小于预设数量,将新增的业务请求发送至所述服务在所述kubernetes集群中对应的节点,以通过所述节点中的所述服务对所述新增的业务请求进行处理;如果所述请求数量等于所述预设数量,停止将新增的业务请求发送至所述服务在所述kubernetes集群中对应的节点。
可选的,所述服务访问装置还包括:
业务请求缓存模块,用于在停止将新增的业务请求发送至所述服务在所述kubernetes集群中对应的节点的情况下,将所述新增的业务请求缓存至本地;
所述业务请求发送模块,还用于在检测到所述服务在所述kubernetes集群中对应的节点的当前业务请求的请求数量小于所述预设数量的情况下,优先将所述新增的业务请求发送至所述服务在所述kubernetes集群中对应的节点,以通过所述节点中的所述服务对所述新增的业务请求进行处理。
可选的,所述目标节点的地址包括:所述目标节点的互联网协议地址和所述目标服务对应的端口号。
根据本申请的第三方面,提供了一种电子设备,包括:处理器,所述处理器用于执行存储于存储器的计算机程序,所述计算机程序被处理器执行时实现第一方面所述的方法。
根据本申请的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的方法。
根据本申请的第五方面,提供了一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行第一方面所述的方法。
本申请实施例提供的技术方案与现有技术相比具有如下优点:
在目标租户的服务部署在多个kubernetes集群中的情况下,可以通过网关服务器对将要路由至kubernetes集群的业务请求进行控制管理。网关服务器接收用于访问目标租户对应的目标服务的业务请求后,可以基于预先建立的针对目标租户对应的单个服务的请求服务信息和服务的路由地址的映射关系,获取与该业务请求的请求地址中携带的请求服务信息匹配的目标路由地址,得到目标服务在kubernetes集群中对应的目标节点的地址,从而对业务请求进行转发。本申请实施例中,业务请求端不需要知晓目标服务所在的kubernetes集群,以及在kubernetes集群对应的目标节点,直接向网关服务器发送业务请求即可,即本申请提供了统一的业务请求入口,可以简化业务请求的过程,提高业务请求的效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示出了可以应用于本申请实施例的服务访问方法的示例性应用环境的系统架构的示意图;
图2为通过Ingress控制器对业务请求进行控制管理的一种示意图;
图3为本申请实施例中服务访问方法的一种流程图;
图4为本申请实施例中服务访问方法的又一种流程图;
图5为本申请实施例中对多个服务进行部署的一种示意图;
图6为本申请实施例中服务访问装置的一种结构示意图;
图7为本申请实施例中电子设备的一种结构示意图。
具体实施方式
为了能够更清楚地理解本申请的上述目的、特征和优点,下面将对本申请的方案进行进一步描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本申请,但本申请还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本申请的一部分实施例,而不是全部的实施例。
图1示出了可以应用于本申请实施例的服务访问方法的示例性应用环境的系统架构的示意图。
如图1所示,系统架构100可以包括终端设备101、终端设备102、终端设备103中的一个或多个,网络104、网关服务器105,kubernetes集群106、kubernetes集群107、kubernetes集群108中的一个或多个。网络104用以在终端设备101、终端设备102、终端设备103和网关服务器105,以及网关服务器105和kubernetes集群106、kubernetes集群107、kubernetes集群108之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。终端设备101、终端设备102、终端设备103可以是各种电子设备,包括但不限于台式计算机、便携式计算机、智能手机和平板电脑等等。
应该理解,图1中的终端设备、网络、服务器和kubernetes集群的数量仅仅是示意性的。根据实现需要,可以具有任意数量的终端设备、网络、服务器和kubernetes集群。比如网关服务器105可以是多个服务器组成的服务器集群等。
本申请实施例所提供的服务访问方法一般由网关服务器105执行,相应地,服务访问装置可以设置于网关服务器105中。举例而言,终端设备101、终端设备102、终端设备103可以向网关服务器105发送业务请求,网关服务器105基于本申请实施例的服务访问方法将该业务请求转发至kubernetes集群106、kubernetes集群107、kubernetes集群108中的节点。通过节点中的微服务对业务请求进行处理,并将业务处理结果发送至终端设备101、终端设备102、终端设备103。
以下首先对本申请实施例的服务访问方法进行详细介绍。
Kubernetes是一个开源的、用于管理云平台中多个主机上的容器化的应用,可以支持自动化部署、大规模可伸缩、应用容器化管理等。Kubernetes集群是指容器运行所需云资源的集合,包括若干台云服务器、负载均衡器等云资源。目前,在kubernetes集群中部署各种服务后面临的问题是:kubernetes集群外的业务请求如何访问kubernetes集群内部署的服务。
在一种实现方式中,可以通过Ingress控制器对kubernetes集群进行控制管理。参见图2,图2为通过Ingress控制器对业务请求进行控制管理的一种示意图。在Kubernetes集群中部署完容器服务后,在Ingress控制器中可以建立一个个映射规则,Ingress控制器通过监听API对象中的配置规则并转化为Nginx的配置(kubernetes声明式API和控制循环)。这样,外部请求就可以通过Ingress控制器访问部署在Kubernetes中的容器服务。
其中,Nginx(engine x)是一个高性能的HTTP(超文本传输协议)和反向代理web服务器,同时也提供了IMAP/POP3/SMTP(交互式邮件存取协议/邮局协议版本3/简单邮件传输协议)服务。
针对目标租户提供一个服务的场景,或者,针对目标租户提供多个服务,而多个服务部署在一个kubernetes集群的场景,通过Ingress控制器可以实现对kubernetes集群的管理。然而,在实际场景下,租户对应的服务的数量通过为多个,并且,单个kubernetes集群提供的资源无法满足多个服务的部署需求,此时,可以将多个服务部署在多个kubernetes集群中。
如果同一个租户下的不同服务部署到多个kubernetes集群,业务请求端需要知晓服务具体部署到哪个kubernetes集群,以及需要访问的每个kubernetes集群对应的Ingress控制器的地址。因此,业务请求过程比较复杂。另外,当单个服务出现问题时,可能导致其余服务都不可用,降低服务的可用性。
为了解决上述问题,本申请可以通过Gateway(网关)服务器对将要路由至一个或多个kubernetes集群的业务请求进行控制管理,实现对业务请求的准确转发。网关服务器是位于应用程序或服务之前的系统,可以用于管理授权、访问控制和流量限制等。应用程序或服务可以提供REST(Representational State Transfer,表述性状态转移)API(Application Programming Interface,应用程序接口)接口服务。应用程序或服务部署在kubernetes集群中。
参见图3,图3为本申请实施例中服务访问方法的一种流程图,应用于网关服务器,可以包括以下步骤:
步骤S310,接收用于访问目标租户对应的目标服务的业务请求,其中,目标租户对应的服务部署在多个kubernetes集群中。
本申请实施例中,每个Kubernetes集群可以包括多台云服务器、负载均衡器等云资源。服务提供方可以利用该云资源,存储自身的资源数据。服务提供方即为租户,租户的数量可以为一个,也可以为多个,目标租户是任意一个利用该云资源的服务提供方。
目标租户提供的服务的数量可以是多个,单个服务可以是由多个相同配置的实例(Pod)和访问这些实例(Pod)的规则组成的微服务。在目标租户提供的服务的数量为多个的情况下,该多个服务可以部署在多个kubernetes集群中。用户每次发起业务请求时,通常请求一个服务,因此,目标服务为目标租户对应的服务中的任一服务。
步骤S320,基于预先建立的针对目标租户对应的单个服务的请求服务信息和服务的路由地址的映射关系,获取与该业务请求的请求地址中携带的请求服务信息匹配的目标路由地址。
网关服务器接收到业务请求后,可以获取该业务请求的请求地址,该请求地址可以为URL(uniform resource locator,统一资源定位系统)地址,URL地址中携带有该业务请求所请求的请求服务信息,即数据资源的信息。可选的,该请求服务信息可以包括所请求的目标服务的信息和目标租户的信息等。
网关服务器可以根据预先建立的针对目标租户对应的单个服务的请求服务信息和服务的路由地址的映射关系,获取与业务请求的请求地址中携带的请求服务信息匹配的目标路由地址。其中,目标路由地址可以包括:目标服务在kubernetes集群中对应的目标节点的地址。kubernetes集群中通常可以包括多个节点,不同的节点中部署有不同的服务,目标服务在kubernetes集群中对应的目标节点,也就是部署有目标服务的节点。可选的,目标节点的地址可以包括:目标节点的互联网协议地址和目标服务对应的端口号等。
步骤S330,将该业务请求发送至目标节点,以通过目标节点中的目标服务对该业务请求进行处理。
在确定目标节点的地址后,直接将业务请求发送至目标节点即可,目标节点中的目标服务可以对该业务请求进行处理,并将业务处理结果通过网关服务器转发至用户端,从而实现对业务请求的准确转发。
本申请实施例的服务访问方法,在目标租户的服务部署在多个kubernetes集群中的情况下,可以通过网关服务器对将要路由至kubernetes集群的业务请求进行控制管理。网关服务器接收用于访问目标租户对应的目标服务的业务请求后,可以基于预先建立的针对目标租户对应的单个服务的请求服务信息和服务的路由地址的映射关系,获取与该业务请求的请求地址中携带的请求服务信息匹配的目标路由地址,得到目标服务在kubernetes集群中对应的目标节点的地址,从而对业务请求进行转发。本申请实施例中,业务请求端不需要知晓目标服务所在的kubernetes集群,以及在kubernetes集群对应的目标节点,直接向网关服务器发送业务请求即可,即本申请提供了统一的业务请求入口,可以简化业务请求的过程,提高业务请求的效率。
参见图4,图4为本申请实施例中服务访问方法的又一种流程图,应用于网关服务器,可以包括以下步骤:
步骤S410,响应于将目标租户对应的服务部署在多个kubernetes集群中,获取单个服务分别在kubernetes集群中对应的路由地址。
本申请实施例中,在将目标租户对应的服务部署在多个kubernetes集群中之后,可以获取各个服务分别在kubernetes集群中对应的路由地址。例如,针对单个服务,可以根据该服务的services信息,即端口号,以及在kubernetes集群中对应的节点的互联网协议地址,生成路由地址。
参见图5,图5为本申请实施例中对多个服务进行部署的一种示意图,目标租户下对应三个服务,三个服务部署在两个Kubernetes集群中。在部署完成之后,可以分别获取三个服务在Kubernetes集群中对应的路由地址。例如,服务1对应的路由地址为http://10.20.30.400:50000。其中,http://10.20.30.400为互联网协议地址,50000为端口号。
步骤S420,根据单个服务的请求服务信息和路由地址,生成请求服务信息和路由地址的映射关系,其中,请求服务信息可以包括:单个服务的信息和目标租户的信息。
网关服务器中可以预先定义有服务模板,/prefix/**/tenantId,prefix表示目标租户对应的单个服务的信息,tenantId表示目标租户的信息。Prefix用于对各个服务进行唯一标识,tenantId用于对各个租户进行唯一标识。
进一步地,可以根据该服务模板、服务的信息和租户的信息,生成请求服务信息,然后将请求服务信息和路由地址进行一一对应,生成映射关系保存到数据库中。
例如,假设目标租户的标识信息为9,即tenantId为9。图5所示服务1的信息为test,即Prefix为test,此时,可以生成请求服务信息:/test/*/9。如果对应的路由地址为http://10.20.30.400:50000,则可以生成/test/*/9和http://10.20.30.400:50000的映射关系。
步骤S430,接收用于访问目标租户对应的目标服务的业务请求,其中,目标租户对应的服务部署在多个kubernetes集群中;目标服务为目标租户对应的服务中的任一服务。
本步骤与图2实施例步骤S210相同,具体参见图2实施例中的描述即可,在此不再赘述。
步骤S440,对业务请求的访问权限进行校验。
当外部业务想访问目标租户在kubernetes集群中对应的目标服务时,会发起业务请求,网关服务器可以对该业务请求进行权限校验,待权限校验通过后,再执行下述步骤S450,否则,可以直接拒绝该业务请求。这样,可以提高业务的安全性。
步骤S450,从业务请求的请求地址携带的请求服务信息中获取目标服务的信息和目标租户的信息,根据目标服务的信息、目标租户的信息和所述映射关系,确定与目标服务的信息和目标租户的信息匹配的目标路由地址。
如前所述,预先已经生成了请求服务信息和路由地址的映射关系,而请求服务信息包括:单个服务的信息和目标租户的信息。因此,可以从业务请求的请求地址携带的请求服务信息中获取目标服务的信息和目标租户的信息,以根据该信息和映射关系获取目标路由地址。其中,目标路由地址包括:目标服务在kubernetes集群中对应的目标节点的地址。
例如,当业务请求的请求地址URL为http://**.com/test/user/login/9时,网关服务器可以根据该请求地址中的test/user/login/9确定对应的请求服务信息为/test/*/9,根据/test/*/9和上述映射关系,确定路由地址为http://10.20.30.400:50000。根据该路由地址,可以生成最终的请求地址:http://10.20.30.400:50000/test/user/login/9。
步骤S460,将业务请求发送至目标节点,以通过目标节点中的目标服务对业务请求进行处理。
由于最终的请求地址中携带有目标节点的地址,因此,可以直接将业务请求发送至目标节点。
步骤S470,针对目标租户对应的单个服务,实时获取服务在kubernetes集群中对应的节点的当前业务请求的请求数量。
步骤S480,判断请求数量是否小于预设数量。如果小于预设数量执行步骤S490;如果等于预设数量,执行步骤S4110。
本申请实施例中,还可以在网关服务器中集成Hystrix,Hystrix是一款容错系统,能帮助使用者码出具备强大的容错能力和鲁棒性的程序。通过Hystrix可以对不同的服务设置对应的熔断条件,当某个服务对应的当前业务请求的数量小于预设数量,认为不满足该服务对应的熔断条件,可以执行步骤S490;如果达到预设数量,则认为满足该服务对应的熔断条件,可以拒绝该服务后续请求,即执行步骤S4110。这样,可以避免单个服务在业务请求量较大而出现故障的情况下,仍然在网关服务器中占用较多的连接资源,导致其他服务的不可用。
步骤S490,将新增的业务请求发送至服务在kubernetes集群中对应的节点,以通过节点中的服务对新增的业务请求进行处理。
步骤S4110,停止将新增的业务请求发送至服务在kubernetes集群中对应的节点,将新增的业务请求缓存至本地。
步骤S4120,在检测到服务在kubernetes集群中对应的节点的当前业务请求的请求数量小于预设数量的情况下,优先将新增的业务请求发送至服务在kubernetes集群中对应的节点,以通过节点中的服务对新增的业务请求进行处理。
需要说明的是,在节点处理业务请求的过程中,节点的当前业务请求的请求数量会减小,当小于预设数量的情况下,可以优先将本地缓存的、未发送至该节点的业务请求发送至该节点,以通过该节点中的服务对业务请求进行处理。
或者,在停止将新增的业务请求发送至服务在kubernetes集群中对应的节点的情况下,也可以将新增的业务请求调度至kubernetes集群中的其他节点,以通过其他节点对新增的业务请求进行处理,从而保证服务的可用性,提升用户体验。
本申请实施例的服务访问方法,可以支持服务在多个kubernetes集群进行部署的场景,在将目标租户的服务部署在多个kubernetes集群之后,可以获取各个服务在kubernetes集群对应的路由地址,并根据服务对应的请求服务信息,生成请求服务信息和路由地址的映射关系。网关服务器接收用于请求目标服务的业务请求后,可以根据业务请求的请求地址和该映射关系,得到目标服务在kubernetes集群中对应的目标节点的地址,从而根据目标节点的地址对业务请求进行转发。因此,业务请求端不需要知晓目标服务所在的kubernetes集群,以及在kubernetes集群对应的目标节点,直接向网关服务器发送业务请求即可,即本申请提供了统一的业务请求入口,可以简化业务请求的过程,提高业务请求的效率。本申请通过网关服务器可以对后端的服务进行统一的权限校验,提高服务的安全性。另外,通过对不同的服务设置不同的熔断策略,可以提高服务的可用性。
相应于上述方法实施例,本申请实施例还提供了一种服务访问装置,参见图6,服务访问装置600包括:
业务请求接收模块610,用于接收用于访问目标租户对应的目标服务的业务请求,其中,目标租户对应的服务部署在多个kubernetes集群中;目标服务为目标租户对应的服务中的任一服务;
路由地址获取模块620,用于基于预先建立的针对目标租户对应的单个服务的请求服务信息和服务的路由地址的映射关系,获取与业务请求的请求地址中携带的请求服务信息匹配的目标路由地址,其中,目标路由地址包括:目标服务在kubernetes集群中对应的目标节点的地址;
业务请求发送模块630,用于将业务请求发送至目标节点,以通过目标节点中的目标服务对业务请求进行处理。
可选的,服务访问装置600还包括:
路由地址获取模块,用于响应于将目标租户对应的服务部署在多个kubernetes集群中,获取单个服务分别在kubernetes集群中对应的路由地址;
映射关系生成模块,用于根据单个服务的请求服务信息和路由地址,生成请求服务信息和路由地址的映射关系。
可选的,请求服务信息包括:单个服务的信息和目标租户的信息;
路由地址获取模块620,具体用于从业务请求的请求地址携带的请求服务信息中获取目标服务的信息和目标租户的信息;根据目标服务的信息、目标租户的信息和映射关系,确定与目标服务的信息和目标租户的信息匹配的目标路由地址。
可选的,服务访问装置600还包括:
权限校验模块,用于在接收业务请求后,对业务请求的访问权限进行校验,如果校验通过,通过路由地址获取模块执行获取与业务请求的请求地址匹配的目标路由地址的步骤。
可选的,服务访问装置600还包括:
请求数量获取模块,用于针对目标租户对应的单个服务,实时获取服务在kubernetes集群中对应的节点的当前业务请求的请求数量;
业务请求发送模块,用于如果请求数量小于预设数量,将新增的业务请求发送至服务在kubernetes集群中对应的节点,以通过节点中的服务对新增的业务请求进行处理;如果请求数量等于预设数量,停止将新增的业务请求发送至服务在kubernetes集群中对应的节点。
可选的,服务访问装置600还包括:
业务请求缓存模块,用于在停止将新增的业务请求发送至服务在kubernetes集群中对应的节点的情况下,将新增的业务请求缓存至本地;
业务请求发送模块,还用于在检测到服务在kubernetes集群中对应的节点的当前业务请求的请求数量小于预设数量的情况下,优先将新增的业务请求发送至服务在kubernetes集群中对应的节点,以通过节点中的服务对新增的业务请求进行处理。
可选的,目标节点的地址包括:目标节点的互联网协议地址和目标服务对应的端口号。
上述装置中各模块或单元的具体细节已经在对应的方法中进行了详细的描述,因此此处不再赘述。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
在本申请的示例性实施例中,还提供一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行本示例实施方式中上述服务访问方法。
图7为本申请实施例中电子设备的一种结构示意图。需要说明的是,图7示出的电子设备700仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图7所示,电子设备700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有系统操作所需的各种程序和数据。中央处理单元701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如局域网(LAN)卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元701执行时,执行本申请的装置中限定的各种功能。
本申请实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述服务访问方法。
需要说明的是,本申请所示的计算机可读存储介质例如可以是—但不限于—电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器、只读存储器、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、射频等等,或者上述的任意合适的组合。
本申请实施例中,还提供了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行上述服务访问方法。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种服务访问方法,其特征在于,所述方法包括:
接收用于访问目标租户对应的目标服务的业务请求,其中,所述目标租户对应的服务部署在多个kubernetes集群中;所述目标服务为所述服务中的任一服务;
基于预先建立的针对所述目标租户对应的单个所述服务的请求服务信息和所述服务的路由地址的映射关系,获取与所述业务请求的请求地址中携带的请求服务信息匹配的目标路由地址,其中,所述目标路由地址包括:所述目标服务在所述kubernetes集群中对应的目标节点的地址;
将所述业务请求发送至所述所述目标节点,以通过所述目标节点中的所述目标服务对所述业务请求进行处理。
2.根据权利要求1所述的方法,其特征在于,在获取与所述业务请求的请求地址中携带的请求服务信息匹配的目标路由地址之前,所述方法还包括:
响应于将所述目标租户对应的服务部署在多个kubernetes集群中,获取单个所述服务分别在kubernetes集群中对应的路由地址;
根据单个所述服务的请求服务信息和所述路由地址,生成所述请求服务信息和路由地址的映射关系。
3.根据权利要求1所述的方法,其特征在于,所述请求服务信息包括:单个所述服务的信息和所述目标租户的信息;
基于所述映射关系,获取与所述业务请求的请求地址中携带的请求服务信息匹配的目标路由地址,包括:
从所述业务请求的请求地址携带的请求服务信息中获取所述目标服务的信息和所述目标租户的信息;
根据所述目标服务的信息、所述目标租户的信息和所述映射关系,确定与所述目标服务的信息和所述目标租户的信息匹配的目标路由地址。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在接收所述业务请求后,对所述业务请求的访问权限进行校验,如果校验通过,执行所述获取与所述业务请求的请求地址匹配的目标路由地址的步骤。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
针对所述目标租户对应的单个所述服务,实时获取所述服务在所述kubernetes集群中对应的节点的当前业务请求的请求数量;
如果所述请求数量小于预设数量,将新增的业务请求发送至所述服务在所述kubernetes集群中对应的节点,以通过所述节点中的所述服务对所述新增的业务请求进行处理;
如果所述请求数量等于所述预设数量,停止将新增的业务请求发送至所述服务在所述kubernetes集群中对应的节点。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在停止将新增的业务请求发送至所述服务在所述kubernetes集群中对应的节点的情况下,将所述新增的业务请求缓存至本地;
在检测到所述服务在所述kubernetes集群中对应的节点的当前业务请求的请求数量小于所述预设数量的情况下,优先将所述新增的业务请求发送至所述服务在所述kubernetes集群中对应的节点,以通过所述节点中的所述服务对所述新增的业务请求进行处理。
7.根据权利要求1所述的方法,其特征在于,所述目标节点的地址包括:所述目标节点的互联网协议地址和所述目标服务对应的端口号。
8.一种服务访问装置,其特征在于,所述装置包括:
业务请求接收模块,用于接收用于访问目标租户对应的目标服务的业务请求,其中,所述目标租户对应的服务部署在多个kubernetes集群中;所述目标服务为所述服务中的任一服务;
路由地址获取模块,用于基于预先建立的针对所述目标租户对应的单个所述服务的请求服务信息和所述服务的路由地址的映射关系,获取与所述业务请求的请求地址中携带的请求服务信息匹配的目标路由地址,其中,所述目标路由地址包括:所述目标服务在所述kubernetes集群中对应的目标节点的地址;
业务请求发送模块,用于将所述业务请求发送至所述所述目标节点,以通过所述目标节点中的所述目标服务对所述业务请求进行处理。
9.一种电子设备,其特征在于,包括:处理器,所述处理器用于执行存储于存储器的计算机程序,所述计算机程序被处理器执行时实现权利要求1-7任一项所述的服务访问方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任一项所述的服务访问方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210001630.5A CN114398176A (zh) | 2022-01-04 | 2022-01-04 | 服务访问方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210001630.5A CN114398176A (zh) | 2022-01-04 | 2022-01-04 | 服务访问方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114398176A true CN114398176A (zh) | 2022-04-26 |
Family
ID=81229872
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210001630.5A Pending CN114398176A (zh) | 2022-01-04 | 2022-01-04 | 服务访问方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114398176A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114978660A (zh) * | 2022-05-17 | 2022-08-30 | 阿里巴巴(中国)有限公司 | 带外网络的构建方法和基于带外网络的带外处理方法 |
CN115277864A (zh) * | 2022-07-27 | 2022-11-01 | 海通证券股份有限公司 | 路由确定方法及装置、计算机可读存储介质、终端 |
CN115314432A (zh) * | 2022-07-30 | 2022-11-08 | 济南浪潮数据技术有限公司 | 一种跨集群应用路由访问方法、系统、设备及介质 |
CN115460286A (zh) * | 2022-09-02 | 2022-12-09 | 浙江正泰物联技术有限公司 | 信息获取方法、装置、电子设备和存储介质 |
CN115633084A (zh) * | 2022-12-01 | 2023-01-20 | 苏州浪潮智能科技有限公司 | 一种k8s集群访问方法、装置及计算机可读存储介质 |
CN115834705A (zh) * | 2022-11-09 | 2023-03-21 | 迈普通信技术股份有限公司 | 认证服务分配方法、节点集群及计算机可读存储介质 |
WO2024193085A1 (zh) * | 2023-03-22 | 2024-09-26 | 京东科技信息技术有限公司 | 网关服务请求的处理、云原生网关系统的管理方法及装置 |
-
2022
- 2022-01-04 CN CN202210001630.5A patent/CN114398176A/zh active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114978660A (zh) * | 2022-05-17 | 2022-08-30 | 阿里巴巴(中国)有限公司 | 带外网络的构建方法和基于带外网络的带外处理方法 |
CN114978660B (zh) * | 2022-05-17 | 2024-04-19 | 阿里巴巴(中国)有限公司 | 带外网络的构建方法和基于带外网络的带外处理方法 |
CN115277864A (zh) * | 2022-07-27 | 2022-11-01 | 海通证券股份有限公司 | 路由确定方法及装置、计算机可读存储介质、终端 |
CN115277864B (zh) * | 2022-07-27 | 2024-01-26 | 海通证券股份有限公司 | 路由确定方法及装置、计算机可读存储介质、终端 |
CN115314432A (zh) * | 2022-07-30 | 2022-11-08 | 济南浪潮数据技术有限公司 | 一种跨集群应用路由访问方法、系统、设备及介质 |
CN115460286A (zh) * | 2022-09-02 | 2022-12-09 | 浙江正泰物联技术有限公司 | 信息获取方法、装置、电子设备和存储介质 |
CN115834705A (zh) * | 2022-11-09 | 2023-03-21 | 迈普通信技术股份有限公司 | 认证服务分配方法、节点集群及计算机可读存储介质 |
CN115834705B (zh) * | 2022-11-09 | 2024-05-24 | 迈普通信技术股份有限公司 | 认证服务分配方法、节点集群及计算机可读存储介质 |
CN115633084A (zh) * | 2022-12-01 | 2023-01-20 | 苏州浪潮智能科技有限公司 | 一种k8s集群访问方法、装置及计算机可读存储介质 |
WO2024193085A1 (zh) * | 2023-03-22 | 2024-09-26 | 京东科技信息技术有限公司 | 网关服务请求的处理、云原生网关系统的管理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114398176A (zh) | 服务访问方法、装置、电子设备及存储介质 | |
JP7252356B2 (ja) | モバイルエッジコンピューティングノードの選択方法、装置及びシステム並びにコンピュータプログラム | |
CN109150978B (zh) | 调试微服务的方法和装置 | |
CN110677405B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN104219127B (zh) | 一种虚拟网络实例的创建方法以及设备 | |
EP3886404A1 (en) | Domain name server allocation method and device | |
CN111447185B (zh) | 一种推送信息的处理方法及相关设备 | |
CN113572689A (zh) | 微服务网关管理方法、系统、设备、可读存储介质及产品 | |
CN110830374B (zh) | 一种基于sdk的灰度发布的方法和装置 | |
KR102407334B1 (ko) | 게이트웨이 장치 및 그 동작 방법 | |
CN108833251B (zh) | 用于控制网络互联的方法和装置 | |
CN107172176B (zh) | 基于配置管理的app网络连接方法、设备及配置服务器 | |
CN107635010B (zh) | 流量调度方法、装置、计算机可读存储介质及电子设备 | |
CN111258627A (zh) | 一种接口文档生成方法和装置 | |
CN110213365B (zh) | 基于用户分区的用户访问请求处理方法及电子设备 | |
CN111726400A (zh) | 反向连接的方法、装置和服务端系统 | |
CN112104679B (zh) | 处理超文本传输协议请求的方法、装置、设备和介质 | |
CN114979295B (zh) | 一种网关管理的方法和装置 | |
CN114268631B (zh) | 低延迟网络系统及其通信连接方法及可读存储介质 | |
US10243920B1 (en) | Internet protocol address reassignment between virtual machine instances | |
US20230102122A1 (en) | Methods, systems, and computer readable media for identifying alternate delivery endpoints for mobile originated data and monitoring reports in a communications network | |
CN108958933B (zh) | 任务执行器的配置参数更新方法、装置及设备 | |
CN112702441B (zh) | 基于容器的访问数据处理方法、装置、系统及存储介质 | |
CN113778499B (zh) | 发布服务的方法、装置、设备和计算机可读介质 | |
CN109471713B (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 |