分享

Kong

 ThinkTank_引擎 2017-04-13

1.什么是Kong

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

具有以下特点:

  • 可扩展性: Kong 通过简单的增加机器节点,可以很容易的水平扩展,它通过简单的增加机器节点.

  • 模块化: Kong 可以通过插件方式扩展,这个插件可以很容易的通过一个RESTful管理API来配置.

  • 可以运行在任何基础架构: Kong 可以处处运行. 您可以在云或内部部署环境,包括单个或多个数据中心的设置,私有或者邀请受限APIs.

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

2.请求的工作流

为了更好的理解Kong这个系统,下面是一个典型API的请求工作流:

一旦Kong在运行,每个请求所作出的API将先请求Kong服务器,然后它会被代理到最终的API。这些插件在 API 请求响应循环的生命周期中被执行。Kong将有效地将成为每个API请求的入口点。

Kong 是在客户端和(微)服务间转发API通信的API网关,通过插件扩展功能。Kong 有两个主要组件:

  • Kong Server :基于nginx 的服务器,用来接收 API 请求。

  • Apache Cassandra :用来存储操作数据

你可以通过增加更多 Kong Server 机器对 Kong 服务进行水平扩展,通过前置的负载均衡器向这些机器分发请求。根据文档描述,两个Cassandra节点就足以支撑绝大多数情况,但如果网络非常拥挤,可以考虑适当增加更多节点。

对于开源社区来说,Kong 中最诱人的一个特性是可以通过插件扩展已有功能,这些插件在 API 请求响应循环的生命周期中被执行。插件使用 Lua 编写,而且 Kong 还有如下几个基础功能 :HTTP 基本认证密钥认证、CORS( Cross-origin Resource Sharing,跨域资源共享)、TCPUDP、文件日志、API 请求限流、请求转发以及 nginx 监控。

Kong包 可运行在某些 Linux 发行版、Mac OS X 和 Docker 中,无论是本地机还是端服务器皆可运行。

除了免费的开源版本,Mashape 还提供了付费的 企业版 ,其中包括技术支持、使用培训服务以及 API 分析插件。

3.Kong的技术架构

在我们所有的应用程序和API的前端是Kong。我们使用ElasticSearch来搜索同时存储在多个数据库中的数据,包括:MongoDB的和PostgreSQL,Redis的和Cassandra(为了解决不同的问题域)。我们所有的产品都可以运行在AWS上,对于较小的项目,我们使用Heroku和DigitalOcean来做一些实验原型或测试环境。 Splunk的是我们集中式日志记录系统,Datadog作为一个统一的监控仪表板,以及PagerDuty警报。


Architecture


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多