深入理解API网关Kong:初识Kong网关

news2024/12/27 12:26:09

深入理解API网关Kong:初识Kong网关

介绍

Kong是一个开源的、可扩展的、微服务 API 网关,它已经在全球范围内的各种规模的组织中广泛使用。Kong的设计原则是为了处理服务到服务的通信,通过提供功能丰富的平台,实现对API的全面管理。

Kong的核心优点在于其高度可扩展性和插件生态。由于其基于插件的架构,用户可以定制和扩展Kong的功能以满足特定的业务需求。插件范围从认证和授权,到限流、日志和监控等等,几乎可以涵盖API生命周期中的所有方面。

Kong还具有出色的性能和可靠性。由于它基于Nginx和OpenResty,因此能够处理大量的并发连接,并保持低延迟。同时,Kong也支持跨多个数据中心的分布式部署,提供了高度的可用性和故障转移能力。

Kong的另一个关键优势是其开源本质。这意味着它的源代码对公众开放,可以自由地使用和修改。这使得Kong拥有了强大的社区支持,其中包括开发者、用户和贡献者,他们不断地推动Kong的发展,提供新的功能,修复bug,以及提供有价值的反馈。

Kong不仅限于处理HTTP和HTTPS流量。它也支持gRPC, TCP, UDP, Websockets等多种协议,使得它可以在各种环境中发挥作用,包括但不限于云环境、本地环境,以及混合环境。

总的来说,Kong是一个功能强大,灵活且高度可扩展的API网关,适用于所有规模的组织。无论你是在构建一个复杂的微服务架构,还是只是需要一个能够有效管理API的工具,Kong都是一个值得考虑的选项。

官网地址:https://docs.konghq.com/gateway/latest/

image-20230604153430627

安装Kong

官方的安装地址:https://docs.konghq.com/gateway/3.3.x/install/

image-20230604153523009

这里我介绍使用docker来部署,默认已经安装好了docker和docker-compose

创建kong数据库

我已经提前安装了PostgreSQL数据,这里我就创建一个空的kong数据库和kong数据库用户

image-20230604170743259

kong的docker-compose.yml

version: '3'
services:
  kong:
    image: kong:3.3.0
    restart: always
    command: >
      /bin/sh -c "
        kong migrations bootstrap;
        kong start
      "
    environment:
      KONG_DATABASE: postgres
      KONG_PG_HOST: 192.168.100.1
      KONG_PG_PORT: 5432
      KONG_PG_USER: kong_admin
      KONG_PG_PASSWORD: kong_admin
      KONG_PG_DB: kong
      KONG_PROXY_ACCESS_LOG: /dev/stdout
      KONG_ADMIN_ACCESS_LOG: /dev/stdout
      KONG_PROXY_ERROR_LOG: /dev/stderr
      KONG_ADMIN_ERROR_LOG: /dev/stderr
      KONG_ADMIN_LISTEN: 0.0.0.0:8001, 0.0.0.0:8444 ssl
    ports:
      - 8000:8000
      - 8443:8443
      - 8001:8001
      - 8444:8444

这里的command命令是用来初始化数据表的

    command: >
      /bin/sh -c "
        kong migrations bootstrap;
        kong start
      "

启动完成后数据库会自动建好表,如下所示:

image-20230604170940126

启动kong

在docker-compose.yml同级目录下执行启动命令:

sudo docker-compose up -d

启动成功后可以使用命令进行查看:

sudo docker-compose ps

image-20230604171340008

还可以使用浏览器访问http端口来查看启动状态:

http://192.168.100.1:8001/

image-20230604171519694

安装Konga

Konga是一个为Kong API Gateway设计的开源管理界面。它旨在为Kong API Gateway提供一个简单、易用的管理界面,帮助用户更加方便地管理和监控其API。

Konga的主要功能包括:

  • 服务和路由管理:用户可以通过Konga轻松地创建、更新、删除和查看服务和路由。
  • 插件管理:Konga支持Kong的所有插件,让用户可以更方便地配置和管理插件。
  • 消费者管理:用户可以使用Konga管理API的消费者,包括创建消费者、分配API key、设置ACL等。
  • 监控和警报:Konga提供了丰富的监控功能,包括实时图表、日志和警报,帮助用户实时了解API的使用情况。
  • 集群管理:Konga支持管理多个Kong节点,非常适合在分布式环境中使用。

