gateway的application配置及404问题解决、redis配置

文章详细描述了如何配置SpringCloudGateway进行路由映射,包括Eureka服务发现和路由规则设置,以及如何整合Redis以实现会话管理,解决了404问题。最后演示了Redis的启动和使用过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、gateway配置
server:
  port: 10081
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka
    register-with-eureka: true
    fetch-registry: true
spring:
  application:
    name: gateway
  cloud:
    gateway:
      mvc:
        routes:
          - id: base
            uri: http://localhost:8081
            predicates:
              - Path=/base/**
            filters:
              - StripPrefix=1
本文的http://localhost:8081直接访问的是index.html网页,当配置网关后,输入的网址为localhost:10081/base,网关通过predicates,找到相关uri,组成http://localhost:8081
/base/发送请求,这个链接是访问不到index.html的,这时就用到了filters: - StripPrefix=1,将请求中的第一个路径去掉,也就变成了http://localhost:8081,这样就能访问到index.html

下方链接介绍了404相关解决办法:
Spring Cloud Gateway 路由不生效显示 404 页面是怎么回事?应该怎么办? - 知乎

二、redis配置

1、在网关和相关模块下引入依赖

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.session</groupId>
        <artifactId>spring-session-data-redis</artifactId>
    </dependency>
    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
    </dependency>

2、启动类添加

@EnableRedisHttpSession
@Bean

3、application配置

spring:
  application:
    name: base
  session:
    redis:
      repository-type: default
  data:
    redis:
      host: localhost
      port: 6379

4、测试

base1的test类创建session

base2的test类获取session并打印

启动注册中心regcenter、网关gateway、base1、base2

输入localhost:10081/base,

Cannot get Jedis connection---------忘开redis了,输入命令,redis-server,启动redis

成功

输入base2网址,点击test,后台就会打印sessionid。

redis配置完成。

在使用Gateway的时候,我们需要在application.yml文件中进行配置,具体步骤如下: 1. 配置端口号 在application.yml文件中,我们需要配置Gateway的端口号。示例代码如下: server: port: 8080 2. 配置路由 我们需要在application.yml文件中配置Gateway的路由信息,以指定请求的转发规则。示例代码如下: spring: cloud: gateway: routes: - id: user_service uri: lb://user-service predicates: - Path=/user/** - id: order_service uri: lb://order-service predicates: - Path=/order/** 在上面的代码中,我们配置了两个路由:user_service和order_service。其中,id表示路由的名称,uri表示请求将要被转发到的服务地址,predicates表示请求的匹配规则,这里匹配的是路径。 3. 配置负载均衡 在Gateway中,我们还可以配置负载均衡。示例代码如下: spring: cloud: gateway: discovery: locator: enabled: true 上面的代码表示启用服务发现功能,Gateway将会自动从注册中心中获取服务信息,并进行负载均衡。 4. 配置限流 在Gateway中,我们还可以配置限流。示例代码如下: spring: cloud: gateway: routes: - id: user_service uri: lb://user-service predicates: - Path=/user/** filters: - name: RequestRateLimiter args: key-resolver: "#{@userKeyResolver}" redis-rate-limiter.replenishRate: 1 redis-rate-limiter.burstCapacity: 1 上面的代码表示对user_service路由进行限流,限制每秒只能接受一次请求。其中,filters表示过滤器,RequestRateLimiter表示限流器,args表示参数,key-resolver表示限流的key,redis-rate-limiter.replenishRate表示填充速率,redis-rate-limiter.burstCapacity表示突发容量。 以上就是使用Gatewayapplication.yml的配置方法。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值