本技术涉及分布式领域,尤其涉及一种服务路由方法、微服务单元化架构、电子设备和存储介质。
背景技术:
1、在微服务架构中,服务可以是按照业务粒度进行切分的,各自进行开发和部署,因此,可以将服务器进行单元化部署,形成微服务单元化架构。在微服务单元化架构中,一个微服务单元能完成所有业务操作的自包含集合,在这个集合中包含了业务所需的服务。
2、目前,在微服务单元化架构下,客户端接收到用户的终端设备发送的业务请求,该业务请求可以被路由到预先设定的微服务单元中,通过该微服务单元对业务请求进行处理。但存在业务请求无法被处理的情况。
技术实现思路
1、本技术提供一种服务路由方法、微服务单元化架构、电子设备和存储介质,用以解决业务请求可能无法被处理的问题。
2、第一方面,本技术提供一种服务路由方法,应用于微服务单元化架构中的客户端,所述微服务单元化架构还包括切片定位服务器、多个微服务单元以及区域网关,每个微服务单元包含业务所需的服务,所述多个微服务单元包括预设的用于处理业务请求的目标微服务单元和备用微服务单元,所述服务路由方法包括:
3、根据所述业务请求的业务要素,向所述切片定位服务器发送调用请求,以得到用于处理所述业务请求的微服务单元信息,所述切片定位服务器用于基于所述业务要素检测所述目标微服务单元是否异常,异常时向所述客户端返回目标备用微服务单元的信息,正常时向所述客户端返回所述目标微服务单元的信息;
4、基于所述微服务单元信息,向多个区域网关中的第一区域网关路由所述业务请求,以通过所述第一区域网关向所述微服务单元信息表示的微服务单元路由所述业务请求,所述第一区域网关为所述微服务单元信息表示的微服务单元对应的区域网关。
5、一种可能的实现中,所述基于所述微服务单元信息,向多个区域网关中的第一区域网关路由所述业务请求,包括:
6、在向多个区域网关中的第一区域网关路由所述业务请求时,将所述微服务单元信息作为url参数或rpc附件携带在向所述第一区域网关发送的路由请求中。
7、一种可能的实现中,所述根据所述业务请求的业务要素,向所述切片定位服务器发送调用请求,包括:
8、根据所述业务请求的业务要素,向所述切片定位服务器的切片定位接口发送调用请求。
9、一种可能的实现中,所述基于所述微服务单元信息,向多个区域网关中的第一区域网关路由所述业务请求之前,还包括:
10、通过springcloud软负载组件,从注册中心获取服务实例列表,所述服务实例列表中包括多个区域网关以及所述多个微服务单元的对应关系;
11、基于所述微服务单元信息,在所述服务实例列表中确定所述第一区域网关。
12、一种可能的实现中,所述备用微服务单元的个数为多个,所述多个备用微服务单元中的至少一个备用微服务单元对应所述多个区域网关中第二区域网关。
13、第二方面,本技术实施例提供了一种服务路由方法,应用于微服务单元化架构中的切片定位服务器,所述微服务单元化架构还包括客户端以及多个微服务单元,每个微服务单元包含业务所需的,所述多个微服务单元包括预设的用于处理业务请求的目标微服务单元和备用微服务单元,所述服务路由方法包括:
14、接收所述客户端根据所述业务请求的业务要素的调用请求;
15、响应所述调用请求,基于所述业务要素检测所述目标微服务单元是否异常;
16、向所述客户端发送用于处理所述业务请求的微服务单元信息,以使得所述客户端向所述微服务单元信息表示的微服务单元发送所述业务请求,其中,异常时所述微服务单元信息为目标备用微服务单元的信息,正常时所述微服务单元信息为所述目标微服务单元的信息。
17、一种可能的实现中,所述基于所述业务请求的信息要素检测到目标微服务单元是否异常,包括:
18、基于所述业务要素,在多个微服务单元中确定所述目标微服务单元;
19、当检测到所述目标微服务单元存在异常标识时,确定所述目标微服务单元异常,不同种类的异常对应的异常标识是不同的。
20、一种可能的实现中,所述基于所述业务要素,在多个微服务单元中确定所述目标微服务单元,包括:
21、基于所述业务要素,通过切片算法在多个微服务单元中确定所述目标微服务单元,所述切片算法包括哈希取模算法或一致性哈希算法。
22、一种可能的实现中所述接收所述客户端根据所述业务请求的业务要素的调用请求,包括:
23、接收所述客户端根据所述业务请求的业务要素对切片定位接口的调用请求。
24、第三方面,本技术提供一种微服务单元化架构,包括客户端、切片定位服务器、区域网关以及多个微服务单元;每个微服务单元包含业务所需的服务,所述多个微服务单元包括预设的用于处理业务请求的目标微服务单元和备用微服务单元,其中:
25、所述客户端,用于根据所述业务请求的业务要素,向所述切片定位服务器发送调用请求;
26、所述切片定位服务器,用于接收所述客户端根据所述业务请求的业务要素的调用请求;并响应所述调用请求;并响应所述调用请求,基于所述业务要素检测所述目标微服务单元是否异常;向所述客户端发送用于处理所述业务请求的微服务单元信息,其中,异常时所述微服务单元信息为目标备用微服务单元的信息,正常时所述微服务单元信息为所述目标微服务单元的信息;
27、所述客户端,还用于基于所述微服务单元信息,向多个区域网关中的第一区域网关路由所述业务请求,所述第一区域网关为所述微服务单元信息表示的微服务单元对应的区域网关;
28、所述第一区域网关,用于接收路由请求,所述路由请求中携带所述业务请求,以及,向所述微服务单元信息表示的微服务单元路由所述业务请求。
29、一种可能的实现中,客户端,具体用于在向多个区域网关中的第一区域网关路由所述业务请求时,将所述微服务单元信息作为url参数或urlrpc附件携带在路由请求中。
30、切片定位服务器,具体用于基于所述业务要素,在多个微服务单元中确定所述目标微服务单元;并且当检测到所述目标微服务单元存在异常标识时,确定所述目标微服务单元异常,不同种类的异常对应的异常标识是不同的。
31、一种可能的实现中,客户端,具体用于根据所述业务请求的业务要素,向所述切片定位服务器的切片定位接口发送调用请求。
32、切片定位服务器,具体用于基于所述业务要素,通过切片算法在多个微服务单元中确定所述目标微服务单元,所述切片定位算法包括哈希取模算法或一致性哈希算法。
33、一种可能的实现中,客户端,具体用于通过springcloud软负载组件,从注册中心获取服务实例列表,所述服务实例列表中包括多个区域网关以及所述多个微服务单元的对应关系;并基于所述微服务单元信息,在所述服务实例列表中确定所述第一区域网关。
34、切片定位服务器,具体用于接收所述客户端根据所述业务请求的业务要素对切片定位接口的调用请求。
35、一种可能的实现中,所述备用微服务单元的个数为多个,所述多个备用微服务单元中的至少一个备用微服务单元对应所述多个区域网关中第二区域网关。
36、第四方面,本技术实施例还提供了一种电子设备,该电子设备包括:处理器,以及与所述处理器通信连接的存储器;
37、所述存储器存储计算机执行指令;
38、所述处理器执行所述存储器存储的计算机执行指令,以实现上述第一方面或第二方面任一种可能的实现方式中所述的方法。
39、第五方面,本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现上述第一方面或第二方面任一种可能的实现方式中所述的方法。
40、第六方面,本技术实施例还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时,实现上述第一方面或第二方面任一种可能的实现方式中所述的方法。
41、本技术提供的服务路由方法、微服务单元化架构、电子设备和存储介质,该服务路由方法可以应用于微服务单元化架构中的客户端,客户端根据业务请求的业务要素,向切片定位服务器发送调用请求,以得到用于处理业务请求的微服务单元信息,切片定位服务器用于基于业务要素检测目标微服务单元是否异常,异常时向客户端返回目标备用微服务单元的信息,正常时向客户端返回目标微服务单元的信息。客户端基于微服务单元信息,向多个区域网关中的第一区域网关路由业务请求,以通过第一区域网关向微服务单元信息表示的微服务单元路由业务请求,第一区域网关为微服务单元信息表示的微服务单元对应的区域网关。这样,目标微服务单元有备用的目标备用微服务单元,切片定位服务可以根据目标微服务单元是否异常向客户端返回正常的微服务单元的信息,使得客户端能够接收到可以正常处于业务请求的微服务单元的信息,使得业务请求可以被路由到该微服务单元中,业务请求能够被正常处理。