美文网首页
kong 负载均衡的实现

kong 负载均衡的实现

作者: xuxiangwork | 来源:发表于2018-01-22 17:28 被阅读0次

    1、需求背景

    对于核心 api,需要保证搞可靠性,那么就要对于该 api 有多个 backend service,即实际后端对该 api 有多个服务的节点;那么最好在 api-gateway 即 kong 这一层实现负载均衡;

    2、具体的方案

    相关的参考链接有:http://www.cnblogs.com/SummerinShire/p/6925308.htmlhttps://getkong.org/docs/0.11.x/loadbalancing/https://getkong.org/docs/0.11.x/admin-api/#upstream-objects

    实际在操作过程中,采用的是 kong 的 Ring-balancer 做负载均衡。

    add-upstream.png

    添加一个 upstream,该 upstream 的名字是填写在 api 的 upstream_url 中的。

    upstream-example.png

    1)具体的例子,例如有一个 api

    upstream-instance.png

    其 upstream_url 填写的是 test-upstreams,那么在 test-upstreams 的配置中,给 test-upstreams 配置了两个 target,权重都是 100

    targets.png

    这样就完成了一个 api 的负载均衡。

    2)测试的 nginx.conf

    worker_processes  auto;        #nginx worker 数量
    events {
        worker_connections 1024;
        use epoll;
    }
    pid /home/work/var/kong-test/nginx.pid;
    http {
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
            '$status $body_bytes_sent "$http_referer" '
            '"$http_user_agent" "$http_x_forwarded_for" '
            '$request_time';
        access_log logs/access.log main;
        error_log logs/error.log notice;
        keepalive_timeout  65;
        server {
            listen 8999;
            server_name 999;
            default_type application/json;
            root /home/work/app/nginx-upstream/;
            location / {
                return 999;
            }
        }
        server {
            listen 8988;
            server_name 998;
            default_type application/json;
            root /home/work/app/nginx-upstream/;
            location / {
                return 998;
            }
        }
    }
    

    测试结果:

    test1.png test2.png

    相关文章

      网友评论

          本文标题:kong 负载均衡的实现

          本文链接:https://www.haomeiwen.com/subject/yiqraxtx.html