安徽工建设信息网站,行业门户网,张家界做网站找哪家好,3d虚拟人物制作软件API网关是什么 在日常工作中#xff0c;不同的场合下#xff0c;我们可能听说过很多次网关这个名称#xff0c;这里说的网关特指API网关#xff08;API Gataway#xff09;。字面意思是指将所有API的调用统一接入API网关层#xff0c;由网关层负责接入和输出。
那么在什…API网关是什么 在日常工作中不同的场合下我们可能听说过很多次网关这个名称这里说的网关特指API网关API Gataway。字面意思是指将所有API的调用统一接入API网关层由网关层负责接入和输出。
那么在什么情况下需要一个API网关呢下面从单体应用到微服务演变的过程去阐述回顾单体应用时代在业务简单、团队组织规模很小的时候我们常常把功能都几种与一个应用中统一部署统一测试如下图 1.png
随着业务的迅速发展组织成员日益增多。将所有的功能几种在一个Tomcat中的时候没更新一个功能模块势必要更新所有的程序。牵一发而动全身系统将很难维护。
单体应用满足不了日趋增长的需求之后微服务出现了。我们利用微服务的思想将原来的单体应用进行微服务化。将原来集中于一体的功能如商品、订单服务进行拆分每个功能模块又各自的自成体系的发布、运维等功能。这样就解决了单体应用的弊端如下 TaobaoAPI接入
参数说明
通用参数说明 参数不要乱传否则不管成功失败都会扣费url说明 https://api-gw.onebound.cn/平台/API类型/ 平台淘宝京东等 API类型:[item_search,item_get,item_search_shop等]version:API版本key:调用key,测试key:test_api_keysecret:调用secret,测试secret:(不用填写)cache:[yes,no]默认yes将调用缓存的数据速度比较快result_type:[json,xml,serialize,var_export]返回数据格式默认为jsonlang:[cn,en,ru] 翻译语言默认cn简体中文secret:密钥 API:item_search 参数说明 q:搜索关键字cat:分类IDstart_price:开始价格end_price:结束价格sort:排序[bid,bid,bid2,_bid2,_sale,_credit] (bid:总价,bid2:商品价格,sale:销量,credit信用,加前缀为从大到小排序)page:页数page_size:每页宝贝数量默认40seller_info:是否获取商家信息[yes,no],默认yes API:item_get 参数说明: num_iid:宝贝ID
2.png
这时我们还没有看到API Gateway。举例来说原先IOS、Android、PC客户端调用服务的地方需要多个URL地址有订单的、商品的、用户的。微服务化后就必须有统一的出入口这种情况下API Gateway就出现了。API Gateway很好的解决了微服务下调用、统一接入等问题如下图所示 3.png
有了API网关之后各个API服务提供团队可以专注于自己的业务逻辑处理而API罔顾赞更专注于安全、流量、路由等问题。
看到上面的图示与描述我们可能会想到另外一个与网关类似的东西——代理。网关与代理的区别代理是纯粹的数据透传协议不会发生变化网关在数据透传的背景下还会设计协议的转换比如上图中用户请求传输到网关的协议是HTTP通过网关透传到下游则可能已经转换成企业内部的RPC了(比如JSF、Dubbo等企业自研的RPC框架)。
API网关涵盖的基本功能 一个API网关的基本功能包含了统一接入、协议适配、流量管理与容错、以及安全防护这四大基本功能构成了网关的核心功能。网关首要的功能是负责统一接入然后将请求的协议转换成内部的接口协议在调用的过程中还要有限流、降级、熔断等容错的方式来保护网关的整体稳定同时网关还要做到基本的安全防护防刷控制以及黑白名单比如IP白名单等基本安全措施如下图所示 4.png
API网关的架构示例 除了基本的四大功能网关运行良好的环境还包括注册中心比如ZK读取已发布的API接口的动态配置。为了实现高性能将数据全部异构到缓存如Redis中同时还可以配合本地缓存来进一步提高网关系统的性能。为了提高网关的吞吐率可以使用NIOServlet 3 异步的方式还可以利用Servlet 3 的异步特性将请求线程与业务线程分开为后续的线程池隔离做好基本的支撑。访问日志的存储我们可以放到Hbase中如果要作为开放网关使用那么需要一个支持OAuth2.0的授权中心。还可以引入Nginx lua的方式将一些基本的校验判断放到应用系统之上这样可以更轻量化的处理接入的问题整体的网关架构示例如下所示 5.png
小结 文章中我们从单体系统到微服务系统演变引入了API网关的概念紧接着介绍了API Gateway的基本功能以及展示一个线上生产网关的架构示意图。通过本片文章可以对API Gateway的内容有一个基本的认知。