技术专家分享:微服务架构学习之微服务网关

为什么要使用微服务网关?

不同的微服务可能会采用不同的网络地址对外发布。而访问客户端的某个完整业务流程,有的时候需要调用多个微服务接口才能完成。如某个购票系统调用微服务结构如下:

如果让客户端直接调用每一个微服务接口,会存在如下问题:

复杂性高。 客户端会多次请求不同的微服务,而且存在跨域请求,每个微服务都需要独立认证。

可扩展性差。 不利于代码重构和微服务重新划分,在业务流程调整的情况下,微服务适当地进行拆分或者合并,在直接通讯的情况下,重构工作难度大。

微服务网关可以解决以上问题,什么是微服务网关呢?

微服务网关在客户端与服务器端之间架起了一座桥梁,所有的外部请求都会先经过微服务网关过滤,客户端只用同微服务网关交互,而无须直接调用特定微服务的接口。基于微服务网关的结构图如下:

微服务网关提供身份认证与安全、审查与监控、动态路由、压力测试、负载分配等功能。具备以下优势:

集中监控。 在微服务网关收集监控数据并将其推送到外部系统进行分析。

统一认证。 在微服务网关上进行统一认证,然后再将请求转发到后端的微服务,而无须在每个微服务中进行认证。

负载均衡。 当请求到达微服务网关时,对于负载高的微服务,通过相应的负载均衡算法和法则,选择合适的服务器进行访问。

Zuul是Netflix开源的微服务网关,Spring Cloud对Zuul进行了整合与增强,目前,Zuul是构建微服务网关不错的选择。

群内提供免费的Java架构学习资料,QQ群:643459718
(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,
MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)

猜你喜欢

转载自blog.csdn.net/weixin_44174165/article/details/89515988