Load Balancing

Janus provides multiple ways of load balancing requests to multiple backend services: a roundrobin (or just rr) method, and a weight method.

Round Robin

{
    "name": "My API",
    "proxy": {
        "listen_path": "/foo/*",
        "upstreams" : {
            "balancing": "rr",
            "targets": [
                {"target": "http://my-api1.com"},
                {"target": "http://my-api2.com"},
                {"target": "http://my-api3.com"}
            ]
        },
        "methods": ["GET"]
    }
}

This configuration will apply the roundrobin algorithm and balance the requests to your upstreams.

Weight

{
    "name": "My API",
    "proxy": {
        "listen_path": "/foo/*",
        "upstreams" : {
            "balancing": "weight",
            "targets": [
                {"target": "http://my-api1.com", "weight": 30},
                {"target": "http://my-api2.com", "weight": 10},
                {"target": "http://my-api3.com", "weight": 60}
            ]
        },
        "methods": ["GET"]
    }
}

This configuration will apply the weight algorithm and balance the requests to your upstreams.