upyun/slardar

How to add upstream backup server in consul, Does it support?

xiaoxuanzi opened this issue · 2 comments

I know how to add upstream server in consul in README:

key: upstreams/node-dev.example
servers: {"enable": true, "servers": [{"host": "127.0.0.1","port": 8001,"weight": 1,"max_fails": 6,"fail_timeout": 30}]}

But i don not know how to add upstream backup servers, and how slardar use backup server when all primary server dowm with the round-robin method?
And i did't find any code to process backup servers.
Can you tell me how? I am wait online! THX!

`local servers = get_servers(consul_cluster, key .. "?raw")
if not servers or not next(servers) then
return false
end

    if not check_servers(servers["servers"]) then
        return false
    end

    local cls = {
        servers = servers["servers"],
        keepalive = tonumber(servers["keepalive"]),
        try =  tonumber(servers["try"]),
    }

    config[skey] = {
        cluster = { cls },
    }`

Sorry for late reply.

how to add upstream backup servers

Checkups support multi-level servers. But Slardar doesn't support by now. You can see only one level is passed to checkups.update_upstream here.

If you want multi-level, maybe you can call checkups.update_upstreams like this:

checkups.update_upstream(skey, {
                    {     -- primary
                        servers = {
                            {host="127.0.0.1", port=12350},
                            {host="127.0.0.1", port=12351},
                        }
                    },
                    {      -- backup
                        servers = {
                            {host="127.0.0.1", port=12352},
                            {host="127.0.0.1", port=12353},
                        }
                    },
            })

Patches welcome.

how slardar use backup server

Slardar use backup servers when all primary servers are down by the same RR policy.

I'm glad to have received your respone,
thanks a lot.
I want to use Slardar in my project . I have already change some of code in to Slardar adjust my to adapt to the scene in my project. and make Slardar more general.

i am very happy to submit patches in the next months and anticipate your reply.