API Gateway是一个服务器,也可以说是进入系统的唯一节点。这跟面向对象设计模式中的Facade模式很像。API Gateway封装内部系统的架构,并且提供API给各个客户端。它还可能有其他功能,如授权、监控、负载均衡、缓存、请求分片和管理、静态响应处理等。

API Gateway负责请求转发、合成和协议转换。所有来自客户端的请求都要先经过API Gateway,然后路由这些请求到对应的微服务。API Gateway将经常通过调用多个微服务来处理一个请求以及聚合多个服务的结果。它可以在web协议与内部使用的非Web友好型协议间进行转换,如HTTP协议、WebSocket协议。

API Gateway可以提供给客户端一个定制化的API。它暴露一个粗粒度API给移动客户端。以产品最终页这个使用场景为例。API Gateway提供一个服务提供点(/productdetails?productid=xxx)使得移动客户端可以在一个请求中检索到产品最终页的全部数据。API Gateway通过调用多个服务来处理这一个请求并返回结果,涉及产品信息、推荐、评论等。

总结:API Gateway负责请求转发、请求合成和协议转换。它提供给应用客户端一个自定义的API。API Gateway可以通过返回缓存或者默认值的方式来掩盖后端服务的错误。

以下分别介绍两种不同的实现。

1. Kong

1.1 介绍

Kong 是一个可扩展开源的 API 层工具(也可以叫API网关或者API中间件). Kong 运行在任何 RESTful API 的前端,并且可以通过插件方式扩展,这个插件它提供了超越核心平台的额外的功能和服务的。

具有以下特点:

  • 可扩展性: Kong 通过简单的增加机器节点,可以很容易的水平扩展,它通过简单的增加机器节点.
  • 模块化: Kong 可以通过插件方式扩展,这个插件可以很容易的通过一个RESTful管理API来配置.
  • 可以运行在任何基础架构: Kong 可以处处运行. 您可以在云或内部部署环境,包括单个或多个数据中心的设置,私有或者邀请受限APIs.
  • 编程语言:Nginx+Openresty+Lua
  • 存储:Cassandra 分布式Nosql数据库
  • 提供Rest API接口
  • 每个节点是无状态的也就是说可以无限扩容
  • 提供 Authentication(认证)、Security(安全)、Traffic Control(频率限制)、Transformations(请求转化)的插件&很容易自定义插件
  • 可以根据自己的业务需求定制开发
  • 模块化功能:
  • 授权、日志、ip限流、限流、api统计分析、请求转化、跨域、其他功能通过lua编写插件实现。

Kong 构建在高可靠技术,比如NGINX 和Apache Cassandra, 并且为你提供一个易用的 RESTful API 来配置系统。

1.2 请求调用流程

1. Kong启动

2. 每个请求先经过Kong

3. 有Kong代理访问最终API

4. 在请求响应之间,Kong可以执行任何配置的插件,达到增强APIs的目的

总结:Kong作为每个API请求的入口

2. Spring-cloud

2.1 介绍

spring-cloud是spring提供的微服务整合开发框架。Spring Cloud 为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性 Token、全局锁、决策竞选、分布式会话和集群状态)操作的开发工具。使用 Spring Cloud 开发者可以快速实现上述这些模式。

Spring cloud组件介绍可以参照该文章: Spring cloud微服务框架简介

为什么使用spring-cloud

1. 经历过netflix业务考验,国外大规模使用

2. 入门门槛低,国内大批量使用spring

3. 快速搭建

Spring Cloud包含多个子项目:Spring Cloud Config、Spring Cloud Netflix

Spring Cloud 项目主页:http://projects.spring.io/spring-cloud/

