21年gateway保姆教程

以前写的gateway教程太敷衍了,导致我又看不懂写的啥玩意了,今天来写的详细点。

1、第一步导入依赖,没啥说的,这里我还导入了阿里巴巴的nacos,就不说了

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

2、把网关注册到nacos上

package com.zsp.zspoagateway;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@EnableDiscoveryClient
@SpringBootApplication
public class ZspoaGatewayApplication {
    public static void main(String[] args) {
        SpringApplication.run(ZspoaGatewayApplication.class, args);
    }
}

3、在application.properties上配置上nacos地址和网关端口

#nacos的地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
#在nacos的名字
spring.application.name=zspoa-gateway
#对应端口号
server.port=88
#nacos分组地址 台式
spring.cloud.nacos.config.namespace=5395936d-cb44-48f6-a294-236c0b8b9464
spring.cloud.nacos.config.group=gateway

4、写配置类application.yml

spring:
  cloud:
    gateway:
      routes:
        - id: activiti_router
          uri: lb://zspoa-activiti
          predicates:
            - Path=/api/acti/task/**
          filters:
            - RewritePath=/api/(?<segment>/?.*), /$\{segment}
#            zspoa-activiti是nacos的服务名,相当于localhost:88会变成localhost:9000
#          这个的意思就是你访问http://localhost:88/api/acti/task/list
#          会被转发到http://localhost:7000/acti/task/list
#          注意:这里的api会被去掉
        - id: Member_router
          uri: lb://zspoa-member
          predicates:
            - Path=/api/member/**
          filters:
            - RewritePath=/api/(?<segment>/?.*), /$\{segment}
        #这里的lb里面得写nacos配置的其他模块的微服务名称
        #- Path=/api/** 会转发到的是http://localhost:8080/api/captcha.jpg
        #但是原本应该发的地址应该是http://localhost:8080/renrenfast/captcha.jpg

        - id: baidu_test
          uri: https://www.baidu.com
          predicates:
            - Query=url,baidu
#        访问http://localhost:88?url=baidu 会变成www.baidu.com
        - id: qq_test
          uri: https://www.qq.com
          predicates:
            - Query=url,qq


这里需要特别说明一下,👴上次就是没写清楚这些,导致我看了好久没看懂。

spring:
  cloud:
    gateway:
      routes:
        - id: activiti_router
          uri: lb://zspoa-activiti
          predicates:
            - Path=/api/acti/task/**
          filters:
            - RewritePath=/api/(?<segment>/?.*), /$\{segment}

a.首先这里的id是你起的名字,可以随便取。
b.其次zspoa-activiti是注册到nacos上的服务名,会把原本localhost:88(网关端口变成l模块端口的ocalhost:9000)
c. predicates和filters的意思就是,把localhost:88/api/acti/task/list转化为localhost:9000/acti/task/lis,这里的RewritePath=/api/(?/?.*), /${segment}表示把api去掉了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值