一种服务访问方法、电子设备及介质与流程

未命名 08-02 阅读:84 评论:0


1.本技术涉及集群容器技术领域,特别涉及一种服务访问方法、电子设备及介质。


背景技术:

2.对于集群容器(kubernetes,k8s)内部的服务,每个服务都有独立的服务名。在集群容器内部可以基于服务的服务名实现服务之间的相互访问。然而,对于基于集群容器外部的客户端发送的用户请求,集群容器没有提供集群内部的服务直接被访问的途径。当客户端访问集群容器内部的服务时,需要为集群容器内部的每个服务配置至少一条请求分发规则(ingress),在请求分发规则中预设用户请求中的路径与服务之间的对应关系,从而在接收到用户请求时,执行请求分发规则,基于用户请求中的路径将用户请求发送给集群内部的相应服务,实现集群容器外部的客户端对集群容器内部的服务的访问。
3.然而,若集群容器内部的服务发生变动,如在集群容器内增加新的服务或者改变路径与服务之间的对应关系,需要修改原有的请求分发规则或者增加新的请求分发规则,一旦集群容器内部发生变动的服务的数量较多,需要修改或者增加的请求分发规则的数量也会增加,如此将会使得配置请求分发规则的操作变得复杂繁琐。


技术实现要素:

4.为解决上述提及的当集群容器内部发生变动的服务的数量较大,需要修改或者增加的请求分发规则的数量也会增加,将会使得配置请求分发规则的操作变得复杂繁琐的问题,本技术实施例第一方面提供一种服务访问方法,该服务访问方法包括:
5.获取用户请求,用户请求中包括目标访问服务对应的服务名信息;
6.基于服务名信息和转发服务模块中的代理转发参数,生成代理转发规则,代理转发规则用于将用户请求转发至服务名信息对应的目标访问服务;
7.控制转发服务模块执行代理转发规则,将用户请求发送至服务名信息对应的目标访问服务。
8.基于上述方案,通过在集群容器中部署一个转发服务模块以及配置一条请求分发规则,在获取到第二电子设备发送的用户请求时,触发用于将用户请求发送给转发服务模块对应的请求分发规则,将用户请求发送至转发服务模块,且将用户请求中第二电子设备需要访问的服务的服务名写入转发服务模块的初始配置的代理转发规则,控制转发服务模块执行写入服务名后的代理转发规则,写入服务名后的代理转发规则用于将用户请求转发至集群容器中用户请求需要访问的服务,如此,仅需要配置一条请求分发规则,可以实现集群容器外部的第二电子设备对集群容器内部的服务的访问,可以简化配置请求分发规则的操作。
9.在一些可选的实例中,基于服务名信息和转发服务模块中的代理转发参数,生成代理转发规则,包括:
10.将服务名信息与代理转发参数进行拼接处理,生成代理转发规则。
11.在一些可选的实例中,目标访问服务对应的服务名信息基于用户请求中的路径信息获取。
12.在一些可选的实例中,用户请求由第二电子设备发送;
13.路径信息包括第二电子设备中用于发送用户请求的应用程序编程接口、目标访问服务所在的存储空间名称和目标访问服务对应的名称。
14.在一些可选的实例中,服务名信息包括目标访问服务所在的存储空间名称和目标访问服务对应的名称。
15.在一些可选的实例中,方法还包括:
16.在集群容器中预设转发服务模块;
17.配置转发服务模块对应的代理转发参数。
18.在一些可选的实例中,方法还包括:
19.将用户请求发送至转发服务模块。
20.在一些可选的实例中,方法还包括:
21.在集群容器中预设目标请求分发规则,目标请求分发规则用于将用户请求发送至转发服务模块。
22.在一些可选的实例中,方法还包括:
23.触发目标请求分发规则,将用户请求发送至转发服务模块。
24.在一些可选的实例中,触发目标请求分发规则,将用户请求发送至转发服务模块,包括:
25.触发目标请求分发规则,基于目标请求分发规则中的端口将用户请求发送至转发服务模块。
26.第二方面,本技术提供一种电子设备,包括:存储器,用于存储电子设备的一个或多个处理器执行的指令,以及处理器,是电子设备的一个或多个处理器之一,用于执行本技术提及的服务访问方法。
27.第三方面,本技术提供一种可读存储介质,可读介质上存储有指令,指令在电子设备上执行时使得电子设备执行本技术提及的服务访问方法。
附图说明
28.图1是本技术实施例提供的一种应用场景示意图;
29.图2是本技术实施例提供的一种服务访问方法的示意图;
30.图3是本技术实施例提供的一种服务访问装置的结构示意图;
31.图4是本技术实施例提供的一种用于实现本技术实施例所提供的服务访问方法的电子设备的硬件结构示意图。
具体实施方式
32.本技术的说明性实施例包括但不限于基于一种服务访问方法、电子设备及介质。
33.图1是本技术实施例提供的一种应用场景示意图,如图1所示,在一种具体实现中,客户端100可以向集群容器200发送用户请求110,集群容器中可以部署转发服务210、目标访问服务220和非目标访问服务230。转发服务210可以将客户端发送的用户请求110发送至
目标访问服务220,仅需要配置一条请求分发规则,可以实现集群容器外部的客户端对集群容器内部的服务的访问,可以简化配置请求分发规则的操作。
34.下面对一些实施例中提及的服务访问方法进行介绍。
35.为了使得用户能够访问集群容器内部的服务,例如,可以为集群容器中的服务test-svc1配置一条请求分发规则,该请求分发规则可以表示利用前缀匹配“prefix”将路径前缀为“path1”的用户请求基于集群容器的端口“80”发送至集群容器内的服务“test-svc1”。当客户端访问时,获取客户端发送的用户请求,从用户请求中获取路径,将用户请求中的路径的前缀与请求分发规则中的路径进行匹配,若用户请求中的路径的前缀与请求分发规则中的路径匹配(例如,用户请求中的路径为/path1/api1或者/path1/api2时,均与请求分发规则中的路径/path1匹配),则触发服务test-svc1对应的请求分发规则,基于集群容器的端口“80”将用户请求发送至集群容器中的服务“test-svc1”。
36.若在集群容器中新增一个服务“test-svc2”,则可以为服务“test-svc2”配置一条新的请求分发规则,新的请求分发规则可以表示利用前缀匹配“prefix”将路径为“path2”的用户请求基于集群容器的端口“80”发送至服务“test-svc2”。当客户端访问时,获取客户端发送的用户请求,从用户请求中获取路径,将用户请求中的路径的前缀与请求分发规则中的路径进行匹配,若用户请求中的路径的前缀与请求分发规则中的路径匹配(例如,用户请求中的路径为/path2/api1或者/path2/api2时,均与请求分发规则中的路径/path2匹配),则触发服务test-svc2对应的请求分发规则,基于集群容器的端口“80”将用户请求发送至集群容器中的服务“test-svc2”。
37.基于上文列举的例子,若将路径前缀为“path1”的用户请求作为用户请求1,将路径前缀为“path2”的用户请求作为用户请求2,那么,用户请求1的发送路径可以如表达式(1)所示,用户请求2的发送路径可以如表达式(2)所示:
38.access request 1

