Gateway 路由转发

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_38233650/article/details/97620951
Maven 配置文件:
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>ch17-1</artifactId>
        <groupId>runke</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>ch17-1-2-gateway</artifactId>
    <packaging>jar</packaging>
    
    <name>ch17-1-2-gateway</name>
    <url>http://springcloud.cn</url>

    <properties>
        <spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
    </properties>

    <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>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <!--Spring Cloud Gateway的Starter-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

    <repositories>
        <repository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </pluginRepository>
        <pluginRepository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>

</project>

一.路由基本转发

代码配置如下:

package runke;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.cloud.gateway.route.RouteLocator;

import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder;

import org.springframework.context.annotation.Bean;

@SpringBootApplication

public class SpringCloudGatewayApplication {

/**

* 基本的转发

* 当访问http://localhost:8080/jd

* 转发到http://jd.com

* @param builder

* @return

*/

@Bean

public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {

return builder.routes()

//basic proxy

.route(r ->r.path("/jd")

.uri("https://www.baidu.com/").id("jd_route")

).build();

}

public static void main(String[] args) {

SpringApplication.run(SpringCloudGatewayApplication.class, args);

}

}

2.yml 配置

server:

port: 8081

spring:

application:

name: spring-cloud-gateway

cloud:

gateway:

routes: #当访问http://localhost:8080/baidu,直接转发到https://www.baidu.com/

- id: baidu_route

uri: https://baidu.com/

predicates:

- Path=/baidu

logging: ## Spring Cloud Gateway的日志配置

level:

org.springframework.cloud.gateway: TRACE

org.springframework.http.server.reactive: DEBUG

org.springframework.web.reactive: DEBUG

reactor.ipc.netty: DEBUG

management:  #springcloud gateway 提供了一个 gateway actuator,该 EndPoint 提供Filter 以及 routes 的信息查询以及指定route APi 接口  url 地址:http://localhost:8080/actuator/gateway/routes

endpoints:

web:

exposure:

include: '*'

security:

enabled: false

猜你喜欢

转载自blog.csdn.net/qq_38233650/article/details/97620951