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.
相关推荐
微服务架构中的API网关扮演着至关重要的角色,它作为一个集成了多种功能的中间层,负责处理客户端的请求并转发到相应的微服务。网关的设计灵感来源于设计模式中的外观模式,其目标是简化客户端与复杂系统的交互,...
在WK框架中,可能采用了 Zuul、Kong 或 Gateway 等流行的API网关解决方案,以实现高效的数据传输和保护内部微服务的安全。 3. **Vue3**: Vue3 是一个前端JavaScript框架,以其易用性、高性能和强大的生态系统著称...
应用网关(API Gateway)是微服务架构中的关键组件之一,负责将多个服务集成到一起并提供统一的接口。应用网关的功能包括: * 统一接入 * 流量管控 * 协议适配 * 安全维护 常见的应用网关包括: * Nginx+Lua * ...
Kong是企业级的API网关,它提供了一个强大的平台,用于管理和保护微服务API。Kong的核心是基于Nginx,结合了OpenResty的Lua脚本能力,使其能够处理复杂的路由、认证、限流等任务。以下是关于Kong的一些关键知识点: ...
常见的开源API网关解决方案包括Netflix Zuul、Spring Cloud Gateway、Amazon API Gateway、Kong等。选择自研或采用开源实现取决于项目需求、团队技术栈和资源可用性。自研允许更灵活的定制,而开源方案则提供成熟的...
关于金融行业的微服务API网关,目前有多种实现,如Spring Cloud的Kong、Orange、Netflix Zuul和SpringCloud Gateway等。虽然框架层面并未区分专门的金融和非金融应用,但在实际应用中,金融行业可能需要更严格的安全...
Kong是一个专门用于微服务架构的开源API网关,它以轻量级、高性能和可扩展性著称。API网关作为微服务架构中的重要组件,负责处理外部请求并将其适配到后端的微服务上。Kong支持多种插件,这些插件可以实现访问控制、...
云平台技术选型之十:API网关的知识点讲解 API网关(Application Programming Interface Gateway)是微服务架构中用于简化客户端与微服务之间交互的重要组件。在微服务架构中,服务被细分成多个独立部署的服务单元...
我们从百亿流量交易系统 API 网关(API Gateway)的现状和面临问题出发,阐述微服务架构与 API 网关的关系,理顺流量网关与业务网关的脉络,带来最全面的 API 网关知识与经验。内容涉及: 百亿流量交易系统 API ...
Go-Kong是一款基于Go语言开发的、快速且开源的微服务API网关,其设计灵感来源于Kong,一个广泛使用的API管理和保护平台。Kong最初是用Lua编写的,而Go-Kong则是其在Go编程语言环境下的实现,旨在提供更好的性能和...
微服务API网关是现代分布式系统中的关键组件,它作为客户端和服务端之间的桥梁,负责请求的路由、身份验证、负载均衡、限流等任务。在"微服务Api网关框架1-10.7z"这个压缩包中,包含了一系列关于如何构建和使用API...
Kong 是一个开源的 API 管理层,用于保护、管理和扩展 API 和微服务。它提供了一种灵活的方式来管理 API 流量、身份验证、速率限制、分析和插件等功能。 API Gateway 模式是微服务架构中的一种常见模式,它作为一个...
API网关的实现可以采用开源框架,如Zuul、Kong、Netflix Gateway等,也可以基于自研的解决方案。通常,实现过程涉及以下几个步骤: 1. **选择技术栈**:根据项目需求和技术栈熟悉度选择合适的API网关框架。 2. **...
在IT行业中,API(应用程序编程接口)是软件系统之间交互的关键工具,而Kong则是一个流行的微服务和API网关,提供安全、管理和分析等功能。本文将深入探讨如何在CentOS 7.1环境下离线安装Kong API网关及其依赖包。 ...
组成pongpong的微服务的API网关。 码头工人组成 通过使用docker-compose您可以运行运行api网关所需的最低服务。 有关服务配置,请参阅docker-compose.yml 。 kubernetes服务 在./k8s目录中定义的./k8s资源 请参阅...
微服务网关可以分为企业级网关和微网关两种,企业级网关位于企业组织外围,面向外部 API 消费者或服务提供者,而微网关位于企业组织内部,面向内部 API 消费者。 微服务网关的主要作用是对外部用户屏蔽动态而多样的...
API网关,作为微服务架构的核心组件,扮演着统一入口的角色,它聚合了多个API,对外提供单一的访问点,隐藏了内部服务的技术细节,实现了内外部的解耦。 API网关的主要功能包括:对外屏蔽后端服务的复杂性,比如...
API网关是现代微服务架构中的关键组件,它充当了客户端和后端服务之间的桥梁,负责处理所有对外的API调用。API网关的主要任务包括请求路由、认证、授权、限流、熔断、监控以及服务聚合等。下面将详细探讨API网关的...
总之,服务网关是微服务架构中不可或缺的组件之一,它不但简化了客户端与微服务之间的交互,还提升了系统的整体性能、安全性和可维护性。随着微服务架构的不断发展和应用实践,服务网关的设计和实现也会持续进化以...