test-svc1表达式(1)
39.access request 2

test-svc2表达式(2)
40.其中,access request 1可以表示用户请求1,test-svc1可以表示用户请求1需要访问的服务的服务名,access request 2可以表示用户请求2,test-svc2可以表示用户请求2需要访问的服务的服务名。
41.可见,当集群容器内增加新的服务时,需要增加新的请求分发规则,一旦集群容器内新增的服务的数量较多,需要增加的请求分发规则也会增加,如此将会使得配置请求分发规则变得复杂繁琐。
42.为解决上述问题,本技术实施例提供一种服务访问方法,通过在集群容器中部署一个转发服务模块以及配置一条请求分发规则,在获取到客户端发送的用户请求时,触发用于将用户请求发送给转发服务模块的请求分发规则,将用户请求发送至转发服务模块,且将用户请求中客户端需要访问的服务的服务名写入转发服务模块对应的代理转发规则(例如,将服务名与转发服务模块中初始配置的代理转发规则中的代理转发参数进行拼接处理,以获取写入服务名后的代理转发规则),控制转发服务模块执行写入服务名后的代理转发规则,写入服务名后的代理转发规则用于将用户请求转发至集群容器中用户请求需要访问的服务,如此,仅需要配置一条请求分发规则,可以实现集群容器外部的客户端对集群容器内部的服务的访问,可以简化配置请求分发规则的操作。
43.在一些实例中,若从用户请求中获取需要访问的服务为集群容器内的新增服务,触发请求分发规则,将用户请求发送至转发服务模块,且将新增服务的服务名写入转发服务模块对应的代理转发规则,控制转发模块执行写入服务名后的代理转发规则,将用户请求转发至集群容器中的新增服务。如此,仅需要配置一条请求分发规则,无需为新增服务配置新的请求分发规则,可以实现集群容器外部的客户端对集群容器内部的服务的访问,可以简化配置请求分发规则的操作。
44.在一些实例中,若从用户请求中获取需要访问的服务为集群容器内的原有服务,触发请求分发规则,将用户请求发送至转发服务模块,且将原有服务的服务名写入转发服务模块对应的代理转发规则,控制转发模块执行写入服务名后的代理转发规则,将用户请求发送至集群容器中的原有服务。如此,仅需要配置一条请求分发规则,无需对原有服务的请求分发规则进行修改,可以实现集群容器外部的客户端对集群容器内部的服务的访问,可以简化配置请求分发规则的操作。
45.下面对本技术实施例中提及的服务访问方法进行详细介绍。图4是本技术实施例提供的一种服务访问方法的示意图,图4中所示的服务访问方法可以由第一电子设备执行,其中,第一电子设备可以是服务器。
46.如图4所示,服务访问方法可以包括:
47.401:在集群容器中部署转发服务模块以及配置目标请求分发规则。
48.可以理解,可以在集群容器中预设一个服务名为app-proxy的转发服务模块,以及在集群容器中预设一条目标请求分发规则,该目标请求分发规则可以用于在获取用户请求时,将用户请求发送至转发服务模块。例如,触发目标请求分发规则,可以基于集群容器的端口“80”将用户请求发送至转发服务模块app-proxy。
49.可以理解,转发服务模块可以配置有代理转发规则,该代理转发规则可以用于将获取的用户请求转发至集群容器中用户请求需要访问的目标访问服务。
50.402:获取第二电子设备发送的用户请求。
51.可以理解,第二电子设备可以是客户端。当第二电子设备访问时,可以获取第二电子设备发送的用户请求。在一些可选的实例中,第二电子设备发送的用户请求中的路径可以采用如下数据结构:
52./api/a/b
53.其中,api可以表示第二电子设备发送用户请求的应用程序编程接口,a可以表示第二电子设备所需访问的目标访问服务所在的存储空间名称,b可以表示第二电子设备需要访问的目标访问服务对应的名称,b可以是集群容器中原有服务的部分服务名。
54.在另一些可选的实例中,第二电子设备发送的用户请求中的路径可以采用如下数据结构:
55./api/a/c
56.其中,api可以表示第二电子设备发送用户请求的应用程序编程接口,a可以表示第二电子设备所需访问的目标访问服务所在的存储空间名称,c可以表示第二电子设备所需访问的目标访问服务对应的名称,c可以是集群容器中新增服务的部分服务名。
57.403:触发目标请求分发规则,将用户请求发送至转发服务模块,以及基于用户请求中第二电子设备需要访问的服务名和转发服务模块中的代理转发参数,生成代理转发规
则。
58.在一些可选的实例中,在获取第二电子设备发送的用户请求之后,可以触发目标请求分发规则,基于集群容器的端口“80”将用户请求发送至转发服务模块app-proxy,同时,基于用户请求中的路径信息获取目标访问服务对应的服务名信息。例如,可以从用户请求中获取路径,从路径中还原出第二电子设备所需访问的目标访问服务对应的服务名。
59.基于上文中列举的例子,可以根据数据结构为/api/a/b的路径,还原出目标访问服务的服务名:
60./api/a/b