API Gateway(API网关)介绍相关推荐

  1. AWS API gateway api CORS错误处理方法

    我们开发了一个 AWS lambda 函数,然后我们使用 AWS API gateway服务将它上线. 我们已经测试 API 并验证它是否按照我们的预期工作,看起来真的很棒. 现在我们准备好将 API ...

  2. API Gateway/API 网关(三) - Kong的使用 - 限流rate limiting(redis)

    一.前言 Kong的限流支持三种方式,分别是本地限流(Local).数据库限流(Cluster)和Redis限流,这三种限流方式采用的限流算法都是计数器法.支持按照秒/分/小时/日/月/年等不同时间单 ...

  3. 谈谈微服务中的 API 网关(API Gateway)

    前言 又是很久没写博客了,最近一段时间换了新工作,比较忙,所以没有抽出来太多的时间写给关注我的粉丝写一些干货了,就有人问我怎么最近没有更新博客了,在这里给大家抱歉. 那么,在本篇文章中,我们就一起来探 ...

  4. api商品分享源码_谈谈微服务中的 API 网关(API Gateway)

    在本篇文章中,我们就一起来探讨一下 API 网关在整个微服务分布式架构中的一个作用. # 背景我们知道在微服务架构风格中,一个大应用被拆分成为了多个小的服务系统提供出来,这些小的系统他们可以自成体系, ...

  5. java api gateway_微服务中的 API 网关(API Gateway)

    背景 我们知道在微服务架构风格中,一个大应用被拆分成为了多个小的服务系统提供出来,这些小的系统他们可以自成体系,也就是说这些小系统可以拥有自己的数据库,框架甚至语言等,这些小系统通常以提供 Rest ...

  6. python 微服务 网关_微服务中的 API 网关(API Gateway)

    我们知道在微服务架构风格中,一个大应用被拆分成为了多个小的服务系统提供出来,这些小的系统他们可以自成体系,也就是说这些小系统可以拥有自己的数据库,框架甚至语言等,这些小系统通常以提供 Rest Api ...

  7. 如何做服务编排/数据聚合?(使用Goku API Gateway实现)

    什么是服务编排/数据聚合? 服务编排/数据聚合 指的是可以通过一个请求来依次调用多个微服务,并对每个服务的返回结果做数据处理,最终整合成一个大的结果返回给前端. 例如一个服务是"查询用户预定 ...

  8. API Gateway简介

    API Gateway,服务网关Chris Richardson 微服务系列 使用API网关构建微服务http://blog.daocloud.io/microservices-2/「Chris Ri ...

  9. 聊聊 API Gateway 和 Netflix Zuul

    转自:http://www.scienjus.com/api-gateway-and-netflix-zuul/?hmsr=toutiao.io&utm_medium=toutiao.io&a ...

  10. traefik gateway api

    背景 在使用istio后开始考虑网关了,istio已经有自己的网关,为什么还要另外找一个别的网关,参考了好几个文章大致结论是,istio的网关功能不够强大,下图红色的部分是istio网关暂时缺失的,所 ...

最新文章

  1. hadoop日常运维
  2. php mysql explain_MySQL Explain详解
  3. Java笔记-JDK搭建WebService客户端其他调用方法
  4. POJ 3050 Hopscotch
  5. 站长必会数据统计工具教程:百度统计 VS GA
  6. 错误C1083无法打开预编译头文件: “Debug\XXX.pch”: No such file or directory 的解决方法
  7. CS229 Lecture 10
  8. JAVA笔记- JAVA集合类之HashMap集合
  9. java蓝桥杯数字黑洞_【蓝桥杯】数字黑洞(5位黑洞数)
  10. jzoj. 4298. 【NOIP2015模拟11.2晚】我的天
  11. 20210622——Redis概述(一)
  12. 网络计算机自动巡检,奇辉巡检机器人 公安巡检机器人 自动巡检报警 安防监控报警...
  13. MIT 6.828 学习笔记4 Lab2实验报告
  14. 根据GPS数据的经纬度取天气预报和地名
  15. 前端vue导出Excel(多sheet)
  16. 向热爱计算机科学的你推荐SICP
  17. 微信营销可以用来做什么?
  18. 正确地使用 BeanUtils.copyProperties
  19. 2013-2020 学年高数试题答案(共21套试卷)
  20. u盘一打开就让格式化怎么办?这样整准行!

热门文章

  1. 畅想未来计算机的绘画作品小学生,畅想未来儿童画绘画作品
  2. 最长递增子序列问题 nyoj 17单调递增最长子序列 nyoj 79拦截导弹
  3. 上皮细胞膜纳米囊泡包裹药物如紫杉醇,喜树碱,阿霉素
  4. 卷积层的dropout - dropblock
  5. 台式计算机中经常使用的硬盘多是,台式电脑硬盘价格大全【图解】
  6. (ICLR-2019)DARTS:可微分架构搜索
  7. 2010年06月《安全天下事之安全的证书与证书体系的安全》
  8. 照片动感影集制作软件哪个好?如何快速制作精美、酷炫的效果?
  9. idea 修改远程 git仓库地址到阿里云code 推送
  10. 人生最靠谱的投资是什么?怎么投?