在滴滴云上搭建 API-Gateway Kong 实践

本文介绍了如何在滴滴云上部署 API-Gateway 的开源解决方案 Kong。Kong 作为微服务架构的重要组件,负责路由、协议转换、数据聚合、认证和流量控制等功能。文中详细阐述了 Kong 的组成部分、特性以及部署过程,包括 PostgreSQL 的安装配置、Kong Server 的安装和 Kong Dashboard 的安装,最后展示了如何通过 Kong Dashboard 管理服务和路由。
摘要由CSDN通过智能技术生成

1. 什么是 API-Gateway ?什么是 Kong ?

API-Gateway 是微服务架构体系中一个比较重要的组件,它通常构成所有微服务的入口,它的职责比较多,其较为通用的一些功能是:

  • 路由:路由是 API-Gateway 最重要的功能,基于路由 API-Gateway 通常能根据请求的特征,将流量导向不同的服务,或是不同服务的不同版本;或是同一服务的不同单元。
  • 协议转换:在 API-Gateway 层可完成基本的协议转换,比如简单的 HTTPS 至 HTTP。
  • 聚合数据:数据聚合的功能通常是指将不同 API-Gateway 后的服务返回后,统一返回。
  • 认证:不同的服务之间常常有一些共有的逻辑需要处理,比如权限认证,由于 API-Gateway 恰巧在各个微服务的前端,可以在 API-Gateway 实现权限的认证,比如可以在 API-Gateway 层实现 Cookie 或 Token 的认证。
  • 限流:可以做针对请求,针对服务的流量控制。
  • 熔断:可以在后端服务异常时或者被限流保护时,进行统一的错误返回。

常见的 API-Gateway 的方案比较多,比较常见的有:TyK,Kong,Netflix zuul,api-umbrella 等。其中 Kong 是本文要介绍的主题。

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

  • Kong Server :基于 Nginx 的服务器,用来接收 API 请求。
  • PostgreSQL:用来存储操作数据。

可以通过增加更多 Kong Server 机器对 Kong 服务进行水平扩展,通过前置的负载均衡器向这些机器分发请求。

Kong 比较突出的一个特性是可以通过插件扩展已有功能,这些插件在请求响应循环的生命周期中被执行。插件使用 Lua 编写,而且 Kong 还有如下几个基础功能:HTTP 基本认证、密钥认证、CORS( Cross-origin Resource Sharing,跨域资源共享)、TCP、UDP、文件日志、限流、路由, 监控。

Kong 是一个在 Nginx 运行的 Lua 应用程序,由 lua-nginx-module 实现。 Kong 和 OpenResty 一起打包发行,其中已经包含了 lua-nginx-module。 OpenResty 不是 Nginx 的分支,而是一组扩展其功能的模块。

下面介绍 Kong 的部署过程。

2. 环境准备

  • OS: CentOS 7.4
  • 虚拟机:2CPU 4G内存 40G SSD本地存储

上述的虚拟机在滴滴云上完成购买,通过此链接完成。

购买完成后,可通过下面的命令登录服务器,并用 sudo -i 命令切换到 root 账户:

✗ ssh dc2-user@116.85.13.208
The authenticity of host '116.85.13.208 (116.85.13.208)' can't be established.
ECDSA key fingerprint is SHA256:wXuuSeD9X/Zh4r5AXlkippP021oJKJnuDzShfK4vIRA.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '116.85.13.208' (ECDSA) to the list of known hosts.
dc2-user@116.85.13.208's password:
[dc2-user@10-254-108-83 ~]$ sudo -i
[root@10-254-108-83 ~]#

下面的操作步骤,均会基于此会话进行,按步骤做应该会得到同样的效果。

3. Kong 部署

Kong 的部署需要完成下面三个组件的部署:

  • PostgreSQL 的安装及配置
  • Kong Server 的安装
  • Kong Dashboard 的安装

3.1 PostgreSql 安装及配置

3.1.1 安装

使用下面的命令,完成 postgresql-10 的安装:

# yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm
已加载插件:fa
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值