Predis - удаление сервера из пула соединений - PullRequest
0 голосов
/ 19 сентября 2011

Скажем, у меня N серверов в пуле соединений predis.Я обнаружил, что когда один из серверов отключается, predis не работает (т.е. новый predis / client (s1, s2, ...) не возвращается успешно, если какой-либо из серверов Si не работает).Во-первых, запись об отказавшем сервере должна быть удалена вручную, и только после этого предисловие возобновит свою работу.Поскольку predis утверждает, что использует согласованное хеширование, разве в этом случае predis автоматически не определяет, какой из серверов не отвечает (& не удалось), и распределяет ключи, хранящиеся на отказавшем сервере, на другие рабочие серверы?

1 Ответ

0 голосов
/ 26 сентября 2011

Predis использует согласованное хеширование, но вам остается убедиться, что все серверы в пуле работают и отвечают. Мониторинг доступности сервера не подразумевает согласованное хеширование.

Вы можете проверить каждый сервер, прежде чем пытаться подключиться, и изменить свой пул соединений на основе ваших проверок. Вы можете хранить список доступных серверов для пула в другом месте и иметь какой-то другой процесс, постоянно наблюдающий и изменяющий список доступных серверов. Вы можете просто предположить, что они все в порядке, и только проверить, какие из них необходимо удалить в случае сбоя, или вы можете использовать любую комбинацию из вышеперечисленного. Суть в том, что predis в данный момент не делает это за вас.

...