深入理解API网关Kong:动态负载均衡配置

这篇具有很好参考价值的文章主要介绍了深入理解API网关Kong:动态负载均衡配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

深入理解API网关Kong:动态负载均衡配置

背景

在 NGINX 中,负载均衡的配置主要在 upstream 指令中进行。upstream 指令用于定义一个服务器群组和负载均衡方法。客户端请求在这个服务器群组中进行分发。

NGINX 提供了以下几种负载均衡方法:

  1. 轮询(round-robin):这是默认的负载均衡方法,每个请求按照时间分发,从第一个服务器开始,直到最后一个,然后重新开始。

  2. 最少连接(least_conn):这种方法优先分发给当前活动连接数最少的服务器。

  3. IP 散列(ip_hash):每个请求的分发根据客户端 IP 地址的 hash 结果进行。这样,来自同一个 IP 的客户端会总是连接到同一个服务器,除非该服务器不可用。

  4. 基于权重(weight):你可以在每个 server 指令后添加一个 weight 参数,用来调整该服务器的权重。权重越大,分配到的请求越多。

以下是一个简单的例子,展示如何配置一个使用轮询方法的负载均衡:

http {
    upstream backend {
        server backend1.example.com;
        server backend2.example.com;
        server backend3.example.com;
    }

    server {
        listen 80;

        location / {
            proxy_pass http://backend;
        }
    }
}

在这个例子中,我们定义了一个名为 backend 的服务器群组,其中包含三个服务器:backend1.example.combackend2.example.combackend3.example.com。NGINX 将按照轮询方法在这三个服务器之间分发请求。

这是一个带权重的轮询负载均衡配置的例子:

http {
    upstream backend {
        server backend1.example.com weight=3;
        server backend2.example.com;
        server backend3.example.com;
    }

    server {
        listen 80;

        location / {
            proxy_pass http://backend;
        }
    }
}

在这个例子中,backend1.example.com 的权重为 3,而其他两个服务器的权重默认为 1。因此,backend1.example.com 将接收到大约三倍于其他服务器的请求。

但这种使用nginx配置的方式,其实是比较麻烦的是静态的,每次改完配置都要重启nginx服务(当然nginx也可以动态就是比较麻烦)。

Kong动态负载均衡

kong就解决了这个问题,可以动态配置且无需重启。接下来就介绍kong如何配置动态负载均衡,用konga可视化配置。

使用http接口操作

设置upstreams

Kong 通过 Upstream 和 Target 实体来提供负载均衡功能。Upstream 对象表示一个可以路由 HTTP 请求的虚拟主机。Target 则是 Upstream 的成员,即实际的服务器。

以下是如何使用 Kong Admin API 创建和配置 Upstream 的步骤:

创建一个 Upstream:

$ curl -X POST http://localhost:8001/upstreams \
    --data "name=example-upstream"

在这个例子中,我们创建了一个名为 “example-upstream” 的 Upstream。

添加 Target 到 Upstream:

$ curl -X POST http://localhost:8001/upstreams/example-upstream/targets \
    --data "target=example.com:80" \
    --data "weight=100"

这个例子将一个新的 Target(example.com:80)添加到了我们刚才创建的 “example-upstream” Upstream。Target 的权重被设定为 100,权重值越高,该服务器处理的流量就越多。

更新一个 Upstream:

$ curl -X PATCH http://localhost:8001/upstreams/example-upstream \
    --data "slots=500"

在这个例子中,我们更新了 “example-upstream” Upstream 的 slots 值。slots 是一个可选参数,用于设置 Upstream 的一致性哈希轮询算法的大小。

删除一个 Upstream:

$ curl -X DELETE http://localhost:8001/upstreams/example-upstream

这个例子将删除我们之前创建的 “example-upstream” Upstream。

以上就是在 Kong 中设置 Upstream 的一般步骤。

设置services

在 Kong 中,Service 是你想代理的上游 API 或者微服务的抽象。你可以使用 Kong 的 Admin API 来创建和配置服务。

