Estou tentando resolver o seguinte problema e gostaria de saber qual é a melhor abordagem a ser aplicada?
Eu gostaria de configurar uma comunicação com controle de versão via ZeroMQ, o que efetivamente significa que qualquer cliente primeiro faz um handshake declarando a versão de seu protocolo de mensagens e, em seguida, todas as solicitações subsequentes são encaminhadas apenas para um conjunto específico de trabalhadores, ou seja, aqueles que podem entender isso protocolo.
Vi o exemplo do Roteador / Concessionário mas aí o encaminhamento ocorre sempre para todos os trabalhadores.
IMO, isso é algo como uma sessão, que é estabelecida com base em handshake e todas as solicitações futuras são feitas em um contexto específico. Isso pode ser feito com ZeroMQ?
Eu entendo que posso devolver algum ID ao cliente e pedir que ele coloque em todas as solicitações futuras, mas gostaria de evitar esse tipo de intromissão.
Apenas uma observação lateral: eu implemento essa abordagem em C ++. Não me importo se sua resposta representa uma ideia geral, levando em consideração os recursos disponíveis na API C ZeroMQ ou no wrapper cppzmq. Não há necessidade de escrever uma solução completa, apenas como isso pode ser feito.
Com todo o respeito para não entrar na sinalização "dentro da banda" por meio de processamento de mensagem de ID / multiparte, pode-se construir a infraestrutura desejada usando uma mistura de uso estático e dinâmico de recursos ZeroMQ no estado em que se encontram.
Etapa 0: sua autoridade central lida com o contato / handshaking / validação de identidade do "cliente" inicial
Etapa 1: cada "cliente" recebe um conjunto de instruções, conforme sua identidade / versão é aprovada, com base em 0)
Etapa 2: instrução ad-hoc " cliente "pode { .connect() | .bind() }
com ponto de acesso apropriado
Etapa 3: como um bônus de arquitetura, isso pode ser apreciado como plataforma distribuída com renegociação (ões) e redescoberta de nós para cenários ainda mais robustos, escaláveis de desempenho e elevada segurança
Em poucas palavras, pode-se esquecer logo os Padrões de Comunicação Formais Escaláveis padrão; eles servem como um conjunto de blocos de construção para arquiteturas definidas ad-hoc. Esse é o maior poder do ZeroMQ ou nanomsg de realizar.
Pode ler mais sobre casos de uso avançados neste (e verificar o livro lá ...) .
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras