@IT·互联网

API网关初探

2020-10-19  本文已影响0人  lizhuoming

引言

本文旨在给不了解网关的人以宏观上的了解,使大家从整体上去认识网关,以及网关涉及的技术。

API网关

正向代理和反向代理

什么是网关

API网关位于客户端和服务器集群之间,作为唯一的服务入口,除了充当反向代理外,通常还用来处理非业务功能,如身份验证、监控、负载均衡、缓存、请求分片与管理、静态响应处理。

网关的作用

请求转发:

非业务功能

API网关实现功能

api_gateway_1.jpg

请求转发

连接复用:后端服务如果是 HTTP 协议,尽量采用连接池或者 Http2,测试连接复用和不复用性能有几倍的差距。(TCP 建立连接成本很高)

协议转换:如HTTP->GRPC

服务发现

服务发现,指的是只通过服务名获取服务列表(IP+端口),一般使用分布式存储系统实现,如Etcd,zookeeper等。

负载均衡

负载均衡,将请求合理的分配给下游服务器,实现资源利用的最大化。

随机负载:随机挑选目标服务器IP

轮询负载:ABC三台服务器, ABCABC依次轮询

加权负载:给目标设置访问权重,按照权重轮询

一致性hash负载:相同的请求尽可能落到同一个服务器上,相同的请求指的是请求是进行hash的key值,如user_id,ip等。

限流熔断

限流

限流:通过对并发限速,以达到拒绝服务,排队或等待、降级等处理

漏桶限流:本质是限制消费速率,可类比水龙头。

漏桶.jpg

令牌桶限流:首先,令牌桶也是以恒定的速率消费。区别于漏桶,当令牌桶中有token积攒的时侯(生产速率>消费速率),这些token可以用于突增的请求。

如果token过期时间<产生时间,则token会越来越少,导致消费速率过低;

所以,两者速率应该相等。

令牌桶.jpg
熔断降级

权限认证

JWT

数据统计

参考资料

上一篇 下一篇

猜你喜欢

热点阅读