API网关——Kong实践分享

Kong是一个在Nginx中运行的Lua应用程序,可以通过lua-nginx模块实现,Kong不是用这个模块编译Nginx,而是与OpenRestry一起发布,OpenRestry已经包含了lua-nginx-module,OpenRestry是Nginx的一组扩展功能模块。

 

02

为什么是Kong

Kong是一个Api Gateway,通过插件的形式提供负载均衡,日志记录,身份验证,速率限制,转换等功能。

 

Kong可以很轻松扩展功能,模块化,可以运行在任何基础设施上。

 

API网关——Kong实践分享

 

03

术语

Route:是请求的转发规则,按照Hostname和PATH,将请求转发给Service。

Services:是多个Upstream的集合,是Route的转发目标。

Consumer:是API的用户,里面记录用户的一些信息。

Plugin:是插件,plugin可以是全局的,绑定到Service,绑定到Router,绑定到Consumer。

Certificate:是https证书。

Sni:是域名与Certificate的绑定,指定了一个域名对应的https证书。

Upstream:是负载均衡策略。

Target:是最终处理请求的Backend服务。

 

04

特性

动态负载均衡

基于散列的负载均衡

断路器

健康检查

Websockets

OAuth2.0

日志记录

安全性

Syslog

监控

转发代理

认证

速率限制

故障检测和恢复

……

更多详情参考:https://docs.konghq.com/hub/

 

05

开源/企业对比

 

API网关——Kong实践分享

API网关——Kong实践分享

API网关——Kong实践分享

 

 

 

 

架构


01

架构图

 

API网关——Kong实践分享

1.1版本以后支持无db模式

 

02

执行流程

加入kong后,每个客户端对API的请求将首先到达Kong,然后被代理到最终API,在请求和响应之间,Kong将执行任何已安装的插件,扩展API功能集,Kong有效的成为每个API的入口点。

 

 

部署

 

Kong支持在任何基础设施上运行,支持docker、packages、vagrant、Homebrew、CloudFormation、AWS、Azure、Kubernetes等。

 

本次部署基于package方式,部署软件版本。

软件 版本
Kong   1.0.3  
Postgresql   9.6  
Kong-dashboard   3.5.0  

   

 

01

部署Postgresql

docker run --name postgres -e POSTGRES_PASSWORD=123456 -p 5432:5432 -d postgres:9.6

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsxdjf.html