Comunicação de conexão aberta entre duas máquinas

1

Estou tentando conectar duas máquinas. Serviço de Nuvem do Azure (A) com máquina Linux (B) que não pertence ao Windows Azure. O que estou tentando fazer é fazer uma conexão aberta entre A e B. Então, A pode saber que B está vivo. Não consigo efetuar o ping de B diretamente de A porque B estará na rede interna. B não tem IP público que eu poderia pingar. Em outras palavras, B irá se conectar à Internet através do roteador. Eu preciso enviar alguns comandos para B da web via A. É por isso que eu preciso manter a conexão aberta entre A e B. Quaisquer soluções, ideias ou artigos que eu possa ler para conseguir isso?

Aqui está diagrama da infraestrutura para mais detalhes

    
por Daniil T. 20.11.2014 / 19:02

1 resposta

3

O que você vai querer fazer é mudar a lógica nos sistemas do cliente - em vez de conectar a cada 15 minutos, assim:

  • Conexão TCP aberta ao servidor do controlador
  • Fazer check-in
  • Fechar a conexão TCP

Peça-lhes para fazer isso ...

  • Abrir conexão TCP ao servidor
  • Identifique-se, verifique o arquivo de configuração
  • .. aguarde os comandos ..
  • A conexão falhou ou foi fechada? Abra novamente! (Coloque um timer de repetição razoável)

Desta forma, o servidor central pode enviar dados para os nós quando necessário, como atualizar seus arquivos de configuração em tempo real - cada um dos sistemas de vídeo será conectado a ele e capaz de aceitar imediatamente as atualizações do servidor. Os sistemas push email funcionam essencialmente com este mesmo mecanismo - o cliente mantém uma conexão aberta ao servidor e o servidor pode enviar novos dados assim que for necessário.

Dependendo da arquitetura do seu aplicativo, pode ser mais sensato conectar algum tipo de sistema de fila de mensagens para fazer isso; Eu não estou familiarizado com os detalhes do protocolo de comunicação da maioria dos MQs (e se eles vão trabalhar com sua configuração de rede), mas algo como Redis Pub / Sub parece que seria um ótimo ajuste.

    
por 20.11.2014 / 21:49