consul 和getway 和NGINX 、nacos之间的关系对比
·
一、先定层级(从上到下,流量走向)
外网入口 → 微服务网关 → 注册配置中心 → 业务微服务
完整顺序:客户端/前端
👉 Nginx(最外层)
👉 SpringCloud Gateway(微服务网关)
👉 Nacos / Consul(注册 & 配置中心)
👉 各个业务微服务(bauth、bspot…)
二、四个组件 大白话分工
1. Nginx
定位:外网反向代理、全局流量入口
- 最外层,直接对接浏览器、外网、移动端
- 核心能力:域名绑定、HTTPS、静态资源、外网负载均衡、限流、跨域、防攻击
- 和微服务无关,通用 web 服务器,所有项目都能用
- 只做「请求转发」,不懂你的业务、不懂服务注册
2. Spring Cloud Gateway(网关)
定位:微服务统一入口、业务层门卫
- 内网核心网关,所有
bc-xxx微服务统一入口 - 核心能力:接口路由、登录鉴权、接口过滤、灰度发布、日志、内网负载
- 本身不存服务列表,必须依赖 Consul/Nacos 才能找到下游服务
3. Consul / Nacos(同类、二选一)
定位:微服务通讯录 + 配置中心 + 健康考官二者是竞品,功能几乎完全一致:
- 服务注册:所有微服务启动后主动登记报到
- 服务发现:网关 / Gateway 来查「某服务有哪些可用节点」
- 健康检查:定时检测服务挂没挂(你这次改的
critical 90秒就是它) - 统一配置:全环境 (local/prod/uat) 统一管理配置
- 你们项目:用 Consul
- 国内互联网常用:Nacos(阿里)
三、真实请求链路(项目实际流程)
- 用户发请求 → 先到 Nginx
- Nginx 把微服务请求转发给 Gateway
- Gateway 去 Consul 查询:
bspot-service有哪些健康实例 - Consul 返回正常节点(剔除 critical 故障节点)
- Gateway 转发请求 → 目标业务微服务
四、核心区别一目了然
| 组件 | 核心角色 | 层级 | 关键作用 |
|---|---|---|---|
| Nginx | 外网代理 | 最外层 | 域名、https、外网流量、静态资源 |
| Gateway | 微服务网关 | 中层 | 鉴权、路由、业务拦截、内网转发 |
| Consul | 注册 + 配置 + 健康检查 | 底层调度 | 服务登记、心跳检测、配置统一 |
| Nacos | Consul 竞品 | 底层调度 | 和 Consul 功能一致,阿里生态常用 |
五、高频易混点(必记)
-
Gateway 离不开 Consul/Nacos网关不知道下游服务在哪,必须从注册中心拉取服务列表。
-
Nginx 和 Gateway 不是一回事
- Nginx:管外网,偏运维、网络层面
- Gateway:管微服务业务,偏开发、权限接口层面
-
Consul/Nacos 不处理请求只负责:登记服务、检查死活、保管配置,不转发流量。
-
健康检查是谁做的?✅ Consul / Nacos❌ 不是 Gateway、不是 Nginx
六、结合你本次需求总结
你刚提交的代码:
Consul 健康检查 critical 60 秒超时
作用:Consul 放宽故障判定阈值,不会因为瞬间卡顿误判服务挂掉,然后同步告诉 Gateway,不随便下线服务,减少生产报错。
更多推荐




所有评论(0)