há uma solução servicebus onde os consumidores não consomem eventos? (Vários consumidores recebem mesmo evento)
-
19-09-2019 - |
Pergunta
Eu estava lendo sobre ActiveMQ que parece ser uma grande implementação de um servicebus onde os produtores podem enviar mensagens e outros processos podem recebê-los.
No entanto, quando ler a documentação, parece que o produtor tem que dar o 'ponto final' ao enviar uma mensagem.
Eu preferia tê-lo o contrário: Meus Posts produtores eventos 'trabalho de importação começando', 'trabalho de importação acabado', etc e qualquer consumidor que está interessado em certas classes de eventos podem se inscrever e receber estes. No entanto, o consumidor não deve consumir o evento em que não se enviar para outros assinantes mais.
Qual seria o melhor produto para ter este tipo de propriedade?
Restrições: - Ela deve ter interfaces para, pelo menos, .Net e php - Ele deve funcionar para além das fronteiras da máquina
Graças
Solução
Eu acho que você está publicando para uma fila que normalmente significa que um consumidor, bem, consumir a mensagem eo evento é tratado. Se você precisa ter mais de 1 consumidor de receber os eventos, você deve usar tópicos.
Ao usar tópicos, todos os consumidores subscritas receber o evento que você tenha enviado.
Dê uma olhada nisso: http : //activemq.apache.org/how-does-a-queue-compare-to-a-topic.html
Outras dicas
Não sei sobre o melhor, mas eu usei D-Bus em projeto onde era uma tarefa como a sua. Verifique a sua documentação.
As referências a implementações:
Espero que wuill ajudar.
Se você está ok com ter o serviço hospedado na nuvem, ServiceBus da Microsoft permite que o cenário através dele do Tópico / modelo de assinatura. Sob este modelo, o produtor envia uma mensagem para o Tópico (uma fila para todos os efeitos práticos), e qualquer um que tenha subscrito a ela receberá uma cópia da mensagem. Para mais cenários avançados, você pode até criar regras e filtros para definir quais clientes obtêm quais mensagens. Há tanto .NET e APIs REST para isso.
Você pode verificar uma gravação completa-se das capacidades aqui . O doc inclui código de exemplo sobre como usar as bibliotecas de cliente para isso. Há também amostras sobre como utilizar servicebus com Java e PHP, no caso de você precisar de suporte para esses idiomas.