004-spring cloud alibaba之gateway网关-负载均衡

gateway负载均衡

主要内容:使用自动负载均衡能力/手动负载均衡。启动多个user服务。让gateway自动选择需要路由到哪个user服务中。这其中有两点需要关心

  • 自动负载能力:一般采用轮询的方式调用user服务
  • gateway查找规则:user服务注册到nacos上gateway会按照注册的服务名称自动映射到对应的服务
    手动负载均衡同样可以实现上面的能力还可以避免暴露nacos服务注册的服务名
  • 自动负载均衡
  • 手动负载均衡

1、gateway自动负载均衡

1.1 启动服务情况

启动两个user服务

服务 端口
user 9001
user 9002
gateway 9999

服务都注册到nacos上面

1.2 gateway配置文件

yaml 复制代码
server:
  port: 9999
spring:
  application:
    name: gateway-service
  cloud:
    nacos:
      discovery:
        server-addr: 10.106.114.1:8848
    gateway:
      discovery:
        locator:
          enabled: true

其中gateway.discovery.locator.enabled=true就是开启自动负载功能。此时如何访问:http://localhost:9999/user/user/hello 就能够自动访问到user服务。前面一个/user/是在找nacos上面的服务,后面一个/user/是我们前面配置的context-path。所以我们可以去掉context-path然后重启user,这样访问路径就变成:http://localhost:9999/user/hello

1.2.1 user服务配置文件变更

变更前

yaml 复制代码
server:
  port: 9001
  servlet:
    context-path: /user/

spring:
  application:
    name: user
  cloud:
    discovery:
      server-addr: 127.0.0.1:8848

management:
  endpoint:
    web:
      exposure:
        include:'*'

变更后

yaml 复制代码
server:
  port: 9001

spring:
  application:
    name: user
  cloud:
    discovery:
      server-addr: 127.0.0.1:8848

management:
  endpoint:
    web:
      exposure:
        include:'*'

这种自动负载会暴露我们nacos注册的服务名字。还可以使用手动负载

2、手动负载均衡

修改gateway配置文件

yaml 复制代码
server:
  port: 9999
spring:
  application:
    name: gateway-service
  cloud:
    nacos:
      discovery:
        server-addr: 10.106.114.1:8848
    gateway:
      discovery:
        locator:
          enabled: false
      routes:
        - id: user
          uri: lb://user
          predicates:
            - Path=/cjxz/**
          filters:
            - StripPrefix=1 # 去掉第一个路径:/cjxz/
management:
  endpoint:
    web:
      exposure:
        include:'*'
相关推荐
蝎子莱莱爱打怪6 天前
XZLL-IM干货系列 04|Netty 长连接实战:Pipeline 怎么排、心跳怎么跳、连接怎么管
后端·微服务·面试
SamDeepThinking7 天前
Java微服务练习方式
java·后端·微服务
米丘10 天前
微前端之 Web Components 完全指南
微服务·html
霸道流氓气质13 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
霸道流氓气质13 天前
Spring Boot 微服务性能优化完全指南
spring boot·微服务·性能优化
地瓜伯伯13 天前
从MESI缓存一致性协议讲透synchronized的底层
java·spring boot·spring·spring cloud·微服务·springcloud
Devin~Y13 天前
大厂 Java 面试实录:从音视频内容社区到 AI RAG 的全链路技术设计
java·spring boot·redis·spring cloud·微服务·kafka·音视频
递归尽头是星辰13 天前
AI 访问数据仓库:从直连到微服务化
数据仓库·人工智能·微服务·dataagent·ai数据治理
就改了14 天前
Windows 环境 SkyWalking 完整实操教程
windows·微服务·skywalking
至乐活着14 天前
Docker Compose多服务编排实战:从零搭建Node.js+MySQL+Redis全栈应用
docker·微服务·devops·容器编排·compose