为什么要使用微服务网关?
不同的微服务可能会采用不同的网络地址对外发布。而访问客户端的某个完整业务流程,有的时候需要调用多个微服务接口才能完成。如某个购票系统调用微服务结构如下:
微服务如果让客户端直接调用每一个微服务接口,会存在如下问题:
复杂性高。客户端会多次请求不同的微服务,而且存在跨域请求,每个微服务都需要独立认证。
可扩展性差。不利于代码重构和微服务重新划分,在业务流程调整的情况下,微服务适当地进行拆分或者合并,在直接通讯的情况下,重构工作难度大。
微服务网关可以解决以上问题,什么是微服务网关呢?
微服务网关在客户端与服务器端之间架起了一座桥梁,所有的外部请求都会先经过微服务网关过滤,客户端只用同微服务网关交互,而无须直接调用特定微服务的接口。基于微服务网关的结构图如下:
微服务微服务网关提供身份认证与安全、审查与监控、动态路由、压力测试、负载分配等功能。具备以下优势:
集中监控。在微服务网关收集监控数据并将其推送到外部系统进行分析。
统一认证。在微服务网关上进行统一认证,然后再将请求转发到后端的微服务,而无须在每个微服务中进行认证。
负载均衡。当请求到达微服务网关时,对于负载高的微服务,通过相应的负载均衡算法和法则,选择合适的服务器进行访问。
Zuul是Netflix开源的微服务网关,Spring Cloud对Zuul进行了整合与增强,目前,Zuul是构建微服务网关不错的选择。
网友评论