¿Aún no conoces el punto de entrada de los microservicios? Eche un vistazo aquí, practique con el componente de puerta de enlace real Gateway, y envíelo al alma ~

1. Introducción a la puerta de enlace

El proyecto Gateway proporciona una API Gateway construida sobre el ecosistema Spring, que incluye: Spring 5, Spring Boot 2 y Project Reactor. Spring Cloud Gateway tiene como objetivo proporcionar una forma simple y eficiente de enrutar a las API y brindarles preocupaciones transversales como seguridad, monitoreo/métricas y resiliencia.

Enlace del sitio web oficial a través de la puerta de enlace del tren

Características de Spring Cloud Gateway:

  1. Basado en Spring Framework 5, Project Reactor y Spring Boot 2.0
  2. Capacidad para hacer coincidir rutas en cualquier atributo de solicitud.
  3. Constructor condicional basado en ruta Predicados y filtro filtro
  4. Integración de disyuntores.
  5. Cliente Spring Cloud DiscoveryClient
  6. Constructores condicionales Predicados y filtros para rutas fáciles de escribir
  7. límite de tasa de solicitud
  8. reescritura de ruta

Entonces, ¿por qué necesito usar la puerta de enlace?

La razón principal es que para facilitar el uso del mismo nombre de dominio seguro https al desarrollar el applet correspondiente al servicio Love Talk y el servicio de proyecto completado anterior, los códigos de las dos funciones se escriben en un proyecto, lo que resulta en el modificación de una función a la vez. Al mismo tiempo, afectará el uso de otro servicio, y no logra el concepto de microservicios que realizan sus propias funciones. Por lo tanto, está planeado reconstruir el proyecto utilizando la puerta de enlace puerta de enlace , y finalmente darse cuenta de que un nombre de dominio se reenvía a diferentes servicios de back-end según la ruta.

2. Crear un proyecto de puerta de enlace

2.1 Crear un nuevo proyecto springboot en idea

inserte la descripción de la imagen aquí

2.2 Después de seleccionar los parámetros relevantes, haga clic en Siguiente

inserte la descripción de la imagen aquí

2.3 Comprobar dependencias

inserte la descripción de la imagen aquí

2.4 La estructura completa del proyecto es la siguiente, y luego creamos un nuevo archivo yml

inserte la descripción de la imagen aquí
Este es el archivo pom.xml completo

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.6.6</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.yinfeng</groupId>
    <artifactId>gateway</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>gateway</name>
    <description>gateway</description>
    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>2021.0.1</spring-cloud.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </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>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

3. Configurar reglas de reenvío

Configúralo en el archivo yml que creamos anteriormente.

spring:
  application:
    name: gateway
  cloud:
    gateway:
      routes:
        - id: test
          # 转发的地址
          uri: http://127.0.0.1:8888
          predicates:
            # 配置url路径匹配规则
            - Path=/test/**
server:
  port: 8081

4. Pruébalo

Inicie primero una prueba de servicio de back-end

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

Después de iniciar el servicio de puerta de enlace
inserte la descripción de la imagen aquí
, acceda a nuestro nombre de dominio de puerta de enlace y pruebe la ruta a través de PostMan

inserte la descripción de la imagen aquí

Se puede ver que nuestra solicitud se puede reenviar normalmente a la interfaz del servicio de prueba, y también se ha recibido la respuesta de la interfaz, y nuestro objetivo finalmente se ha completado.

5. Resumen

No es fácil salir a trabajar, espero que todos los hermanos puedan encontrar el trabajo que les gusta, ¡y el Año del Tigre estará lleno! Yo tambien espero que hermanosSeguir, Me gusta, Favorito, ComentarUna ola de apoyo, muchas gracias!

Supongo que te gusta

Origin blog.csdn.net/a1774381324/article/details/124074749
Recomendado
Clasificación