Alterar back-end durante a nova tentativa no verniz 4

Eu gostaria de poder alterar o back-end em uma nova tentativa no Varnish 4. Temos isso funcionando em um aplicativo (mais antigo) diferente usando o Varnish 3, mas não consegui descobrir isso para a v4, nem encontre muita documentação. A configuração que queremos é ter 2 conjuntos de diretores - um para a solicitação inicial de tentar um servidor local no mesmo datacenter que o verniz, porque isso é muito mais rápido e, somente se isso falhar, escolha aleatoriamente um diretor diferente para servidores em outros locais. datacenters.

Na v3, isso foi fácil:

sub vcl_recv {
    if (req.restarts == 0) {
        set req.backend = defaultdirector;
    } else {
        set req.backend = backupdirector;
    }
}

#Then in vcl_fetch and/or vcl_error something like:
if (beresp.status >= 500 && req.restarts < some_max) {
    return(restart);
}

Mas agora na v4, o reinício foi supostamente substituído por nova tentativa, com toda a documentação:

Na versão 3.0, era possível retornar (reiniciar) depois de perceber que a resposta do back-end estava errada, para mudar para um back-end diferente.

Agora, isso é chamado de retorno (nova tentativa) e volta para vcl_backend_fetch.

Isso influencia apenas o encadeamento de busca de back-end, a manipulação do lado do cliente não é afetada.

No entanto, ainda vejo o código de exemplo de algumas pessoas que contém retorno (reinício) em vez de retorno (nova tentativa), e nenhum exemplo disso trabalhando com o comando retry.

Entendo que o verniz não deveria ter que fazer todo o trabalho no vcl_recv novamente (como remover cookies), já que foi apenas a comunicação com o back-end que falhou, por isso faz sentido retornar à busca de back-end em vez de refazer todo o processamento de front-end, mas recebo um erro de compilação se tentar alterar o back-end em vcl_backend_fetch. Como eu faço isso funcionar?

questionAnswers(1)

yourAnswerToTheQuestion