Qual é a melhor maneira de criar uma configuração mestre-escravo para uma aplicação web?

StackOverflow https://stackoverflow.com/questions/1189683

  •  19-09-2019
  •  | 
  •  

Pergunta

Estou criando uma interface de gerenciamento de servidor para alguns dos meus servidores (que hospedam servidores virtuais) e eu queria saber a melhor maneira de implementar uma configuração mestre-escravo para a referida interface.

O servidor mestre deve se conectar a todos os servidores escravos, a fim de recuperar informações (fornecer uma visão geral de alto nível) e enviar comandos eles (mantém gestão centralizada). No entanto, o servidor mestre em si também pode ter servidores virtuais sobre ele, que é por isso que eu estava planejando implantar o mesmo aplicativo em todos os nós físicos e descobrir se o nó é um mestre ou um escravo.

// Side Nota: quase parece recursão de uma maneira haha ??

Algumas idéias que eu tinha em mente:

  • esquemas de banco de dados separados para um mestre e um escravo, os controlos de aplicativos do esquema para determinar o tipo de servidor.
  • Um campo no servidor tabela de lista que designa um servidor na tabela como um mestre ou escravo
Foi útil?

Solução 2

Eu vim com uma solução simples para o meu problema. Acabei de adicionar um arquivo escravo para a instalação de um escravo, e o programa verifica para ver se o arquivo está lá. Se for, ele designa o servidor como um escravo ..... totalmente sobre pensei que isso ...

Outras dicas

Enquanto você poderia rolar sua própria solução, a sua melhor aposta é algum tipo de estrutura de automação servidor / app como Puppet ou Chef. Pessoalmente, eu prefiro chef, mas há um monte de suporte para ambos. No mínimo, você provavelmente poderia obter alguns insights sobre como conseguir isso se deles:)

Ao invés de ir em uma grande explicação sobre o que eles fazem, eu sugiro que você verificar os sites para cada um:

No entanto, aqui estão as sinopses de introdução de cada site ...


Chef é um framework de integração de sistemas, construídos para levar os benefícios do gerenciamento de configuração para toda a sua infra-estrutura. Com Chef, você pode:

  • Gerencie seus servidores escrevendo código, não executando comandos. (Via Cookbooks)
  • Integrar firmemente com suas aplicações, bancos de dados, diretórios LDAP, e muito mais. (Via Bibliotecas)
  • aplicações configurar facilmente que requerem conhecimento sobre toda a sua infra-estrutura ( "Que sistemas estão executando o meu pedido?" "O ??que é o servidor de banco de dados mestre atual?")

Puppet é uma linguagem declarativa para expressar configuração do sistema, um cliente e servidor para distribuí-lo, e uma biblioteca para realizar a configuração.

Ao invés de se aproximar gerenciamento de servidores, automatizando as técnicas atuais, Puppet reformula o problema, fornecendo uma linguagem para expressar as relações entre os servidores, os serviços que prestam, e os objetos primitivos que compõem esses serviços. Em vez de lidar com o detalhe de como conseguir uma certa configuração ou fornecer um determinado serviço, os usuários fantoche pode simplesmente expressar a sua configuração desejada usando as abstrações que eles estão acostumados a lidar, como serviço e nó e Puppet é responsável por tanto alcançar a configuração ou fornecer a informação suficiente usuário para corrigir quaisquer problemas encontrados.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top