网关:微服务架构的 “交通枢纽”
在微服务架构中,网关(API Gateway)扮演着至关重要的角色,它是客户端与微服务之间的中间层,负责请求路由、负载均衡、安全认证等核心功能。没有网关的微服务系统会面临诸多问题,而网关的引入则能有效解决这些痛点。
没有网关的微服务系统面临的问题
当微服务数量增多且客户端直接与各服务通信时,会出现以下典型问题:
- 客户端复杂性飙升
客户端需要记住每个微服务的地址(如http://service-a:8080、http://service-b:8081),并根据业务场景手动选择调用目标。若服务地址变更(如扩容、迁移),客户端需同步修改配置,维护成本极高。 - 服务重构适配成本高
微服务架构中,服务拆分和合并是常态(如将 “用户服务” 拆分为 “用户认证服务” 和 “用户信息服务”)。此时客户端需重新适配新的服务接口和地址,可能导致业务中断。 - 安全认证分散
每个微服务需独立实现认证逻辑(如 Token 校验、权限控制),不仅造成代码冗余,还可能因实现不一致导致安全漏洞(如部分服务遗漏权限校验)。 - 运维复杂度高
- 防火墙配置:需为每个微服务单独开放端口并配置客户端白名单,随着服务数量增加,规则会变得极其繁琐;
- 监控与日志:客户端请求分散在多个服务,难以统一追踪调用链路和排查问题。
- 缺乏流量控制机制
无法统一限制客户端的请求频率,若某服务遭遇突发流量(如秒杀活动),可能直接被压垮并引发连锁反应(服务雪崩)。