[Spring Cloud] Configuración y uso de la puerta de enlace

prefacio

Gateway es en realidad algo nativo de SpringCloud, pero todavía quiero hablar de eso aquí, porque cuando usamos nacos, después de que el front-end llama al servicio, generalmente llama a nuestra puerta de enlace, y luego la puerta de enlace selecciona nuestro servicio de nacos, y luego llama al servicio back-end

En la arquitectura de microservicios actual, las puertas de enlace juegan un papel vital. Actúa como una puerta de enlace entre la aplicación y el mundo exterior, manejando las solicitudes de los clientes y reenviándolas a los microservicios apropiados. Como miembro del ecosistema Spring Cloud, Spring Cloud Gateway nos brinda una solución de puerta de enlace poderosa y flexible.

Este artículo analizará en profundidad la configuración y el uso de Spring Cloud Gateway para ayudar a los lectores a comprender y aplicar mejor esta excelente herramienta de puerta de enlace.

El primer paso es crear un proyecto springboot.

inserte la descripción de la imagen aquí

El segundo paso es agregar dependencias.

  <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Greenwich.SR6</spring-cloud.version>
        <spring-cloud-alibaba.version>2.1.0.RELEASE</spring-cloud-alibaba.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring-cloud-alibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

El tercer paso es escribir el archivo yml.

spring:
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.0.93:8848
    gateway:
      routes:
        - id: service-provider
          uri: lb://service-provider
          predicates:
            - Path=/provider/** #以provider开头的请求都负载到provider服务
          filters:
            - RewritePath=/provider/(?<segment>.*), /$\{
    
    segment} #过滤掉url里的provider,例如http://ip:port/provider/getCity -> http://ip:port/getCity
  application:
    name: gateway
server:
  port: 8999

Interprete el archivo de configuración:

  • RewritePath: filtre el proveedor en la URL, por ejemplo, http://ip:port/provider/getCity -> http://ip:port/getCity
  • Ruta: las solicitudes que comienzan con el proveedor se cargan en el servicio del proveedor
  • id: la identificación única de la ruta
  • uri: el servicio en medio de nacos que hay que devolver

Esta es nuestra consola nacos, que tiene un servicio de proveedor de servicios, que se encarga de proporcionar api

inserte la descripción de la imagen aquí

Entonces configuramos el uri en las rutas en yml comolb://service-provider

Si el front-end quiere acceder a nuestro servicio, solo necesita visitar http://localhost:8999/provider, que comienza con proveedor, por lo que
configuramos Path como- Path=/provider/**

Pero la API proporcionada por nuestro proveedor de servicios es /echo/{string}, por lo que debemos eliminar el proveedor, por lo que RewritePath está configurado como/provider/(?<segment>.*), /$\{segment}

El cuarto paso es iniciar la clase principal de inicio.

inserte la descripción de la imagen aquí

Entonces el servicio de puerta de enlace se registrará en nacos

inserte la descripción de la imagen aquí

Entonces podemos acceder a los servicios en nuestros nacos a través de nuestro servicio de puerta de enlace
inserte la descripción de la imagen aquí

La API proporcionada por el proveedor es la siguiente

inserte la descripción de la imagen aquí

Página web oficial:

  • https://spring.io/projects/spring-cloud-gateway
    dirección del almacén:
  • https://gitee.com/WangFuGui-Ma/spring-cloud-alibaba/tree/master

Resumir

A través de la introducción de este artículo, comprendemos los conceptos centrales y la configuración básica de Spring Cloud Gateway. Su flexibilidad y escalabilidad lo hacen ideal para construir arquitecturas de microservicios confiables y de alto rendimiento.

Espero que este artículo sea útil para los lectores cuando usen Spring Cloud Gateway y pueda profundizar la comprensión y la aplicación de este componente. Puede usar Spring Cloud Gateway para implementar fácilmente servicios de puerta de enlace seguros y eficientes en sus proyectos futuros.

Supongo que te gusta

Origin blog.csdn.net/u011397981/article/details/132011320
Recomendado
Clasificación