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↓]

  • 相关阅读:
    some tips
    ORA00847: MEMORY_TARGET/MEMORY_MAX_TARGET and LOCK_SGA cannot be set together
    Chapter 01Overview of Oracle 9i Database Perfomrmance Tuning
    Chapter 02Diagnostic and Tuning Tools
    变量与常用符号
    Chapter 18Tuning the Operating System
    标准输入输出
    Trace files
    DBADeveloped Tools
    Chapter 03Database Configuration and IO Issues
  • 原文地址:https://www.cnblogs.com/sunhongleibibi/p/12035508.html
Copyright © 2011-2022 走看看