小麦带你学服注册体系四

本文涉及的产品
云原生 API 网关,700元额度,多规格可选
简介: api的网关体系

# API网关


**API网关是什么?**


API网关是随着微服务(Microservice)概念兴起的一种架构模式。原本一个庞大的单体应用(All in one)业务系统被拆分成许多微服务(Microservice)系统进行独立的维护和部署,服务拆分带来的变化是API的规模成倍增长,API的管理难度也在日益增加,使用API网关发布和管理API逐渐成为一种趋势。一般来说,API网关是运行于外部请求与内部服务之间的一个流量入口,实现对外部请求的协议转换、鉴权、流控、参数校验、监控等通用功能。




**为什么要做API网关?**


在没有API网关之前,业务研发人员如果要将内部服务输出为对外的HTTP API接口。通常要搭建一个Web应用,用于完成基础的鉴权、限流、监控日志、参数校验、协议转换等工作,同时需要维护代码逻辑、基础组件的升级,研发效率相对比较低。此外,每个Web应用都需要维护机器、配置、数据库等,资源利用率也非常差。


![API网关-为什么做](API网关-为什么做.png)




**Tomcat自身问题**


- **缓存太多**。Tomcat用了很多对象池技术,内存有限的情况下,流量一高很容易触发gc


- **内存copy**。Tomcat默认用堆内存,所以数据需要读到堆内,而后端服务是Netty,有堆外内存,需要通过数次copy


- **Tomcat读body是阻塞的**。Tomcat的NIO模型和Reactor模型不一样,读body是Block的

- **Tomcat对链接重用的次数是有限制的**。默认是100次,当达到100次后,Tomcat会通过在响应头里添加Connection:close,让客户端关闭该链接,否则如果再用该链接发送的话,会出现400


**Tomcat Buffer**


Tomcat buffer 的关系图如下:


![TomcatBuffer](TomcatBuffer.png)


通过上面的图,我们可以看出,Tomcat 对外封装的很好,内部默认的情况下会有三次 copy。




## 基本功能


- **反向代理**:类似于Nginx效果,实现外部HTTP请求反向代理转为内部RPC请求进行转发

- **动态发现**:加入后端微服务中心,实现动态发现后端服务实例

- **负载均衡**:根据后端服务的实例列表进行负载均衡分配

- **服务路由**:可以根据请求URL中的参数进行不同服务的调用路由




## 功能设计


### API发布


使用API网关的控制面,业务研发人员可以轻松的完成API的全生命周期管理,如下图所示:


![API网关-API生命周期管理](API网关-API生命周期管理.png)


业务研发人员从创建API开始,完成参数录入、DSL脚本生成;接着可以通过文档和MOCK功能进行API测试;API测试完成后,为了保证上线稳定性,管理平台提供了发布审批、灰度上线、版本回滚等一系列安全保证措施;API运行期间会监控API的调用失败情况、记录请求日志,一旦发现异常及时发出告警;最后,对于不再使用的API进行下线操作后,会回收API所占用的各类资源并等待重新启用。整个生命周期,全部通过配置化、流程化的方式,由业务研发人员全自助管理,上手时间基本在10分钟以内,极大地提升了研发效率。




### 配置中心


API网关的配置中心存放API的相关配置信息——使用自定义的DSL(Domain-Specific Language,领域专用语言)来描述,用于向API网关的数据面下发API的路由、规则、组件等配置变更。配置中心的设计上使用统一配置管理服务和本地缓存结合的方式,实现动态配置,不停机发布。API的配置如下图所示:


![API网关-配置中心](API网关-配置中心.png)


API配置的详细说明


- **Name、Group**:名字、所属分组

- **Request**:请求的域名、路径、参数等信息

- **Response**:响应的结果组装、异常处理、Header、Cookies信息

- **Filters、FilterConfigs**:API使用到的功能组件和配置信息

- **Invokers**:后端服务(RPC/HTTP/Function)的请求规则和编排信息


相关文章
|
4月前
|
人工智能 自然语言处理 算法
瓴羊Quick Service智能客服算法通过国家网信办深度合成服务算法备案
瓴羊Quick Service智能客服算法通过国家网信办深度合成服务算法备案
|
6月前
|
人工智能 供应链 安全
推进数据入港 宝尊与瓴羊共同构建管理品牌的“好数据”
推进数据入港 宝尊与瓴羊共同构建管理品牌的“好数据”
|
新零售 存储 供应链
严选库存中心设计实践
严选库存中心设计实践
337 0
《快递行业云上技术服务白皮书》——3. 快递业务介绍——3.3 快递业务主体流程
《快递行业云上技术服务白皮书》——3. 快递业务介绍——3.3 快递业务主体流程
109 0
|
存储 消息中间件 JSON
|
消息中间件 NoSQL 安全
|
运维 监控 微服务
|
缓存 NoSQL Dubbo
小麦带你学服注册体系二
含金量文章,你不得不看的好文章