第一篇:告别接口硬编码!Spring Cloud Gateway 保姆级入门,微服务网关看这篇就够了
家人们谁懂啊!微服务拆多了之后,前端同学天天追着我问: “用户服务的端口又换了?” “订单服务集群了我该调哪个地址?” “我一个页面要对接 8 个微服务,光 ip 端口记了一整页!”
别慌!今天这篇保姆级教程,带你用 Spring Cloud Gateway 一次性解决这些痛点,从 0 到 1 搭起微服务的统一大门,告别硬编码的噩梦,CV 就能跑的那种!
一、先灵魂拷问:微服务为啥非得整个 Gateway?
咱先看传统的调用方式:前端 Vue 直接对接 N 个微服务,每个微服务都有自己的 ip 和端口,这不纯纯给自己找罪受吗?
直接暴露两个致命问题:
-
ip+port 硬编码地狱:微服务地址一换,前端全项目搜了改,改完还得重新部署,服务多了能改到吐;
-
完全没法做负载均衡:同一个微服务搭了集群,前端根本不知道该轮询哪个实例,流量全堆到一个节点上,不崩才怪。
这时候 Gateway 就闪亮登场了!它就相当于咱们微服务小区的正门保安 + 快递驿站:
-
所有前端请求,统一走 Gateway 这一个入口,前端只需要记 Gateway 的地址就行;
-
Gateway 帮你把请求精准转发到对应的微服务,还自带负载均衡,集群实例轮着来;
-
后续不管微服务怎么扩缩容、换地址,前端完全无感知,咱们后端自己在网关里改就行,爽翻!
二、一句话搞懂 Gateway 到底是个啥?
Spring Cloud Gateway,说白了就是 Spring Cloud 官方亲儿子,专门用来替换老牌网关 Zuul 的流量大管家。 它基于 WebFlux(底层是 Reactor 模式的 NIO 异步非阻塞)开发,性能直接拉满,比 Zuul1.x 强了不止一个档次。
核心三大功能,记住就行: ✅ 路由:请求往哪转,听它的 ✅ 过滤:请求进来要做什么校验、改什么参数,听它的 ✅ 限流:流量太大要拦多少,还是听它的
⚠️ 新手第一大坑预警: Gateway 的启动依赖是spring-cloud-starter-gateway,千万不要同时引入spring-boot-starter-web依赖! 因为 Gateway 是基于 WebFlux 的,和 SpringMVC 不兼容,同时加了直接启动报错,别问我怎么知道的😭
三、3 步搭好 Gateway 工程,CV 就能跑
废话不多说,直接上实操,3 步搞定一个能跑的网关服务,全程复制粘贴就行。
1. 第一步:pom.xml 引入核心依赖
咱们要对接 Nacos 做服务发现,所以除了网关依赖,还要加 Nacos 的服务发现依赖:
2. 第二步:application.yml 配置文件
核心配置就俩:对接 Nacos 注册中心,给网关服务起个名字,后续路由全靠这个服务名注册到 Nacos:
3. 第三步:启动类编写
超简单,就加两个注解,直接启动:
到这,你的网关服务就已经能启动了!接下来就是核心的路由配置,告别硬编码的关键一步。
四、核心玩法:路由配置,搞定请求转发
路由就是 Gateway 的灵魂,说白了就是:什么样的请求,该转发到哪个微服务。
1. 先避坑:硬编码路由的错误示范
很多新手刚上手会这么写,直接把 uri 写死成固定 ip 端口:
这么写的问题:
-
又回到了硬编码的老问题,服务地址一换就得改配置重启;
-
地址拼错、端口写错,直接就会报
URL拼写可能存在错误,请检查的报错,别问,踩过!
2. 正确姿势:基于 Nacos 的动态路由
咱们都把网关注册到 Nacos 了,直接让网关从 Nacos 里拉取服务列表不就行了? uri 直接写成lb://服务名,lb 就是 loadBalance(负载均衡)的缩写,后面跟的服务名,必须和 Nacos 里注册的微服务名完全一致!
就这么一行配置,直接解决了硬编码和负载均衡两大痛点!
-
微服务扩缩容、换地址,Nacos 会自动同步,网关完全不用改;
-
自带轮询负载均衡,集群实例流量均匀分配,再也不怕单点故障。
五、新手高频踩坑合集(帮你们填平了!)
-
报错:URL 拼写可能存在错误,请检查 排查方向:uri 地址拼写错误、服务名和 Nacos 里的不一致、ip 端口写错、协议头(http/https)写错;
-
启动直接报错,提示 WebFlux 相关冲突 排查方向:是不是引入了
spring-boot-starter-web依赖,赶紧删掉! -
请求转发 404 排查方向:断言的 Path 路径和微服务的接口路径不匹配,大概率是没加 StripPrefix 过滤器,下一篇会详细讲~
到这,你已经完全入门 Spring Cloud Gateway 了!从为什么要用,到怎么搭建,再到核心的路由配置,全给你讲明白了。 下一篇咱们进阶,教你自定义断言、自定义过滤器,搞定登录校验、请求日志、权限管控这些业务需求,把网关玩出花!
觉得有用的家人们,点赞收藏关注走一波,后续持续更新微服务实战干货,有问题评论区见~
更多推荐


所有评论(0)