微服务之API网关:Kong:概要与安装

Posted 悦码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微服务之API网关:Kong:概要与安装相关的知识,希望对你有一定的参考价值。

Kong是一个基于Apache License 2.0的开源项目,是一个云原生的快速可扩的分布式微服务抽象层,应用场景为微服务的API网关,类似于spring cloud的zuul。

概要信息

Why Kong

提供类似的API网关不止一家,Kong侧重于解决如下传统方式的四大痛点:

微服务之API网关:Kong:概要与安装

微服务之API网关:Kong:概要与安装

功能特色

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进行扩展

安装方式

支持多种安装方式如下: 

微服务之API网关:Kong:概要与安装

安装:Step1: 启动数据库

这里采用docker方式进行安装, kong的运行需要数据库的支持,目前官方支持postgresql和cassandra,版本要求如下

微服务之API网关:Kong:概要与安装

使用如下任意一种方式启动数据库服务

数据库服务启动:postgresql

微服务之API网关:Kong:概要与安装

数据库服务启动:cassandra

微服务之API网关:Kong:概要与安装

安装:Step2: 设定数据库

使用如下对应的方式设定数据库

postgresql

微服务之API网关:Kong:概要与安装

cassandra

微服务之API网关:Kong:概要与安装

安装:Step3: 启动kong服务

postgresql关联方式

微服务之API网关:Kong:概要与安装

cassandra关联方式

微服务之API网关:Kong:概要与安装

安装确认

镜像信息

微服务之API网关:Kong:概要与安装

服务启动确认

微服务之API网关:Kong:概要与安装

通过如下/status可以确认服务端口的kong服务的状态是否正常

以上是关于微服务之API网关:Kong:概要与安装的主要内容,如果未能解决你的问题,请参考以下文章

微服务之API网关 kong 使用场景之路由功能

微服务与API 网关(上): 为什么需要API网关?

微服务之:服务注册与发现实践

用户注册+与kong集成的微服务的身份验证

使用公共微服务对 API 网关 (Kong) 进行身份验证

2.Kong入门与实战 基于Nginx和OpenResty的云原生微服务网关 --- Kong 的安装和基本概念