除了这些功能,Konga还提供了友好的用户界面和丰富的文档,使得用户可以更轻松地上手和使用。并且,由于Konga是开源的,用户可以根据自己的需求进行定制和扩展,也可以参与到Konga的开发和完善中来。

总的来说,Konga是一个功能丰富、易用且灵活的Kong管理工具,无论你是Kong的新手还是老手,都可以从Konga中受益。

Konga的docker-compose.yml

这里我们依旧使用docker来安装konga

version: '3'

services:
  konga:
    image: pantsel/konga:latest
    ports:
      - "1337:1337"
    environment:
      TOKEN_SECRET: the_secret_token

在docker-compose.yml同级目录下执行启动命令:

sudo docker-compose up -d

启动成功后可以使用命令进行查看:

sudo docker-compose ps

image-20230604172004133

配置Konga

启动成功后访问http://192.168.100.1:1337

可以看到页面并且让你注册一个用户,注册完成后就可以用该账号登陆了,如下所示:

image-20230604170313996

第一次登陆需要配置kong的地址http://192.168.100.1:8001,如下图所示:

image-20230604170218267

配置完成后如下图所示:

image-20230604170244363

到此安装配置完成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/609182.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Verilog基础之一、触发器实现

目录 一、触发器简介 1.1 触发器作用 1.2 触发器信号 1.3 使用规范 1.4 Vivado综合触发器 二、代码实现 三、综合结果 一、触发器简介 1.1 触发器作用 触发器是工程中基础的单元结构也是相当重要的组成,时序电路的实现离不开触发器。触发器是具有存储功能的器件&…

chatgpt赋能python:Python升序排序不用sort

Python 升序排序不用 sort 如果你在Python编程领域有多年的经验,那么你肯定对sort函数非常熟悉。sort是Python自带的用于列表或数组进行排序的函数。sort函数可以根据元素的值进行升序排序或降序排序,非常方便。但是,如果你需要在不使用sort…

【小白教程】Docker安装使用教程,以及常用命令!

【小白教程】Docker安装使用教程,以及常用命令! - 带你薅羊毛最近调试Docker内容,顺手记录一下,我常用的几个命令!这里总结一下,方便自己也同时方便大家使用! 内容慢慢完善更新!如有…

Linux 之JavaEE定制篇-搭建JavaEE 环境

Linux 之JavaEE 定制篇-搭建JavaEE 环境 注意 本篇软件链接提供 链接:https://pan.baidu.com/s/1y5qqQvWGQ-iz5M2WUrjD3A?pwdv5l2 提取码:v5l2 如果嫌自己下载麻烦或者难找可以考虑 概述 如果需要在Linux 下进行JavaEE 的开发,我们需要…

极速版手机蓝牙APP开发

极速版手机蓝牙APP开发 零、效果展示一、环境介绍二、开发过程控件布局代码逻辑蓝牙部分摇杆部分其他部分 三、整体优化四、结束语 零、效果展示 “这是一个充满科技风的手机蓝牙APP” 一、环境介绍 App Inventor是一款谷歌公司开发的手机编程软件,主要支持各种…

vue 实现 dragover拖拽到页面底部时元素自动向下滚动

公司要求做一个类似于企业微信的日程功能 然后呢 日程组件 需要能拖拽时间段创建 这里 我们使用 dragstartdragenddragover 记录被拖动位置完成的 如果没接触过 可以查看我的文章 vue记录鼠标拖拽划过位置并将划过位置变色 这里的话 其实可以在dragover中做操作 界面上 drag…

【C++ 基础篇:20】:类的 (const)static 静态成员:面试题:实现一个类,计算程序中创建出了多少个类对象?

