spring cloud微服务分布式云架构-Gateway入门

Spring Cloud Gateway是Spring官方基于Spring 5.0,Spring Boot 2.0和Project Reactor等技术开发的网关,Spring Cloud Gateway旨在为微服务架构提供一种简单而有效的统一的API路由管理方式。Spring Cloud Gateway作为Spring Cloud生态系中的网关,目标是替代Netflix ZUUL,其不仅提供统一的路由方式,并且基于Filter链的方式提供了网关基本的功能,例如:安全,监控/埋点,和限流等。Spring Cloud大型企业分布式微服务云架构源码请加一七九一七四三三八零

入门案例

接下来,介绍一下简单使用SpringCloud Gateway路由功能

创建项目

新建一个项目,项目种加入SpringCloud Gateway依赖,完整pom如下:



    4.0.0
 
    com.dalaoyang
    springcloud_gateway
    0.0.1-SNAPSHOT
    jar
 
    springcloud_gateway
    springcloud_gateway
 
    
        org.springframework.boot
        spring-boot-starter-parent
        2.0.0.RELEASE
         
    
 
    
        UTF-8
        UTF-8
        1.8
        Finchley.RC1
    
 
    
        
            org.springframework.cloud
            spring-cloud-starter-gateway
        
        
            org.springframework.boot
            spring-boot-devtools
            runtime
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    
 
    
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                ${spring-cloud.version}
                pom
                import
            
        
    
 
    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    
 
 


SpringBoot主程序

在类中配置路由

主程序中加入了一种配置路由的方法,利用@Bean的方式自定义RouteLocator。

package com.dalaoyang;
 
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 {
    public static void main(String[] args) {
        SpringApplication.run(SpringcloudGatewayApplication.class, args);
    }
 
 
 
    @Bean
    public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {
        return builder.routes()
                .route(r -> r.path("/jianshu")
                        .uri("http://www.jianshu.com/u/128b6effde53")
                ).build();
    }
 
}

在配置文件中配置:

server:
  port: 8888
 
spring:
  application:
    name: gateway-service
  cloud:
    gateway:
      routes:
      - id: dalaoyang
        uri: http://www.dalaoyang.cn/
        predicates:
          - Path=/dalaoyang/**
      - id: juejin
        uri: https://juejin.im/user/5aa50b96f265da23866f836e
        predicates:
          - Path=/juejin/**
 

到这里配置完成了。

你可能感兴趣的:(java)