示例项目结构
同Spring Cloud Netflix —— Hystrix
GateWay
加入GateWay模块
- pom文件
<?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>com.xiecongcong</groupId>
<artifactId>spring-cloud-Hystrix</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>spring-cloud-gateway-server-8080</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
</dependencies>
</project>
- 配置类
spring:
application:
name: spring-cloud-gateway-server-8080
cloud:
gateway:
routes:
# 依据路径路由
- id: config_route
predicates:
- Path=/gateway/**
filters:
- StripPrefix=1
uri: http://localhost:8081
# 依据cookie路由
- id: cookie_route
predicates:
- Cookie=name,mic
uri: http://localhost:8081
# 负载均衡,在eureka上拿到集群的服务
- id: lb_route
predicates:
- Path=/lb/**
filters:
- StripPrefix=1
uri: lb://order-server-provider
discovery:
locator:
enabled: true
lower-case-service-id: true
server:
port: 8080
eureka:
client:
service-url:
defaultZone: http://localhost:9090/eureka
- 启动类
@EnableEurekaClient
@SpringBootApplication
public class SpringCloudGatewayServer8080Application {
public static void main(String[] args) {
SpringApplication.run(SpringCloudGatewayServer8080Application.class, args);
}
}
启动注册中心 —> 启动order服务 —> 启动order服务1 —> 启动gateway服务