MST

星途 面试题库

面试题:微服务架构中Spring Cloud Gateway智能路由的基本原理及配置

请阐述Spring Cloud Gateway实现智能路由的基本原理。并举例说明如何在配置文件中配置一个简单的基于路径匹配的智能路由规则,将请求转发到指定的微服务实例。
33.9万 热度难度
后端开发微服务架构

知识考点

AI 面试

面试题答案

一键面试

Spring Cloud Gateway实现智能路由基本原理

Spring Cloud Gateway基于Spring WebFlux框架构建,采用了Reactor响应式编程模型。其智能路由主要通过路由规则和过滤器链实现:

  1. 路由规则:定义了如何将请求从客户端发送到目标微服务。它包含一个ID、一个目标URI(微服务地址)、一组断言(Predicate)。断言用于匹配请求的属性,如请求路径、请求方法、请求头等,当请求满足断言条件时,该路由规则生效。
  2. 过滤器链:在请求被路由到目标微服务之前或之后,可以对请求和响应进行处理。过滤器可以修改请求头、请求体,或者对响应进行统一处理等。通过一系列过滤器组成的过滤器链,实现对请求和响应的细粒度控制。

基于路径匹配的智能路由规则配置示例

假设我们有一个名为service - example的微服务,以下是在application.yml配置文件中的配置:

spring:
  cloud:
    gateway:
      routes:
        - id: example_route
          uri: lb://service - example
          predicates:
            - Path=/example/**

在上述配置中:

  • id:路由的唯一标识符,这里是example_route
  • urilb://service - example表示使用负载均衡(lb)将请求转发到名为service - example的微服务实例。如果不使用负载均衡,也可以直接写具体的微服务地址,如http://192.168.1.100:8080
  • predicatesPath=/example/**是一个断言,表示当请求路径以/example开头时,该路由规则生效,请求会被转发到service - example微服务。