https://img/17-12-21-11334157.jpg

在微服务架构中,当数十甚至上百个服务对外提供能力时,如何让外部客户端安全、高效、统一地访问它们?服务网关就是这个问题的标准答案,它扮演着系统边界“守护者”与“调度员”的关键角色。

如上图所示,服务网关作为整个系统的单一入口点,所有外部请求都首先到达网关,由它负责将请求路由到内部相应的微服务。这带来了诸多核心优势:

统一接入与安全防护:在网关层统一实现身份认证、权限校验、SSL终止、防爬虫/攻击等安全策略,避免每个服务重复建设。

流量管控与监控:可以方便地实施限流、熔断、降级等弹性策略,并集中收集访问日志和监控指标。

协议转换与聚合:可对外提供统一的API(如RESTful),在内部进行协议转换(如转成gRPC),或将多个细粒度服务调用聚合成一个粗粒度接口返回。

业务隔离与路由:这正是灰度发布的基础。网关可以根据请求头、用户属性等规则,将流量精确路由到不同版本的服务实例上。

下图展示了Spring Cloud生态中,使用Zuul作为服务网关的典型架构:
https://img/18-1-13-34465023.jpg

因此,服务网关远不止是一个简单的反向代理,它是微服务体系中不可或缺的基础设施,负责处理所有与业务无关的横切关注点,让内部服务能更专注于业务逻辑本身。