Pergunta

Nós estávamos olhando para o MSMQ para a persistência do 'push' servidor de comunicação do cliente.Não pode ser de até 1000 clientes por servidor.

Em um de nossos testes, nós enviamos uma pequena mensagem para 300 clientes off-line e, em seguida, enviou uma mensagem para um cliente on-line.A última mensagem foi adiado por mais de 40 minutos como MSMQ trabalhou seu caminho através de mensagens não entregues (observado através do MMC).Nós também usamos MSMQ para o caminho de retorno, onde ele funciona bem.

Existe alguma maneira de fazer o MSMQ se adequar a esse padrão de utilização, reduzindo a quantidade de tempo que tenta se conectar a um host offline?Se não, existe alguma outra fila produto que seria um melhor ajuste, ou é rolo de seu próprio tempo?Matérias taxa de transferência não é uma prioridade, mas o número de filas de saída e a previsibilidade/latência máxima são, como espaço de memória sobre os clientes (o que pode ser bastante máquinas antigas).

Foi útil?

Solução 2

Nossa solução foi fazer uma pausa programaticamente as filas para máquinas que estavam offline (já tínhamos uma mensagem UDP para saber se os clientes estão em alta) por meio de uma das interfaces de gerenciamento da MSMQ.

Com filas para hosts descobertos em pausados, o MSMQ passou muito menos tempo trabalhando através de mensagens não entregues.

Também foi uma boa lição para aplicar um pouco de pensamento lateral ao pensar em testes para avaliar tecnologias! Em geral, eu não recomendaria o MSMQ para o servidor para comunicações do cliente por causa desse problema - eu diria que a pesquisa dos clientes seria preferível.

Outras dicas

Você poderá melhorar o desempenho desativando o diário e fazendo com que as mensagens não-recuperáveis...se você não se preocupa com mensagens de ficar perdido.

Uma correção rápida com seu off-line é um cenário que pode ser para aumentar o número de threads disponíveis para o MSMQ que usa um thread por fila de saída.Cada offline tentativa de conexão demora um pouco, o bloqueio de uma thread. http://technet.microsoft.com/en-us/library/cc957498.aspx Tente jogar como muitos segmentos, como você pode.

Meus colegas têm trabalhado com ActiveMQ e disse que ele é muito mais flexível, enquanto o melhor desempenho.Eu não tenho, pessoalmente, trabalhei com ele, mas eu gostaria de olhar para ele, se você não está amarrado .Líquida.

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