一、优势:

提供统一的 API 管理,简化流量控制、负载均衡、安全性控制等工作。

有可视化界面可操作,支持高度 可扩展性,可以通过插件来扩展功能。

在 微服务架构 中表现优异,支持多种协议和高并发场景。

具有 高可用性、高性能 和良好的 监控、日志记录 功能。

基于 Nginx 和 Lua 构建,能够提供低延迟的请求处理。

二、使用Docker安装,.net core webapi做测试

这里有个坑,国内很多镜像加速网址都失效了,所以我们加载镜像很可能会报错:

Unable to find image 'postgres:13' locally

docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": context deadline exceeded.

东找西找 找到了目前我的配置:

点击查看代码
"registry-mirrors": [
"https://do.nark.eu.org",
"https://dc.j8.work",
"https://6k0ibwjk.mirror.aliyuncs.com",
"https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc"
]

1.docker network create kong-net

【Docker 容器默认运行在隔离的网络环境中。如果你运行多个容器(例如,Kong 网关、数据库、服务容器等),这些容器之间需要通信,而 Docker 的自定义网络可以实现以下目的:

  • 容器互通:在同一个网络中的容器可以通过容器名(而不是 IP 地址)直接访问彼此。
  • 网络隔离:只有加入相同网络的容器才能相互通信,增强了安全性。
  • 网络驱动:自定义网络支持不同的驱动类型(如 bridge、overlay 等),满足多样化需求。】

2.docker run -d --name kong-database --network=kong-net -p 5432:5432 -e "POSTGRES_USER=kong" -e "POSTGRES_DB=kong" -e "POSTGRES_PASSWORD=kongpass" postgres:13

【Kong 目前使用PostgreSql(也可以使用Facebook开源的分布式的NoSQL数据库:Cassandra)】

3.docker run --rm --network=kong-net -e "KONG_DATABASE=postgres" -e "KONG_PG_HOST=kong-database" -e "KONG_PG_PASSWORD=kongpass" kong:3.5.0 kong migrations bootstrap

【初始化或者迁移数据库】

4.docker run -d --name kong-gateway --network=kong-net -u root -e "KONG_DATABASE=postgres" -e "KONG_PG_HOST=kong-database" -e "KONG_PG_USER=kong" -e "KONG_PG_PASSWORD=kongpass" -e "KONG_PROXY_ACCESS_LOG=/dev/stdout" -e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" -e "KONG_PROXY_ERROR_LOG=/dev/stderr" -e "KONG_ADMIN_ERROR_LOG=/dev/stderr" -e "KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl" -p 8000:8000 -p 8443:8443 -p 192.168.1.4:8001:8001 -p 192.168.1.4:8444:8444 kong:3.5.0

【启动kong容器】

如果想支持所有IP都可以访问,那就可以不加本机IP

5.浏览器调用 http://{服务器ip}:8001/ 来验证Kong Admin 是否联通 (出现大json说明安装成功了)。

6.docker run -p 1337:1337 --network=kong-net -e "KONG_DATABASE=postgres" -e "KONG_PG_HOST=kong-database" -e "KONG_PG_USER=kong" -e "KONG_PG_PASSWORD=kongpass" -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" -e "DB_DATABASE=konga" -e "KONGA_HOOK_TIMEOUT=120000" --name konga pantsel/konga:latest

【安装konga】

我这里是简单的Development环境

注意!!!这里有个坑就是,我所有的国内镜像加速器都用了但是仍然拉取失败(连接超时),后来查了查,可能是因为konga的镜像存放位置国内镜像获取不到,爬梯子才成功拉取到了......

运行完后,如果成功的话可以通过http://192.168.1.4:1337/访问控制台



这里的URL要填写http://192.168.1.4:8001/(kong admin)

Kong实现负载均衡

1.IIS发布两个webapi项目,分别是9999和9998端口(两个项目的方法路径一致)

这里我遇到过一个问题就是任务栏可以显示IIS但是界面上没有

先查看IIS管理器属性,找到其位置

管理员模式打开cmd命令行,并切换到上面的文件夹下运行Inetmgr.exe /reset

2.首先创建一个UPSTREAM

3.给我们创建的UPSTREAM创建两个Target

4.创建Service

Host对应UPSTREAM的Name

5.Route设置

  • Path Handling v0:Kong 会将路径 /activity 去除,只留下 /,因此请求会被转发到后端服务的 / 路径。
  • Path Handling v1:Kong 会保留 /activity 路径,将请求转发到后端服务的 /activity 路径。

6.实现负载均衡



Kong实现API限流





