1. 程式人生 > >spring cloud gateway怎麼用,五分鐘教會大家

spring cloud gateway怎麼用,五分鐘教會大家

第一步

在你的springboot下的pom檔案中加入maven依賴

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

第二步

在你的springboot專案下配置檔案中(bootstrap.yml)新增gateway的配置資訊

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/         #將閘道器服務註冊到註冊中心
spring:
  application:
    name: service-gateway
  cloud:
    gateway:
      routes:
        - id: api-a
          uri: http://localhost:8888  #uri:目標服務地址
          predicates:
          - Path=/api-a/**
          filters:                     #filters:過濾規則
          - StripPrefix=1
        - id: api-b                # 區分不同功能
          uri: lb://service-demo   #lb://開頭(lb代表從註冊中心獲取服務)服務名稱
          predicates:
          - Path=/api-b/**         #去掉api-a,只保留**部分
          filters:
          - StripPrefix=1

配置方式二

可以使用啟動類進行路由配置規則

/**
 * gateway 方式實現
 */
@SpringBootApplication
public class ServiceGatewayApplication {
 
	public static void main(String[] args) {
		SpringApplication.run(ServiceGatewayApplication.class, args);
	}
 
	@Bean
	public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {
		StripPrefixGatewayFilterFactory.Config config =
				new StripPrefixGatewayFilterFactory.Config();
		config.setParts(1);
		return builder.routes()
				.route("api-a", r -> r.path("/api-a/**")
						.filters(f -> f.stripPrefix(1))
						.uri("http://localhost:8888"))
				.route("api-b", r -> r.path("/api-b/**").
						filters(f -> f.stripPrefix(1)).
						uri("lb://service-demo"))
				.build();
	}
}

下面你就可以通過啟動專案,進行測試了。