时间:2020-08-20来源:www.pcxitongcheng.com作者:电脑系统城
在微服务架构中,一个系统会被拆分为很多个微服务。那么作为客户端要如何去调用这么多的微服务呢?如果没有网关的存在,我们只能在客户端记录每个微服务的地址,然后分别去调用。这样的话会产生很多问题,例如:
为解决上面的问题所以引入了网关的概念:所谓的API网关,就是指系统的统一入口,它封装了应用程序的内部结构,为客户端提供统一服务,一些与业务本身功能无关的公共逻辑可以在这里实现,诸如认证、鉴权、监控、路由转发等。
比较流行的网关对比
使用nginx的反向代理和负载均衡可实现对api服务器的负载均衡及高可用lua是一种脚本语言,可以来编写一些简单的逻辑, nginx支持lua脚本
基于Nginx+Lua开发,性能高,稳定,有多个可用的插件(限流、鉴权等等)可以开箱即用。 问题:只支持Http协议;二次开发,自由扩展困难;提供管理API,缺乏更易用的管控、配置方式。
Netflix开源的网关,功能丰富,使用JAVA开发,易于二次开发 问题:缺乏管控,无法动态配置;依赖组件较多;处理Http请求依赖的是Web容器,性能不如Nginx
Spring公司为了替换Zuul而开发的网关服务,将在下面具体介绍。
Spring Cloud Gateway是Spring公司基于Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。它的目标是替代Netflix Zuul,其不仅提供统一的路由方式,并且基于 Filter 链的方式提供了网关基本的功能,例如:安全,监控和限流。
路由(Route) 是 gateway 中最基本的组件之一,表示一个具体的路由信息载体。主要定义了下面的几个信息:
采用前面学过的Sentinel组件来实现网关的限流
<dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-spring-cloud-gateway-adapter</artifactId> </dependency>
基于Sentinel 的Gateway限流是通过其提供的Filter来完成的,使用时只需注入对应的SentinelGatewayFilter实例以及 SentinelGatewayBlockExceptionHandler 实例即可。
GatewayConfig2023-05-29
电脑显示网络电缆被拔出如何解决方法2022-11-07
默认网关不可用解决方法2022-11-02
局域网内如何设置指定用户访问共享文件夹最近有不少小伙伴都碰到了电脑没有网络适配器的情况,无法连接上网络,很是苦恼,不知道怎么解决,其实出现这种情况的原因有两种,一种是网卡驱动问题或者网络设置问题,另一种就是网卡损坏了或者路由器损坏了,下面小编为大家带来...
2022-09-23
最近有不少小伙伴说自己电脑的网速很慢,想要给电脑提提速,但是却不知道有什么方法,为了解决大家的问题,小编到网上搜集了四种提高电脑网速的方法,全部整合在下面的文章中了,大家如果觉得网速过慢的话,可以用小编带来的方法哦...
2022-09-13