b-service.a
61.其中,b-service可以表示第二电子设备所需访问的目标访问服务对应的服务名,a可以表示目标访问服务所在的存储空间(namespace)名称。
62.可以根据数据结构为/api/a/c的路径,可以还原出目标访问服务的服务名:
63./api/a/c

c-service.a
64.其中,c-service可以表示第二电子设备所需访问的目标访问服务对应的服务名,a可以表示目标访问服务所在的存储空间(namespace)名称。
65.可以理解,在从用户请求中获取目标访问服务对应的服务名之后,可以基于用户请求中第二电子设备需要访问的服务名和转发服务模块app-proxy中的代理转发参数,生成代理转发规则。
66.在一些可选的实例中,代理转发规则可以包括代理转发参数,可以将目标访问服务对应的服务名与代理转发参数进行拼接处理,生成代理转发规则。
67.404:控制转发模块执行代理转发规则,将用户请求转发至集群容器中的目标访问服务。
68.可以理解,可以控制转发模块执行代理转发规则,利用集群容器内部的服务可以基于服务名互相访问的原理,由转发服务模块app-proxy将用户请求转发至服务名为product-service的目标访问服务。
69.如上所述,通过部署一个转发服务模块,可以改变用户请求的发送路径。例如,可以将上文中列举的用户请求1的发送路径access request 1

