`
gaojingsong
  • 浏览: 1209031 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

微服务之API网关:Kong

 
阅读更多

 

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

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

2、Apache Cassandra:用来存储操作数据。

 

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

 

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

 

Kong Gateway

The world’s most popular open source API gateway. Built for multi-cloud and hybrid, optimized for microservices and distributed architectures.

 

kong在openresty基础上进行的开发,而openresty基于nginx,所以kong的很多概念和用法都是nginx特色,包括对功能进行描述的词汇,比如upstream services就是nginx设定的upstream。kong很好地封装了nginx,并对外提供了如下的功能接口:

- 云原生:具有平台无关性,kong即可以运行在物理设备也可以运行在kubernetes上

- 动态负载均衡:在多个upstream services基础上进行负载均衡设定

- 基于hash的负载均衡:基于hashing/sticky session的负载均衡

- 断路器:能追踪不健康的upstream services

- 健康检测:对upstream services进行主动或者被动地监控

- 服务发现:可结合consul提供服务注册等功能

- WebSockets:通过WebSockets和upstream service进行通信

- OAuth2.0:可对API方便地添加OAuth2.0进行授权

- 日志:通过HTTP/TCP/UDP等方式进行日志相关操作

- 安全:ACL,机器人检测,黑白名单IP等

- 系统日志:日志可输入到系统日志中

- 监控:提供实时监控功能

- 认证:HMAC/JWT以及基本认证方式

- 限流(Rate-Limiting):基于多变量对请求进行阻塞或者限制

- 转换:对TTP请求和相应进行添加/删除/操纵等操作

- 缓存:在代理层进行缓存和响应处理

- CLI:通过命令行对kong的集群进行控制

- REST API:可灵活地通过RESTful API对kong进行操作

- 失败检测与恢复:Cassandra某一节点停止也不会影响kong的功能

- 集群:所有的kong节点都能自动加入集群,并保证配置在整个节点间得到更新

- 可扩展性:kong可以通过添加节点很容易地实现横向扩展

- 性能:使用nginx作为内核,kong具有nginx的高性能

- plugin:可以对kong和API进行扩展

Features

  • Cloud-Native: Platform agnostic, Kong can run from bare metal to Kubernetes.
  • Dynamic Load Balancing: Load balance traffic across multiple upstream services.
  • Hash-based Load Balancing: Load balance with consistent hashing/sticky sessions.
  • Circuit-Breaker: Intelligent tracking of unhealthy upstream services.
  • Health Checks: Active and passive monitoring of your upstream services.
  • Service Discovery: Resolve SRV records in third-party DNS resolvers like Consul.
  • Serverless: Invoke and secure AWS Lambda or OpenWhisk functions directly from Kong.
  • WebSockets: Communicate to your upstream services via WebSockets.
  • gRPC: Communicate to your gRPC services and observe your traffic with logging and observability plugins
  • OAuth2.0: Easily add OAuth2.0 authentication to your APIs.
  • Logging: Log requests and responses to your system over HTTP, TCP, UDP, or to disk.
  • Security: ACL, Bot detection, whitelist/blacklist IPs, etc...
  • Syslog: Logging to System log.
  • SSL: Setup a Specific SSL Certificate for an underlying service or API.
  • Monitoring: Live monitoring provides key load and performance server metrics.
  • Forward Proxy: Make Kong connect to intermediary transparent HTTP proxies.
  • Authentications: HMAC, JWT, Basic, and more.
  • Rate-limiting: Block and throttle requests based on many variables.
  • Transformations: Add, remove, or manipulate HTTP requests and responses.
  • Caching: Cache and serve responses at the proxy layer.
  • CLI: Control your Kong cluster from the command line.
  • REST API: Kong can be operated with its RESTful API for maximum flexibility.
  • Geo-Replicated: Configs are always up-to-date across different regions.
  • Failure Detection & Recovery: Kong is unaffected if one of your Cassandra nodes goes down.
  • Clustering: All Kong nodes auto-join the cluster keeping their config updated across nodes.
  • Scalability: Distributed by nature, Kong scales horizontally by simply adding nodes.
  • Performance: Kong handles load with ease by scaling and using NGINX at the core.
  • Plugins: Extendable architecture for adding functionality to Kong and APIs.
0
0
分享到:
评论

相关推荐

    微服务技术栈:API网关中心,落地实现方案.docx

    微服务架构中的API网关扮演着至关重要的角色,它作为一个集成了多种功能的中间层,负责处理客户端的请求并转发到相应的微服务。网关的设计灵感来源于设计模式中的外观模式,其目标是简化客户端与复杂系统的交互,...

    WK系列开发框架-V6至V8 Java微服务+API网关+Vue3 Element-Plus 前后端分离.zip

    在WK框架中,可能采用了 Zuul、Kong 或 Gateway 等流行的API网关解决方案,以实现高效的数据传输和保护内部微服务的安全。 3. **Vue3**: Vue3 是一个前端JavaScript框架,以其易用性、高性能和强大的生态系统著称...

    微服务之应用网关

    应用网关(API Gateway)是微服务架构中的关键组件之一,负责将多个服务集成到一起并提供统一的接口。应用网关的功能包括: * 统一接入 * 流量管控 * 协议适配 * 安全维护 常见的应用网关包括: * Nginx+Lua * ...

    kong-docs-cn:微服务Api网关Kong最新文档中文版

    Kong是企业级的API网关,它提供了一个强大的平台,用于管理和保护微服务API。Kong的核心是基于Nginx,结合了OpenResty的Lua脚本能力,使其能够处理复杂的路由、认证、限流等任务。以下是关于Kong的一些关键知识点: ...

    27-API网关:系统的门面要如何做呢?_For_group_share1

    常见的开源API网关解决方案包括Netflix Zuul、Spring Cloud Gateway、Amazon API Gateway、Kong等。选择自研或采用开源实现取决于项目需求、团队技术栈和资源可用性。自研允许更灵活的定制,而开源方案则提供成熟的...

    银行核心系统用ESB,还是用微服务API网关好.docx

    关于金融行业的微服务API网关,目前有多种实现,如Spring Cloud的Kong、Orange、Netflix Zuul和SpringCloud Gateway等。虽然框架层面并未区分专门的金融和非金融应用,但在实际应用中,金融行业可能需要更严格的安全...

    Kong入门指南.pdf

    Kong是一个专门用于微服务架构的开源API网关,它以轻量级、高性能和可扩展性著称。API网关作为微服务架构中的重要组件,负责处理外部请求并将其适配到后端的微服务上。Kong支持多种插件,这些插件可以实现访问控制、...

    云平台技术选型之十:API网关

    云平台技术选型之十:API网关的知识点讲解 API网关(Application Programming Interface Gateway)是微服务架构中用于简化客户端与微服务之间交互的重要组件。在微服务架构中,服务被细分成多个独立部署的服务单元...

    百亿流量API网关的设计与实现.pdf

    我们从百亿流量交易系统 API 网关(API Gateway)的现状和面临问题出发,阐述微服务架构与 API 网关的关系,理顺流量网关与业务网关的脉络,带来最全面的 API 网关知识与经验。内容涉及: 百亿流量交易系统 API ...

    Go-Kong一款可扩展快速且开源的微服务API网关

    Go-Kong是一款基于Go语言开发的、快速且开源的微服务API网关,其设计灵感来源于Kong,一个广泛使用的API管理和保护平台。Kong最初是用Lua编写的,而Go-Kong则是其在Go编程语言环境下的实现,旨在提供更好的性能和...

    微服务Api网关框架1-10.7z

    微服务API网关是现代分布式系统中的关键组件,它作为客户端和服务端之间的桥梁,负责请求的路由、身份验证、负载均衡、限流等任务。在"微服务Api网关框架1-10.7z"这个压缩包中,包含了一系列关于如何构建和使用API...

    KONG OPENRESTY.pdf

    Kong 是一个开源的 API 管理层,用于保护、管理和扩展 API 和微服务。它提供了一种灵活的方式来管理 API 流量、身份验证、速率限制、分析和插件等功能。 API Gateway 模式是微服务架构中的一种常见模式,它作为一个...

    API网关设计和实现

    API网关的实现可以采用开源框架,如Zuul、Kong、Netflix Gateway等,也可以基于自研的解决方案。通常,实现过程涉及以下几个步骤: 1. **选择技术栈**:根据项目需求和技术栈熟悉度选择合适的API网关框架。 2. **...

    CentOS 7.1 离线安装API -kong所需依赖包

    在IT行业中,API(应用程序编程接口)是软件系统之间交互的关键工具,而Kong则是一个流行的微服务和API网关,提供安全、管理和分析等功能。本文将深入探讨如何在CentOS 7.1环境下离线安装Kong API网关及其依赖包。 ...

    kong:香港API网关服务

    组成pongpong的微服务的API网关。 码头工人组成 通过使用docker-compose您可以运行运行api网关所需的最低服务。 有关服务配置,请参阅docker-compose.yml 。 kubernetes服务 在./k8s目录中定义的./k8s资源 请参阅...

    藏经阁-云服务总线微服务网关.pdf

    微服务网关可以分为企业级网关和微网关两种,企业级网关位于企业组织外围,面向外部 API 消费者或服务提供者,而微网关位于企业组织内部,面向内部 API 消费者。 微服务网关的主要作用是对外部用户屏蔽动态而多样的...

    云服务总线微服务网关技术概述.pptx

    API网关,作为微服务架构的核心组件,扮演着统一入口的角色,它聚合了多个API,对外提供单一的访问点,隐藏了内部服务的技术细节,实现了内外部的解耦。 API网关的主要功能包括:对外屏蔽后端服务的复杂性,比如...

    API网关.7zAPI网关.7zAPI网关.7zAPI网关.7z

    API网关是现代微服务架构中的关键组件,它充当了客户端和后端服务之间的桥梁,负责处理所有对外的API调用。API网关的主要任务包括请求路由、认证、授权、限流、熔断、监控以及服务聚合等。下面将详细探讨API网关的...

    微服务架构之服务网关.pdf

    总之,服务网关是微服务架构中不可或缺的组件之一,它不但简化了客户端与微服务之间的交互,还提升了系统的整体性能、安全性和可维护性。随着微服务架构的不断发展和应用实践,服务网关的设计和实现也会持续进化以...

Global site tag (gtag.js) - Google Analytics