当前位置:   article > 正文

SpringCloud下Gateway网关路由的使用_spring gateway 根据域名路由

spring gateway 根据域名路由

 

SpringCloud下Gateway网关路由的使用

简介

Spring Cloud Gateway 是基于 Spring 生态系统之上构建的 API 网关,API 网关是一个服务器,是系统对外的唯一入口。API 网关封装了系统内部架构,为每个客户端提供定制的 API。

Gateway功能

性能:API 高可用,负载均衡,容错机制。

安全:权限身份认证、脱敏,流量清洗,后端签名(保证全链路可信调用),黑名单(非法调用的限制)。

日志:日志记录,一旦涉及分布式,全链路跟踪必不可少。

监控:记录请求响应数据,API 耗时分析,性能监控。

限流:流量控制,错峰流控,可以定义多种限流规则。

路由:动态路由规则

本文先聊路由的使用

Gateway路由怎么用

本文通过实例演示,需要搭建四个服务,分别是Eureka,资源A,资源B,Gateway,实现通过请求网关访问到资源A和B服务 首先将资源A和B服务以及Gateway网关都注册到Eureka中

资源A服务接口

  1. @RestController
  2. @RequestMapping("/demo")
  3. public class DemoA {
  4. @GetMapping("")
  5. public String resources(){
  6. return "访问资源A服务成功";
  7. }
  8. }

资源B服务接口

  1. @RestController
  2. @RequestMapping("/demo")
  3. public class DemoB {
  4. @GetMapping("")
  5. public String resources(){
  6. return "访问资源B服务成功";
  7. }
  8. }

然后最重要的网关中的配置信息

  1. server:
  2. port: 8082
  3. spring:
  4. application:
  5. name: gateway
  6. cloud:
  7. gateway:
  8. routes:
  9. - id: resources-a #路由规则ID,上下文唯一
  10. uri: lb://resources-a #路由目标的服务名(lb代表从注册中心获取服务)
  11. predicates: #转发路径
  12. - Path=/resources-a/**
  13. filters:
  14. - StripPrefix=1 #转发时去掉Path中第一个节点 配置多个路由时很重要
  15. - id: resources-b
  16. uri: lb://resources-b
  17. predicates:
  18. - Path=/resources-b/**
  19. filters:
  20. - StripPrefix=1
  21. eureka:
  22. instance:
  23. prefer-ip-address: true
  24. instance-id: ${spring.application.name}:${spring.cloud.client.ip-address}:${server.port}
  25. client:
  26. service-url:
  27. defaultZone: http://127.0.0.1:8081/eureka

通过配置routes属性达到转发的目的

+ id为路由规则ID,可以随意配置,但是要保证唯一

+ uri可以指定http地址也可以指定Eureka的服务名

+ predicates是配置转发路径/**代表所有接口,可以单独指定某个接口

+ filters它的作用是转发时去掉Path中第一个节点

 

首先测试直接访问A服务

然后测试访问网关,8082是网关的端口,网关路由最终将请求转发到了A,B服务

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/302087
推荐阅读
相关标签
  

闽ICP备14008679号