test-svc1改变为如表达式(3)所示,将用户请求2的发送路径access request 2

test-svc2改变为如表达式(4)所示:
70.access request 1

app-proxy

test-svc1表达式(3)
71.access request 2

app-proxy

test-svc2表达式(4)
72.采用本技术实施例提供的服务访问方法,通过在集群容器中部署一个转发服务模块以及配置一条请求分发规则,在获取到第二电子设备发送的用户请求时,触发用于将用户请求发送给转发服务模块的请求分发规则,将用户请求发送至转发服务模块,且将用户请求中第二电子设备需要访问的服务的服务名写入转发服务模块对应的代理转发规则,控制转发服务模块执行代理转发规则,代理转发规则用于将用户请求转发至集群容器中用户请求需要访问的服务,如此,仅需要配置一条请求分发规则,可以实现集群容器外部的第二电子设备对集群容器内部的服务的访问,可以简化配置请求分发规则的操作。
73.本技术实施例提供了一种服务访问装置,图3是本技术实施例提供的服务访问装置的结构示意图。如图3所示,该服务访问装置可以包括:
frequency,rf)模块,其用于通过无线方式与互联网进行通讯。
83.显示器可以例如触摸屏式的液晶显示器(led),该液晶显示器可以使得用户能够与电子设备(或移动设备)的用户界面进行交互。
84.本技术实施例提供了一种计算机可读存储介质,该存储介质可设置于电子设备之中以保存用于实现方法实施例中服务访问方法相关的至少一条指令或至少一段程度,该至少一条指令或该至少一段程序由该处理器加载并执行以实现上述方法实施例提供的服务访问方法。
85.可选地,本技术实施例中,上述存储介质可以位于计算机网络的多个网络服务器中的至少一个网络服务器。可选地,上述存储介质可以包括但不限于:u盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
86.需要说明的是,在本专利的示例和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。虽然通过参照本技术的某些优选实施例,已经对本技术进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本技术的精神和范围。
87.需要说明的是,上述本技术实施例的先后顺序仅仅为了描述,不代表实施例的优劣,且上述对特定的实施例进行了描述,其他实施例也在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或者步骤可以按照不同的实施例中的顺序来执行并且能够实现预期的结果。另外,在附图中描绘的过程不一定要求示出特定顺序或者而连接顺序才能够实现期望的结果。在某些实施方式中,多任务并行处理也是可以的或者可能是有利的。
88.本技术中的各个实施例均采用递进的方式描述,各个实施例之间相同或者相似的部分互相参见即可,每个实施例重点说明的均为与其他实施例的不同之处。尤其,对于装置、电子设备和存储介质的实施例而言,由于其基于相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
89.应当指出,对于本领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也视为本技术的保护范围。

技术特征:
1.一种服务访问方法,其特征在于,所述方法应用于第一电子设备,所述方法包括:获取用户请求,所述用户请求中包括目标访问服务对应的服务名信息;基于所述服务名信息和转发服务模块中的代理转发参数,生成代理转发规则,所述代理转发规则用于将所述用户请求转发至所述服务名信息对应的所述目标访问服务;控制所述转发服务模块执行所述代理转发规则,将所述用户请求发送至所述服务名信息对应的所述目标访问服务。2.根据权利要求1所述的方法,其特征在于,所述基于所述服务名信息和转发服务模块中的代理转发参数,生成代理转发规则,包括:将所述服务名信息与所述代理转发参数进行拼接处理,生成所述代理转发规则。3.根据权利要求1所述的方法,其特征在于,所述目标访问服务对应的服务名信息基于所述用户请求中的路径信息获取。4.根据权利要求3所述的方法,其特征在于,所述用户请求由第二电子设备发送;所述路径信息包括所述第二电子设备中用于发送所述用户请求的应用程序编程接口、所述目标访问服务所在的存储空间名称和所述目标访问服务对应的名称。5.根据权利要求3或4所述的方法,其特征在于,所述服务名信息包括所述目标访问服务所在的存储空间名称和所述目标访问服务对应的名称。6.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:在集群容器中预设所述转发服务模块;配置所述转发服务模块对应的所述代理转发参数。7.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:将所述用户请求发送至所述转发服务模块。8.根据权利要求7所述的方法,其特征在于,所述方法还包括:在集群容器中预设目标请求分发规则,所述目标请求分发规则用于将所述用户请求发送至所述转发服务模块。9.根据权利要求8所述的方法,其特征在于,所述方法还包括:触发所述目标请求分发规则,将所述用户请求发送至所述转发服务模块。10.根据权利要求9所述的方法,其特征在于,所述触发所述目标请求分发规则,将所述用户请求发送至所述转发服务模块,包括:触发所述目标请求分发规则,基于所述目标请求分发规则中的端口将所述用户请求发送至所述转发服务模块。11.一种电子设备,其特征在于,包括:存储器,用于存储所述电子设备的一个或多个处理器执行的指令,以及所述处理器,是所述电子设备的一个或多个处理器之一,用于执行权利要求1-10任一项所述的服务访问方法。12.一种可读存储介质,其特征在于,所述可读介质上存储有指令,所述指令在电子设备上执行时使得所述电子设备执行权利要求1-10任一项所述的服务访问方法。

技术总结
本申请涉及集群容器技术领域,公开了一种服务访问方法、电子设备及介质,服务访问方法中通过在集群容器中部署一个转发服务模块以及配置一条请求分发规则,在获取到客户端发送的用户请求时,触发用于将用户请求发送给转发服务模块的请求分发规则,将用户请求发送至转发服务模块,并且将用户请求中客户端需要访问的服务的服务名写入转发服务模块的初始配置的代理转发规则,控制转发服务模块执行写入服务名后的代理转发规则,写入服务名后的代理转发规则用于将用户请求转发至集群容器中用户请求需要访问的服务,如此,仅需要配置一条请求分发规则,可以实现集群容器外部的客户端对集群容器内部的服务的访问,可以简化配置请求分发规则的操作。分发规则的操作。分发规则的操作。


技术研发人员:陈登月 莫元武
受保护的技术使用者:易保网络技术(上海)有限公司
技术研发日:2023.04.26
技术公布日:2023/8/1
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