zoukankan      html  css  js  c++  java
  • kong配置upstream实现简单的负载均衡


    [前言]

    本文以service和route知识为基础,通过配置upsream实现nginx的最基础负载均衡。

    我们最终通过Kong API将实现的访问效果如下:

    环境说明

    # 开放两个测试的微服务接口
    http://myhost1:8881
    http://myhost2:8882
    

    通过konga实现

    1. 配置upstream

    打开Konga左侧列表菜单中的UPSTREAMS, 点击 CREATE UPSTREAM

    这里,只需要写一个Name,保证Service的配置可以正确匹配到我们就可以了。

    既然是负载均衡,自然少不了后端服务,接下来配置在Upstreams进行负载均衡的终端——Targets
    找到我们刚才创建的upstream,然后点击DETALS

    Targets to + ADD TARGET,填写测试接口信息,完成对UPSTREAM的配置

    2. 配置Service发布

    配置一个Service,字段Url填写我们刚刚配置的UpstreamName

    3. 配置Route,匹配规则

    提示: 在输入 hosts,paths,methods时,要按回车!!!

    4. 验证结果

    浏览器测试
    通过Shift+F5 或 Ctrl+Shift+R,不使用缓存进行请求测试

    命令行API 测试

    $ curl -i -X GET --url http://localhost:8000 --header 'Host: test.app.com'
    

    通过 Kong Admin API实现

    route根据paths转发给相应的service根据host(upstream的name)转发给 upstream负载均衡至targets,这就是kong的负载均衡执行流程。

    下面再学习一下通过Admin API如何完成负责均衡配置

    1. 配置upstream

    创建upstream

    $ curl -X POST localhost:8001/upstreams 
    --data "name=app.com"
    

    为upstream配置target

    $ curl -X POST localhost:8001/upstreams/app.com/targets 
    --data "target=myhost1:8881" 
    --data "weight=100"
    
    $ curl -X POST localhost:8001/upstreams/app.com/targets 
    --data "target=myhost2:8882" 
    --data "weight=100"
    

    等同于创建了如下配置:

    upstream upstream.api {
        server myhost1:8881 weight=100;
        server myhost2:8882 weight=100;
    }
    

    2. 配置service

    $ curl -X POST localhost:8001/services 
    --data "name=my-app-service" 
    --data "host=app.com"
    

    3. 配置route(more)

    $ curl -X POST localhost:8001/services/a9b8a3e9-826b-47fa-ae78-0fcf111662a1/routes 
    --data "name=test-app-route" 
    --data "hosts[]=test.app.com" 
    --data 'strip_path=false'
    

    或者

    $ curl -X POST localhost:8001/routes 
    --data "name=test-app-route" 
    --data "hosts[]=test.app.com" 
    --data "service.id=a9b8a3e9-826b-47fa-ae78-0fcf111662a1" 
    --data 'strip_path=false'
    

    [sleepy↓]

  • 相关阅读:
    【OpenCV学习笔记5】读取图像中任意点的像素值
    【收藏】国企央企
    Visual Studio 进化史
    【图像算法】不变矩
    工控博客精华链接
    投了...
    【图像算法】常见的数字图像处理程序大全
    Google C++编码规范
    Google员工自述:在哈佛教书和在Google工作的差别
    国立华侨大学校长写给2010届毕业生的话:人生的二和三
  • 原文地址:https://www.cnblogs.com/sunhongleibibi/p/12035508.html
Copyright © 2011-2022 走看看