spring gateway配合nacos实现负载均衡

1,注册服务到nacos

首先让所有服务都能被nacos给发现,具体教程:整合spring cloud+nacos

2,搭建gateway服务

然后我们建立一个服务,并引入spring gateway相关依赖

xml 复制代码
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-loadbalancer</artifactId>
        </dependency>

⚠️ 重要 :Gateway必须使用WebFlux模型,若项目中存在spring-boot-starter-web依赖,需移除:

webflux和webmvc两套系统是冲突的。

3,配置路由规则

我们在配置文件中写上相应的路由配置,假设我们已经配置了一个名为demo的服务

yml 复制代码
    gateway:
      routes:
        - id: demo
          uri: lb://demo
          predicates:
            - Path=/demo/**
          filters:
            - StripPrefix=1

其中,lb: 这个配置代表负载均衡,StripPrefix 代表要去掉的地址数,意味着在我进行路由转发的时候要去掉/demo。

4. 多实例负载均衡测试

接下来我们在idea里面找到服务列表,右键现有demo服务->编辑所选配置->修改选项->允许多个实例

再编辑这个实例的配置,用同样的找到添加虚拟机选项设置,并写上-Dserver.port=新端口号,我们就有两台同样的服务了。

我的网关服务部署在8888端口,我们提前写好相关接口/user/test

接下来我来访问4次http://localhost:8888/demo/user/test

可以看到两台服务各打印了两次

相关推荐
Volunteer Technology2 小时前
SpringAI Chat Client (四)
人工智能·spring
ShiJiuD6668889993 小时前
springboot基础篇
java·spring boot·spring
敲敲千反田3 小时前
Spring AI
java·人工智能·spring
拽着尾巴的鱼儿4 小时前
spring 动态代理
java·后端·spring
云烟成雨TD4 小时前
Spring AI Alibaba 1.x 系列【52】Interrupts 中断机制:案例演示
java·人工智能·spring
云烟成雨TD5 小时前
Spring AI Alibaba 1.x 系列【51】Graph 整体运行全流程
java·人工智能·spring
_waylau6 小时前
“Java+AI全栈工程师”问答02:Spring Boot 自动配置原理
java·开发语言·spring boot·后端·spring
Ting-yu6 小时前
SpringCloud快速入门(4)---- nacos安装与使用
java·spring·spring cloud
霸道流氓气质7 小时前
Spring AI ChatMemory 对话记忆配置JDBC方式到Mysql数据库实战示例与原理讲解
数据库·人工智能·spring
Java面试题总结7 小时前
我删掉了项目里 80% 的 try-catch,系统反而更稳了
spring