核心功能-实际上是个过滤器组合
- 请求路由
- 继承Hystrix
- 权限控制
- 限流(控制入口,控制出口)
快速入门代码实现
-
新建gateway_service服务,加入gateway相关依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> </dependency>
-
创建gateway的启动类,加入@SpringBootApplication注解即可
server: port: 10010 #服务端口 spring: application: name: gateway-server #指定服务名 cloud: gateway: routes: - id: user-service-route # 当前路由的唯一标识,可以随便写,但是需要见名知意 # uri: http://127.0.0.1:8001,http://127.0.0.1:8002,http://127.0.0.1:8003 # 路由的目标微服务地址 uri: http://127.0.0.1:8001 # 路由的目标微服务地址 predicates: # 断言 判断 前端浏览器发送url和当前path是否匹配 - Path=/user/** # 按照路径匹配的规则 # - id: order-service-route # 当前路由的唯一标识 # uri: http://127.0.0.1:9081 # 路由的目标微服务地址 # predicates: # 断言 判断 前端浏览器发送url和当前path是否匹配 # - Path=/order/** # 按照路径匹配的规则
-
执行测试即可
gateway使用eureka注册中心实现负载均衡
- pom文件中添加eureka-client依赖
<dependencies> <!--网关依赖--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> </dependency> <!--eaueka客户端依赖--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>