Os provedores de nuvem pública geralmente não oferecem suporte a métodos de transmissão / difusão seletiva, portanto, qualquer solução que se baseie neles não será "melhor". Pelo menos para valores de 'melhor' que incluam componentes significativos de independência de plataforma.
No unicast-land, você tem várias opções e depende muito do que você deseja fazer com essas imagens e de qual serviço está realmente realizando a descoberta.
Se você estiver totalmente em um único provedor de infraestrutura em nuvem, a maneira mais comum é perguntar à infraestrutura sobre o que está lá . Você obterá uma lista de servidores, com endereço IP, que você poderá usar para criar seu cluster dinâmico.
Se você não puder fazer isso por algum motivo, talvez esteja em vários provedores ou precise de uma lista de hosts conhecidos, você terá que usar algum método específico de construção de aplicativos. um cluster dinâmico. Os métodos para isso são vários, mas eu vi:
- Forneça algumas dicas para os nós verificarem quando eles ficarem online, e o aplicativo manterá uma lista de checkins e fará pulsação para garantir que apenas os nós ativos estejam na lista. Pense nisso como semeadores bit-torrent.
- Registros de serviço com um serviço de registro de serviço real, dos quais você listou alguns.
- Registros de serviço com serviço de registro próprio, como algo separado do Redis.
O que é melhor para você depende do que você está fazendo. Mas vá para as pesquisas de API primeiro e só fique chique se elas não funcionarem para você.