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

什么是网关?

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

 

 

网关作用及功能

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

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

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

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

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

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

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

 

常用网关框架

Zuul  SringCloud对应的网关  

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

 

 

网关涉及原理

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

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

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

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

 

网管实现动态路由:

动态路由(不必要每次服务地址变动都要重新配置网关重新启动)

原理:

可以在网关数据库建一张表,用来存储不同服务对应的配置信息。然后配置一个前端入口,每次动态的在页面修改配置信息完成数据库修改。

后端网关路由读取这张表完成配置

分类: 分布式系统架构

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值