项目地址: https://github.com/openresty/lua-resty-balancer 想搞一个动态的upstream 出来,找到lua-resty-balancer 这个库跟据readme写了一个简单的测试出来,用的是roundrobin,但是发现流量只会导向一台后端,仔细翻了一下github, 在项目里看到这么一个测试用例:--- config location /t { content_by_lua_block { local roundrobin = require "resty.roundrobin" local servers = { ["server1"] = 8, ["server2"] = 4, ["server3"] = 2, } local rr = roundrobin:new(servers) ngx.say("gcd: ", rr.gcd) for i = 1, 14 do local id = rr:find() ngx.say("id: ", id) end } }--- requestGET /t--- response_bodygcd: 2id: server1id: server1id: server1id: server2id: server1id: server2id: server3id: server1id: server1id: server1id: server2id: server1id: server2id: server3取server的时候是写在一个循环里的,但是我是用在balancer_by_lua_block 块里,这样就会导致怎么样都会取到第一台后端 我要怎样写才能达到轮询的效果呢? --
--- config location /t { content_by_lua_block { local roundrobin = require "resty.roundrobin" local servers = { ["server1"] = 8, ["server2"] = 4, ["server3"] = 2, } local rr = roundrobin:new(servers) ngx.say("gcd: ", rr.gcd) for i = 1, 14 do local id = rr:find() ngx.say("id: ", id) end } }--- requestGET /t--- response_bodygcd: 2id: server1id: server1id: server1id: server2id: server1id: server2id: server3id: server1id: server1id: server1id: server2id: server1id: server2id: server3