以下是使用 Kong Admin API 创建和配置 Service 的基本步骤:

创建一个 Service:

$ curl -i -X POST \
  --url http://localhost:8001/services/ \
  --data 'name=example-service' \
  --data 'url=http://example.com'

这个例子创建了一个名为 “example-service” 的 Service,代理的 URL 是 http://example.com

更新一个 Service:

$ curl -i -X PATCH \
  --url http://localhost:8001/services/example-service \
  --data 'url=http://new-example.com'

这个例子更新了 “example-service” Service 的 URL,新的 URL 是 http://new-example.com

删除一个 Service:

$ curl -i -X DELETE \
  --url http://localhost:8001/services/example-service

这个例子删除了 “example-service” Service。

设置route

在 Kong 中,Route 是请求的入口,将接入的请求路由到指定的 Service。每个 Route 都必须关联到一个 Service,这个 Service 可以是 Kong 本地的,也可以是外部的。每个 Service 可以有多个 Route。

以下是使用 Kong Admin API 创建和配置 Route 的基本步骤:

创建一个 Route 并关联到 Service:

$ curl -i -X POST \
  --url http://localhost:8001/services/example-service/routes \
  --data 'paths[]=/testpath'

在这个例子中,我们创建了一个新的路由,并将其关联到了 “example-service” Service。当请求的路径为 “/testpath” 时,请求将被路由到 “example-service”。

更新一个 Route:

$ curl -i -X PATCH \
  --url http://localhost:8001/routes/{route_id} \
  --data 'paths[]=/newpath'

在这个例子中,我们更新了路由的路径。新的路径是 “/newpath”。请将 {route_id} 替换为你想更新的路由的 ID。

删除一个 Route:

$ curl -i -X DELETE \
  --url http://localhost:8001/routes/{route_id}

在这个例子中,我们删除了指定的路由。请将 {route_id} 替换为你想删除的路由的 ID。

路由的匹配可以基于多个条件,如主机名(host)、路径(path)、HTTP 方法(method)和客户端 IP 地址等。你可以根据需要配置这些条件。

使用konga页面操作