本系列 C 相关文章 仅为笔者学习笔记记录,用自己的理解记录学习!C 学习系列将分为三个阶段:基础篇、STL 篇、高阶数据结构与算法篇,相关重点内容如下: 基础篇:类与对象(涉及C的三大特性等&#…

区块链基础之共识机制

1.1共识机制 1.1.1核心定义 区块链上的共识机制主要解决由谁来构造区块,以及如何维护区块链统一的问题 1.1.2共识机制分类 1.1.3 共识算法 1.1.3.1 POW(工作量证明) 代表项目:BTC 由于不同的节点接受数据有所区别,为了保证数据一致性&a…

改善录音直播收音环境,只需一副监听耳机,丁一号G800S体验

现在很多人已经习惯了使用蓝牙耳机,但在平时直播、录音的时候,把蓝牙耳机当作耳返工具并不好用,经常有延迟高之类的问题,影响我们的录音效果和沟通体验,这时候需要配备一个监听耳机,才能够了解到实际的收音…

斐波那契数列题解(非递归c++方法实现)

在做信奥赛(信息学奥赛)中的for循环题目时,有一道斐波那契数列,想到的第一个方法是使用递归求解;因为以往题目最多使用的就是递归形式,但鉴于该题目在for循环题目堆,所以就思考了一些新方法&…

果推断17--基于反事实因果推断的度小满额度模型学习笔记

目录 一、原文地址 二、一些问题 2.1如何从RCT随机样本过渡到观测样本因果建模? 2.2反事实学习的核心思想 2.3度小满的连续反事实额度模型 Mono-CFR 2.4Mono-CFR代码实现(待补充) 2.5CFR学习 2.5.1CFR 2.5.2DR-CFR 参考 一、原文地…

2.C++多线程--危险点分析

1.detach使用时分析 使用detach时&#xff0c;子线程一定不要传入指针 #include<iostream> #include<thread> using namespace std;void my_print(const int& num1,const char* str) {cout << num1 << " " << str << endl; …

MySQL 事务处理语言 TCL

文章目录 事务处理语言 TCL事务简介事务控制并发事务的隔离挑战脏读不可重复读幻读 事务的隔离级别未提交读&#xff08;READ-UNCOMMITED&#xff09;提交读&#xff08;READ COMMITED&#xff09;可重复读&#xff08;REPEATABLE READ&#xff09;可串行化&#xff08;SERIALI…

虹科案例 | 筒仓液位测量可以这么简单?

Part.01 行业挑战 在料箱、料斗或筒仓中使用散装物料的制造商需要准确可靠的液位检测来管理和处理库存&#xff0c;并最大限度地减少生产延迟。 塑料成型、食品加工和建筑材料等行业都依赖于散装材料。随着这些行业越来越接近准时制&#xff08;JIT&#xff09;制造&#xff…

认识协议【网络基础】

文章目录 什么是协议结构化数据结构化数据非结构化数据半结构化数据 结构化数据的传输序列化和反序列化 网络版计算器概述制定协议通过字符串传输结构化数据序列化与反序列化 实现计算器网络相关接口框架服务端客户端 制定协议请求响应发送和接收数据 计算逻辑测试存在的问题 T…

修改数组【并查集】

这里写自定义目录标题 并查集并查集的表示方法 题目输入描述输入示例输出示例 解题思路参考连接 并查集 并查集就是对集合的合并和查询操作的统称。他要求参与运算的两个集合是不相交的(不含有相同的元素)。针对这两个集合可以进行的操作&#xff1a; 1.合并&#xff1a;将两个…

复习之Linux系统中的进程管理

1.什么是进程&#xff1f;线程&#xff1f; 进程&#xff08;Process&#xff09;&#xff1a;是操作系统进行资源分配的最小单位。一个进程是一个程序的一次执行过程。每启动一个进程&#xff0c;操作系统就会为它分配一块独立的内存空间&#xff0c;用于存储PCB、数据段、程…

如何从复盘中获得真正的收获?持续改进是关键!

复盘&#xff0c;本是围棋术语&#xff0c;每次博弈结束后&#xff0c;双方棋手把刚才的对局复演一遍&#xff0c;分析对局当中得失关键&#xff0c;提升自己棋力的好方法。复盘是对思维的训练。 通过复盘&#xff0c;当类似局面再次出现&#xff0c;你就能快速预测接下来的动态…

【网络】TCP套接字创建服务客户端与守护进程

文章目录 Tcp服务端TcpServer.hppTcpServer.cc Tcp客户端TcpClient.hppTcpClient.cc TCP客户端处理守护进程守护进程化 Tcp服务端 TcpServer.hpp TCP服务端创建流程如下&#xff1a; 创建socket文件套接字对象&#xff0c;面向字节流SOCK_STREAM bind绑定自己的网络信息&…

nacos注册中心配置springboot动态刷新源码解读

0丶简介 如何快速启动,请去官网看文档,言简意赅 https://nacos.io/zh-cn/docs/quick-start.html 只描述为何实现动态刷新的关键源码 1丶基于目前最新版本 <!-- https://mvnrepository.com/artifact/com.alibaba.boot/nacos-config-spring-boot-starter --> <depend…