分布式系统API网关原理及选型

什么是网关?

两个独立的局域网之间通信的桥梁/ 或可以理解为外部所有请求都会打在网关上,网关对请求分发路由等处理,隐藏了内部服务的各种API接口

分布式系统API网关原理及选型

 

 

网关作用及功能

1. 动态路由   根据请求路由到对应的服务上去,如果服务不可用还会有重试机制

2. 负载均衡   多服务器提供同一种服务,网关会从注册中心拉取各服务注册信息,然后将请求负载均衡处理

3. 流量控制   限制流量 避免内部系统受到冲击

4. 统一鉴权  网关对相关权限验证 (请求者的访问权限,还可实现SSO单点登录)

5. 熔断降级 当服务不可用或者访问量过大,网关可以将请求做降级  打到其他服务器或者做其他处理,提示用户暂时不可用

6. 灰度发布 只给少量服务器升级,通过网关将少量的服务打到已升级的服务器用来测试升级的服务器,大量请求还是打在老版本服务器

7. 日志服务  服务访问情况报表,请求吞吐量,并发数,日常告警

 

常用网关框架

Zuul  SringCloud对应的网关  

Kong   Nginx + Lua 在Nginx运行的Lua应用程序

 

 

网关涉及原理

协议转换 : 每个系统使用的协议不同(http,grpc,dubbo协议)  通过网关进行协调统一

链式处理 : 网关处理请求类似责任链模式  经过各个过滤器处理请求

分布式系统API网关原理及选型

异步请求 : 网关中线程数量有限,每个线程带着请求去访问服务 然后等待服务访问结果返回   这个过程是很浪费时间的,在高并发下无法完成  

异步请求 工作线程不必要等待服务返回结果就可以去处理下一个请求,网关的Reactor线程专门负责select轮询 Socket访问结果,一旦发现有结果返回 就通知工作线程来处理返回结果

分布式系统API网关原理及选型

上一篇:window应用与linux应用设计理念上的区别


下一篇:11.12