java 单机接口限流处理方案
298
2022-09-08
本文关于微服务网关是什么意思?微服务网关有哪些?
1. 微服务网关
不同的微服务一般会有不同的网络地址,客户端在访问这些微服务时必须记住几十甚至几百个地址,这对于客户端方来说太复杂也难以维护。
如果让客户端直接与各个微服务通讯,可能会有很多问题:
1.客户端会请求多个不同的服务,需要维护不同的请求地址,增加开发难度
2.在某些场景下存在跨域请求的问题
3.加大身份认证的难度,每个微服务需要独立认证
因此,我们需要一个微服务网关,介于客户端与服务器之间的中间层,所有的外部请求都会先经过微服务网关。客户端只需要与网关交互,只知道一个网关地址即可,这样简化了开发还有以下优点:
1、易于监控
2、易于认证
3、减少了客户端与各个微服务之间的交互次数
2.服务网关的概念
什么是微服务网关?
API网关是一个服务器,是系统对外的唯一入口。API网关封装了系统内部架构,为每个客户端提供
一个定制的API。API网关方式的核心要点是,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能.通常,网关也是提供REST/HTTP的访问API。服务端通过API-GW注册和管理服务。
作用和应用场景?
网关具有的职责,如身份验证、监控、负载均衡、缓存、请求分片与管理、静态响应处理。当然,最主
要的职责还是与“外界联系”。
3. 常见的API网关实现方式
Kong
基于Nginx+Lua开发,性能高,稳定,有多个可用的插件(限流、鉴权等等)可以开箱即用。
问题:只支持Http协议;二次开发,自由扩展困难;提供管理API,缺乏更易用的管控、配置方
式。
Zuul
Netflix开源,功能丰富,使用JAVA开发,易于二次开发;需要运行在web容器中,如Tomcat。
问题:缺乏管控,无法动态配置;依赖组件较多;处理Http请求依赖的是Web容器,性能不如
Nginx;
Traefik
Go语言开发;轻量易用;提供大多数的功能:服务路由,负载均衡等等;提供WebUI
问题:二进制文件部署,二次开发难度大;UI更多的是监控,缺乏配置、管理能力;
Spring Cloud Gateway
SpringCloud提供的网关服务
Nginx+lua实现
使用Nginx的反向代理和负载均衡可实现对api服务器的负载均衡及高可用
问题:自注册的问题和网关本身的扩展性
1.3 基于Nginx的网关实现
https://blog.csdn.net/qq_39759664/article/details/116567269
目前流行的用得较多的几个网关:Zuul 2、SpringCLoud Gateway、Kong、OpenResty。他们都基于各自不同的语言实现,也都有着各自不同的优缺点。
网关 | 语言 | 限流 | 鉴权 | 监控 | 易用性 | 可维护性 | 成熟度 |
SpringCoud Gateway | 基于Java语言 | 可以通过IP,用户,集群限流,提供了相应的接口进行扩展。 | 普通鉴权OAuth 2.0 | GateWay Mettries Filter | 简单易用 | Spring系列可扩展性强,易配置可维护性好 | Spring社区成熟,资源少 |
Zuul 2 | 基于Java语言 | 可以通过配置文件配置集群限流和但服务限流,也可通过Filter实现限流扩展。 | Filter中实现 | Filter中实现 | 参考资料少 | 可维护性差 | 开源不久,资源少 |
OpenResty | 基于Nginx+Lua | 需要Lua开发 | 需要Lua开发 | 需要开发 | 几单易用,但是需要Lua开发 | 可维护性差,需要大量lua脚本 | 成熟,资料多 |
Kong | 基于Nginx+Lua | 根据秒、分、时、天月、年,根据用户进行限流。可在源码的基础上进行开发。 | 普通鉴权,Key Auth鉴权,HMAC,OAuth2.0 | k可上报datadog,记录请求数量、请求数据量、应答数据量、接收与发送的时间间隔、状态码数量、Kong内运行时间 | j简单易用,API转发通过管理员接口配置,开发需要Lua | 可维护性差,需要大量lua脚本库 | 相对成熟,插件开源 |
基于不同的业务场景,选择不同的API网关组件,应对不同的系统流量和并发数。不同的业务场景,在技术选型上也是及其重要的一环。例如:Kong的性能虽然非常不错,适合做流量网关,但是对于复杂的业务系统不建议用Kong,因为会给系统的性能带来缺陷。再如SpringCloud GateWay/Zuul2对于Java技术栈来说比较方便,但是对于lua开发语言不方便。
上述就是小编为大家整理的微服务网关是什么意思?微服务网关有哪些的相关内容。
国内(北京、上海、广州、深圳、成都、重庆、杭州、西安、武汉、苏州、郑州、南京、天津、长沙、东莞、宁波、佛山、合肥、青岛)eolink软件分析、比较及推荐。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~