Назад | Перейти на главную страницу

Всегда ли какой-либо лак с помощью directors.hash () и hash.backend () выбирает один и тот же бэкэнд?

У меня есть 2 лака, каждый из которых имеет 2 бэкэнда (одинаковые версии лака -v4.x- и файл конфигурации).

Входящие клиентские соединения случайным образом распределяются по любому доступному лаку.

Мне нужно, чтобы клиенты всегда использовали один и тот же бэкэнд с лаком в зависимости от их исходного IP-адреса (за исключением, конечно, неудачного бэкэнда).

Я использую следующее (упрощенное) конфигурация:

new servers = directors.hash();
servers.add_backend(srv01, 1.0);
servers.add_backend(srv02, 1.0);

sub vcl_recv {
    set req.backend_hint = servers.backend(client.ip);
}

Я хотел бы знать, гарантирует ли алгоритм хеширования, используемый Varnish, что независимо от того, через какой Varnish они проходят, клиенты всегда будут использовать один и тот же бэкэнд.

Это означает, что для инициализации алгоритма хеширования нельзя использовать случайные данные. Вы знаете, так ли это?

В hash и shard Директора будут выполнять хеширование на одних и тех же внутренних серверах, предполагая одинаковую конфигурацию и состояние выполнения (работоспособность внутренних серверов). Он использует sha256 без случайного компонента (кроме ключа хеширования).