Pergunta

Não tendo usado o MSMQ antes, não estou de todo claro que os requisitos do ambiente do cliente o usam.

Estou projetando uma solução de cliente/servidor que se integrará a um sistema herdado e sou vendido em mensagens. Eu gostaria de usar uma implementação de barramento de serviço como o Masstransit, mas isso requer MSMQ.

Preciso garantir que todo PC cliente tenha o MSMQ instalado nele?

Eu não acho que minhas perspectivas de vender isso aos guardiões de A senha do administrador são muito bons.

No momento, posso esperar que todas as máquina clientes tenham o Windows XP Professional instalado, mas isso pode mudar e meu entendimento é que o MSMQ não está instalado por padrão no OSS mais recente, o que seria uma dor de cabeça ainda maior.

Alguém pode elucidar para mim como isso funciona? Não consigo imaginar como qualquer software comercial pode confiar no MSMQ, a menos que esteja perdendo algo significativo (espero que eu seja).

(O servidor não é um problema - tenho controle total lá.)

Foi útil?

Solução

Para responder sua pergunta básica. Sim. Cada PC teria que ter o serviço MSMQ em execução. Eu não acho que o MSMQ é destinado a um tipo de software de usuário geral, mas para a empresa de servidor. Servidor para servidor. Eu certamente poderia estar errado, mas com a limitação que você está perguntando sobre, também não vejo como isso poderia ser usado para software comercial.

Outras dicas

Uma opção ESB (ou mesmo uma opção leve como Masstransit ou NServiceBus) não foi projetada para a comunicação do cliente/servidor. Se você possui um aplicativo de cliente espesso que precisa se comunicar com os serviços de back-end, pode ser mais sensato construir uma camada de sabão e/ou descanso com a qual os clientes se comunicam. Por trás dessa camada de serviço, você pode usar mensagens internamente, dependendo dos seus requisitos de escala. As mensagens são muito úteis para lidar com cargas altamente dinâmicas, juntamente com outras tecnologias, como o cache.

Se você deseja fazer mensagens no cliente, considere usar um sistema de mensagens em estilo de corretor (o ActiveMQ se encaixa aqui, é uma conexão TCP/IP regular) e conectar -se a ele do cliente. É uma maneira de fazer isso, não necessariamente a melhor maneira dependendo da sua situação. O MassTransit pode usar o ActiveMQ, permitindo abstrair a API de programação de MSMQ/ActiveMQ em uma interface de transporte mais universal.

Existem muitas opções ao projetar sistemas distribuídos, independentemente de você precisar ou não de comunicação cliente-cliente versus comunicação cliente a servidor pode realmente ajudar a diferenciar as várias opções de tecnologia.

A resposta, da minha experiência, é: ao usar o Masstransit, use o RabbitMQ e não o MSMQ. cf. Masstransit: Ele pode usar o Central MSMQ Server? (Ou devo começar com RabbitMQ desde o início?)

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