北京中科聚网信息技术有限公司
平台产品
API网关

 API网关

随着微服务架构的流行,API网关也越来越受欢迎。在微服务体系架构中,将应用程序划分为几个低耦合的服务(称为微服务),每个服务都有其独特的功能。尽管微服务提供了许多好处(最显着的是使它更易于开发,部署和维护应用程序的不同部分),但它们却使客户难以快速,安全地访问他们所需的信息。API网关可以充当使用这些微服务的客户端的中央接口,从而解决其中的一些问题。客户端不必访问数十个单独的服务,而是可以向API网关发送单个请求,而API网关本身将聚集微服务。

 API网关实现第三方的业务接口进行应用层的数据交换。API网关封装了系统内部架构,为每个客户端提供一个定制的API。还具有职责:如身份验证、监控、负载均衡、缓存、流控。

API网关核心要点是所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能。通常网关也是提供REST/HTTP的访问API,服务端通过API-GW注册和管理服务。

应用架构

整个平台拆分成3个子系统,Gateway-Core(核心子系统)、Gateway-Admin(管理中心)、Gateway-Monitor(监控中心)。

Gateway-Core负责接收客户端请求,调度、加载和执行组件,将请求路由到上游服务端,处理上游服务端返回的结果等;

Gateway-Admin提供统一的管理界面,用户可在此进行API、组件、系统基础信息的设置和维护;

Gateway-Monitor负责收集监控日志、生成各种运维管理报表、自动告警等。

2021092316351632386128088091299.png

系统架构


1、网关核心子系统通过HAProxy或者Nginx进行负载均衡,为避免正好路由的LB节点服务不可用,可以考虑在此基础上增加Keepalived来实现LB的失效备援,当LB Node1停止服务,Keepalived会将虚拟IP自动飘移到LB2,从而避免因为负载均衡器导致单点故障。DNS可以直接指向Keepalived的虚拟IP。

2、网关除了对性能要求很高外,对稳定性也有很高的要求,引入Zookeeper及时将Admin对API的配置更改同步刷新到各网关节点。

3、管理中心和监控中心可以采用类似网关子系统的高可用策略,如果嫌麻烦管理中心可以省去Keepalived,相对来说管理中心没有这么高的可用性要求。

4、理论上监控中心需要承载很大的数据量,比如有1000个API,平均每个API一天调用10万次,对于很多互联网公司单个API的量远远大于10万,如果将每次调用的信息都存储起来是不现实的,也没有太大的必要。可以考虑将每个API每分钟的调用情况汇总后进行存储,比如1分钟的平均响应时间、次数、流量、正确率等等。

5、数据库选型可以灵活考虑,原则上网关在运行时要尽可能减少对DB的依赖,否则IO延时会严重影响网关性能。可以考虑首次访问后将API配置信息缓存,Admin对API配置更改后通过Zookeeper通知网关刷新,这样一来DB的访问量可以忽略不计,团队可根据自身偏好灵活选型。


2021092316371632386222016095343.png

分组管理

分组是Api的管理单元。每个分组下可以有多个Api,可以为当前时刻下的分组内的所有Api进行统一的配置。

2021092316411632386495542025211.png

2021092316411632386512690025183.png

API管理实现API接口的管理和调度工作。API的管理方式包括通过Swagger进行API接口的管理和API在线测试管理、API参数的管理及API绑定信息的管理等。

限流策略

2021092316421632386558600035184.png

API设置面向外部系统的调用进行安全性、稳定性、保密性等方面的参数设置。API设置中的功能设置包括限流策略管理、IP规则管理、应用授权管理和签名密匙管理等

2021092316431632386597517070260.png

IP规则针对访问源的IP指定相应的访问策略规则。只有负责用户定义规则的IP才能够接收API网关提供的服务。平台支持规格的新建、修改、删除、查询、导出等基本功能。

应用管理

2021092316441632386642362080171.png

提供API网关服务相关应用的集中管理。应用管理支持应用的创建、编辑、删除、查询、查看详情、Excel导出等管理。

签名密匙

2021092316441632386696584041589.png

API管理客户端为用户提供API网关接口可视化管理工具。用户通过API客户端进行检索自己需要的API,请求API网关接口的签名密匙和应用密匙等。

实例规格

2021092316451632386744423037036.png

实例规格是API网关分配给客户的资源的限制以及安全策略等设置。客户只能使用在其限额内的网关资源。创建分组时,需要输入分组所在的实例的id。

实例管理

2021092316461632386783976041584.png

基于一体化运营平台中运行的实际实例对象进行集中管理。支持实例的创建、修改、删除、检索等功能。

网关日志

2021092316471632386825250062754.png

网关日志在后台运行,自动记录对api的每一次访问,可以查询及删除网关日志,也可对当前系统中存在的网关日志进行统计。

告警规则及日志

2021092316481632386891547004808.png


北京总部
  • 北京市海淀区大钟寺13号华杰大厦B座3层306-310室
  • 010-56181910
郑州子公司
  • 郑州市金水区紫荆山路5号
  • 0371-60921991
石家庄办事处
  • 石家庄市新华路294号盛安大厦5楼
  • 18633018987
Copyright 2011-2021 All Rights Reserved | 京ICP备13013562号

微信号

抖音号