Pregunta

¿Existe algún producto (idealmente de código abierto, pero no necesario) que permita una implementación de dependencia cero?Cada bus de servicio o biblioteca de colas que he podido encontrar depende de una de las aplicaciones de cola (como msmq) o de una base de datos.Me gustaría una solución muy liviana en la que pueda simplemente agregar una referencia a mi aplicación, compilarla e implementarla con la menor configuración posible.

En un mundo ideal, el bus de cola/servicio se ejecutaría en IIS y permitiría que los clientes web y enriquecidos se comunicaran con él.

Una herramienta de este tipo sería ideal para la creación rápida de prototipos de grandes sistemas distribuidos en una máquina de desarrollo local.

¿Fue útil?

Solución

Rhino colas de Ayende es exactamente lo que está buscando, este es el blog de introducirlo:

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

Creo que todas las limitaciones mencionadas en este artículo se han corregido desde entonces.

A partir de la entrada del blog, lo que las colas de Rhino es:

  • XCopyable, administración cero, Embedded, servicio de gestión de colas asíncrono
  • robusta frente a la creación de redes
  • cortes de System.Transactions apoyo
  • rápido
  • funciona a través de HTTP

Otros consejos

En una línea similar a la sugerencia de ShuggyCoUk, podría armar una cola (o colas) utilizando las ventanas de base de datos integrada ESENT (ya viene instalado con Windows). Hay una biblioteca administrada código de acceso (open source): http://www.codeplex.com/ManagedEsent . Si usted se pega con / CLOB o BLOB de lectura escritura, que debería funcionar bien. Si quieres ser realmente inteligente, puede utilizar NServiceBus y escritura (aportar?) ESENT con sabor a almacenamiento y transporte de suscripción . Hay algunas incursiones en el uso de ESENT en el blog de Ayende así (que tendrá que hurgar en su repositorio SVN para el bits de jugosas).

Si estás feliz de ser:

  1. Específico de Windows
  2. Limitado al dominio local
  3. Seriamente limitado en el tamaño de mensaje admitido.
  4. Envuelva las llamadas win32 subyacentes en P/Invoke
  5. Encárgate de las encuestas tú mismo
  6. Lidiar con los trucos necesarios para permitir la comunicación de ida y vuelta
  7. Ocuparse de la configuración compartida necesaria para mantener los nombres sincronizados

Luego un rápido envoltorio alrededor de las ventanas. API de ranura de correo podría ser suficiente.

Este ejemplo sencillo es una base razonable para empezar.

Este artículo tiene más información, pero asume que el caso de uso se realiza a través de un control (en lugar de un componente como debería ser), así como una integración deficiente de WinForms, por lo que debe considerarse para lectura incidental en lugar de una base para cualquier biblioteca.

Este artículo es C++ pero tiene un estándar más alto (y un comentarista lo ha ampliado para admitir el agrupamiento de mensajes más grandes en varios más pequeños).

Obtiene 424 bytes (por lo que con .Net 212 caracteres) es posible que desee pasar a ASCII para duplicar la longitud útil del mensaje si está hablando de texto.

Tenga en cuenta que a pesar de su simplicidad, limitaciones y falta de funciones, proporciona entrega de multidifusión, algo a menudo complejo de superponer en un protocolo punto a punto.

Este a'vron posterior ofrece e interesante comparación de tres buses de servicio. Utilizamos NServiceBus y que si no está claro que Udi Dahan respondería a como se enchufa en la cola no dependiente.

trabajo utilizando MSMQ felizmente, pero hay otras opciones y, en teoría, debería estar abierto a prácticamente cualquier cosa, teniendo en cuenta que es posible que pierda algo de fiabilidad y durabilidad dependiendo de su elección.

¿Por qué no servicio de mensajes de Amazon simple cola de servicio?

Nos cambiamos nuestros proyectos de MSMQ ActiveMQ . es realmente mejor :)
ActiveMQ es código abierto cola, basado en servidor web Apache.
Utilizamos él en la producción de alta frecuencia de flujo de trabajo de datos, donde msmq tienen un montón de problemas (trabajamos con msmq un año)
La aplicación CSharp es NMS

Actualmente estoy trabajando en un bus de servicio basado en WCF de código abierto. Lo puedes encontrar aquí: http://rockbus.codeplex.com/ . Es compatible dinámico (@ en tiempo de ejecución) suscripciones, repositorio de Suscripción de (base de datos), transporta enchufables, XPath de enrutamiento basado en el contenido basado, entrega transaccional a través de protocolos de WCF, roundrobin entrega, evaluación suscripción enchufable, y más. Echar un vistazo!

¿Ha pensado en utilizar un servicio como IronMQ por http://Iron.io ?

Usted no tiene ninguna dependencia, podrían aplicaciones rápidamente sin necesidad de crear prototipos de cualquier infraestructura de colas, y es altamente disponible y rápido.

No existe actualmente una versión instalable localmente pero se basa en el protocolo de OpenStack próxima por lo que habrá.

Por cierto trabajo para Hierro.

Trate https://github.com/mcintyre321/PieQ - este es mi intento de escribir una multi-hilo, persistente, cero-config, cola de trabajo integrado. Es probable que necesite un poco de amor, pero creo que podría ser el tipo de herramienta que está buscando.

He creado una biblioteca InMemory JMS que se puede utilizar en aplicaciones JMS de prueba sin realmente la conexión a los proveedores JMS / servidor (Piense en hsqldb). Usted no tiene que lidiar con o protocolo de conexión ni nada, todo lo que necesita hacer es enviar y recibir mensajes.

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top