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();
	}
}

下面你就可以通过启动项目,进行测试了。

猜你喜欢

转载自blog.csdn.net/weixin_41349389/article/details/84031892