这里以代理一个后台接口为例(http://192.168.100.22:8888/swagger-resources):

深入理解API网关Kong:动态负载均衡配置

设置upstreams

如图所示,选择左侧菜单的UPSTREAMS,点击CREATE UPSTREAM创建upstreams

深入理解API网关Kong:动态负载均衡配置

create upstream

深入理解API网关Kong:动态负载均衡配置

点击detals

深入理解API网关Kong:动态负载均衡配置

深入理解API网关Kong:动态负载均衡配置

设置targets

深入理解API网关Kong:动态负载均衡配置

深入理解API网关Kong:动态负载均衡配置

设置services

深入理解API网关Kong:动态负载均衡配置
深入理解API网关Kong:动态负载均衡配置

设置route

深入理解API网关Kong:动态负载均衡配置

设置paths的时候记得回车

深入理解API网关Kong:动态负载均衡配置

效果

代理前的地址:

深入理解API网关Kong:动态负载均衡配置

代理后的地址:

深入理解API网关Kong:动态负载均衡配置

到这证明我们的代理生效了!文章来源地址https://www.toymoban.com/news/detail-472118.html

到了这里,关于深入理解API网关Kong:动态负载均衡配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Kong工作原理 - 负载均衡 - 基于DNS的负载均衡

    Kong提供多种请求负载均衡到多个后端服务的方式:默认的基于DNS的方法,以及使用Upstream实体的一组高级负载均衡算法。 默认情况下启用DNS负载均衡器,仅限于循环调度负载均衡。Upstream实体还具有健康检查和断路器功能,除了更高级的算法,如最小连接数、一致性哈希和最

    2024年01月25日
    浏览(47)
  • 深入理解负载均衡:原理及常用算法

    摘要: 负载均衡在现代网络架构中扮演着至关重要的角色,它通过分配请求到多个服务器来提高系统的性能、可用性和可伸缩性。本文将介绍负载均衡的基本原理以及常用的负载均衡算法,帮助读者更好地理解和应用负载均衡技术。 引言 随着互联网的迅速发展,网络应用的

    2024年04月17日
    浏览(35)
  • API 网关 vs 负载均衡:选择适合你的网络流量管理组件

    由于互联网技术的发展,网络数据的请求数节节攀升,这使得服务器承受的压力越来越大。在早期的系统架构中,通常使用负载均衡来将网络流量平摊到多个服务器中,以此减轻单台服务器的压力。但是现如今,后端服务的种类在不断地变多,每个种类的后端都以 API 的形式

    2024年02月11日
    浏览(47)
  • “深入理解Nginx的负载均衡与动静分离“

    在现代互联网应用中,高性能和可扩展性是至关重要的。Nginx作为一款高性能的Web服务器和反向代理服务器,被广泛应用于各种规模的网站和应用程序中。本文将深入探讨Nginx的负载均衡和动静分离的原理与实践,帮助读者更好地理解和应用这些功能。 Nginx是一款轻量级的高性

    2024年02月06日
    浏览(42)
  • 高性能API网关Kong介绍

    本文:高性能、API网关、Kong、微服务 ​​​​​​​         API网关是随着微服务(Microservice)概念兴起的一种架构模式。原本一个庞大的单体应用(All in one)业务系统被拆分成许多微服务(Microservice)系统进行独立的维护和部署,服务拆分带来的变化是API的规

    2024年02月03日
    浏览(41)
  • 深入浅出 -- 系统架构之负载均衡Nginx跨域配置

       跨域问题在之前的单体架构开发中,其实是比较少见的问题,除非是需要接入第三方 SDK 时,才需要处理此问题。但随着现在前后端分离、分布式架构的流行,跨域问题也成为了每个Java开发必须要懂得解决的一个问题。 跨域问题产生的原因    产生跨域问题的主要原因就

    2024年04月10日
    浏览(54)
  • 深入浅出 -- 系统架构之负载均衡Nginx大文件传输配置

       在某些业务场景中需要传输一些大文件,但大文件传输时往往都会会出现一些 Bug ,比如文件超出限制、文件传输过程中请求超时等,那么此时就可以在 Nginx 稍微做一些配置,先来了解一些关于大文件传输时可能会用的配置项: 配置项 释义 client_max_body_size 设置请求体允

    2024年04月12日
    浏览(72)
  • 深入浅出Nginx的基本原理和配置指南「负载均衡篇」

    6.1 四层负载均衡 6.1.1 四层负载均衡与七层负载均衡的区别 四层负载均衡数据包是在底层就进行了分发,而七层负载均衡数据包则在最顶端进行分发,所以四层负载均衡的效率比七层负载均衡的要高。四层负载均衡不识别域名,而七层负载均衡识别域名。 6.1.2 四层负载均衡配

    2024年02月09日
    浏览(46)
  • gateway网关负载均衡策略

    前言  之前作业是使用 nacos注册中心来搭建有一个微服务,消费者必然要用到gateway网关来操作路由,并且配置负载均衡策略。 搭建微服务-文章链接:快速搭建微服务-Nacos_一码超人的博客-CSDN博客_微服务搭建nacos  添加一个gateway模块  配置文件application.yml  访问服务:http:

    2024年02月12日
    浏览(41)
  • eNSP配置(直连/静态/动态路由,DHCP,单臂路由,ACL,NAT,链路聚合,负载均衡,WLAN,备份路由)

    目录 常见问题: 一.同/不同网段与网关之间通信 二.以太网基本VLAN 三.静态路由 四.动态路由 (1)OSPF(开放最短优先路径) 适用于大型网络结构 (补充DR BDR) 单区域 多区域 (2)RIP(路由信息协议)  适用于中小型网络结构 五.DHCP(动态主机配置协议) 六.三层交换机的不同网段通信

    2024年02月08日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包