一、优势:

提供统一的 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. 工作中的技术总结_JAVA_AA-00001 关于Session的使用 _20210825

    AA-00001 关于Session的使用 _20210825 Session Java 中的Session:javax.servlet.http.HttpSession; 应用: 在我自己的项目中 ...

  2. 3-3 C++ vector类型

    目录 3.3.0 模板(Template) vector说明 模板简介 3.3.1 vector的定义和初始化 初始化的方式 总结初始化 3.3.2 往vector中添加元素 3.3.3 vector ...

  3. [异常笔记] zookeeper集群启动异常:Error contacting service. It is probably not running.

    報錯信息 zookeeper服務已經啓動,但是狀態是Error contacting service. It is probably not running. 2021-02-23 21:00:41, ...

  4. windows下git安装以及基本使用

    Git的基本使用 Windows下Git的基本使用与操作 安装Git 这个是一个git的windows系统的命令行版本 https://git-scm.com/downloads 安装 tortois ...

  5. ABP - 菜单配置(导航栏选中高亮,高亮并定位当前标题)

    配置一个如上图所示的菜单: 1.打开文件NavigationProvider.cs 添加如下代码(如下图所示) .AddItem(new MenuItemDefinition( PageNames.A ...

  6. Logback日志文件失效

    2021-07-30碰到加了logback-spring.xml依然不生效的问题,特此记录. 发现问题 在项目中引入logback-spring.xml文件,该文件配置了会在项目根目录下生成logs文 ...

  7. 域渗透之初识Kerberos认证过程

    目录 Kerberos协议中的角色 关键名词 Kerberos协议的工作流程 AS_REQ & AS_REP TGS_REQ & TGS_REP AP_REQ PAC 总结 Kerbe ...

  8. python 爬虫基本玩法,统计杭电oj题目正确率并排序

    python爬虫主要用两个库:Urllib和BeautifulSoup4.一个用来爬取网页,一个用来解析网页. Urllib是Python内置的HTTP请求库,它包含四个模块: 1.request,最 ...

  9. celery报错笔记

    报错: Invalid value for '-P' / '--pool' Invalid value for '-P' / '--pool': <class 'celery.concurren ...

  10. 一文搞懂flex(弹性盒布局)

    1.什么是弹性布局 Flex是Flexible Box的缩写,翻译成中文就是"弹性盒子",用来为盒装模型提供最大的灵活性.任何一个容器都可以指定为Flex布局. 她是一种现代的CS ...