网关:springcloud - gateway 组件的使用


1. 添加依赖
    <!-- 网关 -->

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


2. 添加启动类

    @SpringBootApplication
    @EnableDiscoveryClient
    @EnableCircuitBreaker
    public class GatewayApplication {

    public static void main(String[] args) {
        SpringApplication.run(GatewayApplication.class, args);
    }

3. 在application.yml配置文件中配置gateway
    格式:
        spring:
            cloud:
                gateway:
                    routes: #路由
                         - id:  #唯一, 用于识别,一般用 application name
                           uri: #转发路径
                           predicates: #断言, 请求的匹配方式
                           filters: #过滤器
                         - id: no2
                           uri:
                           predicates:
                           filters:

完整示例:

server:
  port: 8900
spring:
  application:
    name: gateway-server
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
        namespace: c466ac9b-3146-477a-9e0a-6e2a37cc080c
        group: 1st
        username: nacos
        password: nacos
    gateway:
      routes: #网关路由配置. 每一组路由包括: id(唯一标识), uri(转发目标服务器路径), predicates(断言,匹配方式), filters(过滤器)
        - id: user-consumer    #一般用 application name
#          uri: http://localhost:8180 #指定ip和端口转发,用得少
          uri: lb://user-consumer #指定服务转发(常用)
          predicates:
            - Path=/user/** #指定路径匹配方式,此例需路径前带有user
#            - Path=/user/**,/token/**     多个匹配方式
            - Method=POST  #请求方式匹配
#            - After=2019-01-01T00:00:00+08:00[Asia/Shanghai]  #匹配 2019年1月1日0点0分0秒之后的所有请求, -Before 为之前
#            - Between=2019-01-01T00:00:00+08:00[Asia/Shanghai], 2019-07-01T00:00:00+08:00[Asia/Shanghai] #时间范围之内
#            - Header=X-Request-Id, \d+  #请求头匹配
#            - Host=**.baidu.com  #host域名匹配,  www.baidu.com,md.baidu.com
#            - Query=smile  #请求参数匹配 ,eg:localhost:8080?smile=x&id=2
#            - RemoteAddr=192.168.1.1/24 #ip地址匹配
          filters:
            - StripPrefix=1 #转发时, 将指定个数的路径去除,如果不设置filters, 则将整个路径全部转发
        #第二个网关配置
        - id: test-consumer
          uri: lb://test-consumer
          predicates:
            - Path=/test/**
          filters:
            - StripPrefix=1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值