(.net core)Kong网关的使用的更多相关文章

  1. API网关之Kong网关简介

    1. Kong简介 那么,Kong是一个什么东东呢?它是一个开源的API网关,或者你可以认为它是一个针对API的一个管理工具.你可以在那些上游service之上,额外去实现一些功能.Kong是开源的, ...

  2. Ocelot - .Net Core开源网关

    Ocelot - .Net Core开源网关 作者:markjiang7m2 原文地址:https://www.cnblogs.com/markjiang7m2/p/10857688.html 源码地 ...

  3. Ocelot(一)- .Net Core开源网关

    Ocelot - .Net Core开源网关 作者:markjiang7m2 原文地址:https://www.cnblogs.com/markjiang7m2/p/10857688.html 源码地 ...

  4. 使用KONG网关实现接口迁移的灰度验证

    在我们对一个API站点进行微服务化的过程中,使用KONG网关可以实现以下几个效果: 1. 业务线无感知,其实内部已经被Kong转到其他站点上执行了,这对业务线特别友好. 2. 可以实现租户级/接口级灰 ...

  5. kong网关: service+route+upstream

    对于刚开始学习kong网关,总是一脑子浆糊迷迷糊糊.虽然已经安装好,但却不知道接下来如何下手, 因为包含项太多:service.routes.upstream.consumer.plugins等等.一 ...

  6. kong网关命令(一)

    上次在虚拟机里安装kong网关后,因为版本(1.4)太高,目前Kong Dashboard无法支持, 后续发现Git上有个开源工具Kong admin ui,下载源码并部署到NGINX. 但是发现使用 ...

  7. MacOs下安装Kong网关

    写在前面: 持续记录一下自己在解决api网关kong上的各种问题. 1.关于Kong网关 这是官网地址:https://konghq.com/ 2.通过brew安装postgres 因为kong的数据 ...

  8. 在K3s上使用Kong网关插件,开启K3s的无限可能!

    我的工作中很重要的一部分是参加各种各样的技术会议.最近参加的是去年11月的北美KubeCon,在会议的最后一天,所有人都焦头烂额,我也一直机械地向不同的人重复我的自我介绍.后来,我已经十分烦躁,决定逃 ...

  9. Kong网关安装之Docker版(2)

    1.安装kong管理工具:konga或者kong-dashboard,这里选择konga 拉取konga镜像: sudo docker pull pantsel/konga:0.14.4 初始化kon ...

  10. Kong网关安装之Docker版(1)

    前言: Kong 是天生的微服务网关.她的官方简介是:Kong 是一个云原生,高效,可扩展的分布式 API 网关. 自 2015 年在 github 开源后,广泛受到关注,目前已收获 1.9w+ 的 ...

随机推荐

  1. mysql 查询两个日期之间所有天数(查询近两个月所有日期)

    本文转自博文:https://blog.csdn.net/qq_42795259/article/details/126722209 遇到一个需求需要查询近两个月所有日期,如下图: 首先实现解决问题如 ...

  2. (待续) 强化学习——如何提升样本效率 ( DeepMind 综述深度强化学习:智能体和人类相似度竟然如此高!)

    强化学习     如何提升样本效率 参考文章: https://news.html5.qq.com/article?ch=901201&tabId=0&tagId=0&docI ...

  3. C++学习——类当中static关键字的作用

    一.类和对象 我们知道类是"行为"和"属性"的集合,我们可以通过类来实例化对象,从而定义对象的"行为"和"属性".比如: ...

  4. aiflow部署文档

    aiflow部署文档 一.简介 本文档用来进行aiflow项目的完全部署 二.安装环境 2.1 安装系统镜像版本 使用Centos镜像文件:CentOS-7-x86_64-DVD-1908.iso c ...

  5. byte,关于127+1等于多少

    public class Main { public static void main(String[] args) { Integer i1 = 100; Integer i2 = 100; Int ...

  6. 2024-2025, 四大翻译工具加AI翻译的深度对比

    前言 在过去两年中,人工智能技术的迅猛发展对翻译工具产生了深远的影响. 本期特意挑选了四款翻译工具以及一个AI翻译工具, 对其性能进行评测,看看在AI技术的加持下,它们的质量提升如何. 以下是参赛选手 ...

  7. Vulhub Apache Httpd漏洞复现

    目录 前言 多后缀解析漏洞 换行解析漏洞(CVE-2017-15715) 2.4.49 路径穿越漏洞(CVE-2021-41773) 2.4.50 路径穿越漏洞(CVE-2021-42013) SSR ...

  8. Python网络爬虫之requests模块2

    Python网络爬虫之requests模块(2) 今日内容 session处理cookie proxies参数设置请求代理ip 基于线程池的数据爬取 知识点回顾 xpath的解析流程 bs4的解析流程 ...

  9. Git之实战命令

    相关概念: HEAD: 说简单一点,HEAD就是当前活跃分支的游标. 形象的记忆就是:你现在在哪儿,HEAD就指向哪儿,所以Git才知道你在那儿! 不过HEAD并非只能指向分支的最顶端(时间节点距今最 ...

  10. ehcarts 实战小计-1

    需求 展示未来未来36个月(等分为3个时间范围)的经济效益趋势,3个等分时间区域在趋势图上方常显,不同时间区域之间通过灰色虚线间隔开: 鼠标hover趋势图每个1/3区域,对应区域会有以下3个效果: ...