Pergunta

Existe um produto (fonte idealmente aberta, mas não é necessário), que permitiria a implantação de zero dependência? cada barramento de serviço ou fila biblioteca eu tenho sido capaz de encontrar tem uma dependência em um dos aplicativos de fila (como msmq), ou um banco de dados. Eu gostaria de uma solução muito leve que posso apenas adicionar uma referência ao meu pedido, construí-lo e implantá-lo com o mínimo de configuração possível.

Em um mundo ideal, o ônibus fila / serviço seria executado em IIS, e permitir web e clientes ricos para conversar com ele.

Essa ferramenta seria ideal para prototipagem rápida de grandes sistemas distribuídos em uma máquina de desenvolvimento local.

Foi útil?

Solução

Rhino Filas de Ayende é exatamente o que você está procurando, este é o post de introduzi-lo:

http://ayende.com/Blog/archive/ 2008/08/01 / Rhino-Queues.aspx

Eu acho que todas as limitações mencionadas neste post foram corrigidos desde então.

A partir do post, o rinoceronte filas é:

  • XCopyable, Administração Zero, incorporado, serviço de enfileiramento Async
  • robusto em face da rede
  • interrupções System.Transactions apoio
  • rápido
  • Obras sobre HTTP

Outras dicas

Em uma veia similar à sugestão de ShuggyCoUk, você poderia sonda até uma fila (ou filas) usando o Windows built-in banco de dados ESENT (já vem instalado com o Windows). Há uma biblioteca de acesso de código gerenciado (open source): http://www.codeplex.com/ManagedEsent . Se você ficar com escrita / leitura CLOBs ou BLOBs, deve funcionar muito bem. Se você quer ser realmente inteligente, você pode usar NServiceBus e write (contribuir?) De armazenamento de assinatura com sabor de ESENT e transportes . Há algumas incursões usando ESENT em de Ayende blogue bem (você vai ter que picar em torno de seu repositório SVN para o pedaços suculentos).

Se você está feliz por estar:

  1. Windows específica
  2. Limited para o domínio local
  3. seriamente limitado no tamanho da mensagem suportado
  4. Enrole as subjacentes chamadas Win32 P / Invoke
  5. Lidar com o polling-se
  6. lidar com os hacks necessários para permitir a volta e comunicação por diante
  7. Lidar com a configuração compartilhada necessária para manter os nomes em sincronia

Em seguida, um invólucro rápida em torno das janelas MAILSLOT API pode ser suficiente.

Este exemplo simples é uma base razoável para iniciar.

Este artigo tem algumas informações, mas assume o caso de uso é via um controle (em vez de um componente como deveria ser), bem como alguns fraca integração WinForms por isso deve ser considerado para a leitura incidental, em vez de uma base para qualquer biblioteca.

Este artigo é C ++, mas é de um padrão mais elevado (e um comentarista ampliou-o para apoiar o tratamento por lotes de mensagens maiores em vários outros menores).

Você recebe 424 bytes (assim com .Net 212 caracteres) que você pode querer cair para ASCII para duplicar o seu comprimento de mensagem útil se você estiver falando de texto.

Note que, apesar de sua simplicidade, limitações e falta de recursos que prevê a entrega multicast, algo muitas vezes complexa para a camada em um protocolo ponto a ponto si mesmo.

Este a'vron pós fornece e comparação interessante de três ônibus de serviço. Usamos NServiceBus e pensar se não está claro que Udi Dahan iria responder a como você se conecte fila não-dependente.

Trabalhamos usando MSMQ feliz, mas existem outras opções e, em teoria, deve ser aberto a praticamente qualquer coisa, uma vez que você pode perder alguns confiabilidade e durabilidade dependendo da sua escolha.

Por que não simples serviço de mensagens da Amazon Queue Service?

Nós nos mudamos nossos projetos de MSMQ para ActiveMQ . a sua realmente melhor :)
ActiveMQ é open source fila, com base em servidor web Apache.
Nós usou na produção de alta frequência do fluxo de trabalho de dados, onde msmq tem um monte de problema (nós trabalhamos com msmq um ano)
A implementação csharp é nms

Atualmente estou trabalhando em um barramento de serviço com base WCF open source. Você pode encontrá-lo aqui: http://rockbus.codeplex.com/ . Ele suporta dinâmico (@ run-time) assinaturas, repositório subcription (banco de dados), transportes conectáveis, XPath Based Routing, entrega transacional através de protocolos WCF, entrega roundrobin, avaliação subscrição pluggable, e muito mais com base em conteúdo. Tenha um olhar!

Você já pensou em usar um serviço como IronMQ por http://Iron.io ?

Você não tem nenhuma dependência, poderia rapidamente protótipos de aplicativos sem a criação de qualquer infra-estrutura de fila, e é altamente disponível e rápido.

Não há atualmente uma versão localmente instalável mas é baseado no próximo protocolo OpenStack assim não haverá.

Btw eu trabalho para Ferro.

Tente https://github.com/mcintyre321/PieQ - esta é a minha tentativa de escrever um threadsafe, persistente, de zero-config, incorporado fila de trabalho. Ele provavelmente precisa de um pouco de amor, mas eu acho que pode ser o tipo de ferramenta que você está procurando.

Eu desenvolvi uma biblioteca InMemory JMS, que pode ser usado para em testar aplicativos JMS sem realmente conectar a JMS fornecedores / servidor (Pense hsqldb). Você não tem que lidar com conexão ou protocolo ou qualquer coisa, tudo o que você precisa fazer é enviar e receber mensagens.

https://github.com/Dhana-Krishnasamy/InMemoryJMS

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