Fix ERR no server connection avaliable

This commit is contained in:
ZouJinHai 2020-11-27 20:41:57 +08:00
parent 393ff81e69
commit 5f9c71e2b6

View File

@ -49,16 +49,18 @@ Server* ServerGroup::getServer(Handler* h, Request* req) const
Server* serv = nullptr; Server* serv = nullptr;
if (req->requireWrite()) { if (req->requireWrite()) {
int cnt = mServs.size(); int cnt = mServs.size();
for (int i = 0; i < cnt; ++i) { for (int i = cnt-1; i >= 0; --i) {
Server* s = mServs[i]; Server* s = mServs[i];
if (!s->online()) { if (!s->online()) {
continue; continue;
} }
if (s->role() == Server::Master) { if (s->role() == Server::Master) {
serv = s; serv = s;
if (!s->fail()){
break; break;
} }
} }
}
} else if (auto dataCenter = mPool->proxy()->dataCenter()) { } else if (auto dataCenter = mPool->proxy()->dataCenter()) {
serv = getReadServer(h, dataCenter->localDC()); serv = getReadServer(h, dataCenter->localDC());
} else { } else {