一、先定层级(从上到下,流量走向)

外网入口 → 微服务网关 → 注册配置中心 → 业务微服务

完整顺序:客户端/前端

👉 Nginx(最外层)

👉 SpringCloud Gateway(微服务网关)

👉 Nacos / Consul(注册 & 配置中心)

👉 各个业务微服务(bauth、bspot…)

二、四个组件 大白话分工

1. Nginx

定位:外网反向代理、全局流量入口

  • 最外层,直接对接浏览器、外网、移动端
  • 核心能力:域名绑定、HTTPS、静态资源、外网负载均衡、限流、跨域、防攻击
  • 和微服务无关,通用 web 服务器,所有项目都能用
  • 只做「请求转发」,不懂你的业务、不懂服务注册

2. Spring Cloud Gateway(网关)

定位:微服务统一入口、业务层门卫

  • 内网核心网关,所有 bc-xxx 微服务统一入口
  • 核心能力:接口路由、登录鉴权、接口过滤、灰度发布、日志、内网负载
  • 本身不存服务列表,必须依赖 Consul/Nacos 才能找到下游服务

3. Consul / Nacos(同类、二选一)

定位:微服务通讯录 + 配置中心 + 健康考官二者是竞品,功能几乎完全一致:

  1. 服务注册:所有微服务启动后主动登记报到
  2. 服务发现:网关 / Gateway 来查「某服务有哪些可用节点」
  3. 健康检查:定时检测服务挂没挂(你这次改的 critical 90秒 就是它)
  4. 统一配置:全环境 (local/prod/uat) 统一管理配置
  • 你们项目:用 Consul
  • 国内互联网常用:Nacos(阿里)

三、真实请求链路(项目实际流程)

  1. 用户发请求 → 先到 Nginx
  2. Nginx 把微服务请求转发给 Gateway
  3. Gateway 去 Consul 查询:bspot-service 有哪些健康实例
  4. Consul 返回正常节点(剔除 critical 故障节点)
  5. Gateway 转发请求 → 目标业务微服务

四、核心区别一目了然

组件 核心角色 层级 关键作用
Nginx 外网代理 最外层 域名、https、外网流量、静态资源
Gateway 微服务网关 中层 鉴权、路由、业务拦截、内网转发
Consul 注册 + 配置 + 健康检查 底层调度 服务登记、心跳检测、配置统一
Nacos Consul 竞品 底层调度 和 Consul 功能一致,阿里生态常用

五、高频易混点(必记)

  1. Gateway 离不开 Consul/Nacos网关不知道下游服务在哪,必须从注册中心拉取服务列表。

  2. Nginx 和 Gateway 不是一回事

  • Nginx:管外网,偏运维、网络层面
  • Gateway:管微服务业务,偏开发、权限接口层面
  1. Consul/Nacos 不处理请求只负责:登记服务、检查死活、保管配置,不转发流量

  2. 健康检查是谁做的?✅ Consul / Nacos❌ 不是 Gateway、不是 Nginx

六、结合你本次需求总结

你刚提交的代码:

 Consul 健康检查 critical 60 秒超时

作用:Consul 放宽故障判定阈值,不会因为瞬间卡顿误判服务挂掉,然后同步告诉 Gateway,不随便下线服务,减少生产报错。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