¿Qué tecnología se debe utilizar para implementar un suscriptor duradero accesible desde .NET?

StackOverflow https://stackoverflow.com/questions/721954

Pregunta

Si se asume un proyecto de campo verde, lo que la elección de tecnologías, bibliotecas, middleware, etc. haría más fácil de implementar publicación-suscripción de mensajería con suscripciones duraderas en Windows y .NET? He encontrado WCF Canal punto utilizando Google, que parece hacer más de lo que necesito, pero no creo que garantiza ordenación de mensajes, ni qué persiste mensajes en el disco para la fiabilidad. Microsoft dice que estas capacidades se pueden superponer en la parte superior, pero yo estaba buscando algo que ya las tiene.

Listas de Distribución de MSMQ están cerca de lo que yo quiero, sino que preferirían algo donde la capa de mensajería no tenía que saber acerca de todos los clientes en la delantera.

El número de suscriptores no es grande, probablemente menos de 20.

Tanto los editores y suscriptores se implementan en C # /. NET y se ejecuta en Windows.

EDIT: Estoy buscando en las sugerencias de bus middleware y servicios orientados a mensajes. Estoy familiarizado con los productos de la empresa-y en este espacio - estoy realmente buscando algo sencillo y ligero. Se toma un tiempo para mirar a cada producto, pero voy a tratar de resumir mis conclusiones.

¿Fue útil?

Solución

He hecho esto exactamente lo mismo (editores y consumidores en C # en .NET), con un gran número de suscripciones duraderas, y de hecho he usado para este SonicMQ. Mientras que está catalogado como un proveedor de JMS, que tiene bibliotecas de cliente .NET puros que son bastante similares a las API de JMS que funcionan excepcionalmente bien.

Estoy muy familiarizado con RabbitMQ, y actualmente no admite suscripciones duraderas si se encuentran fuera del espacio de memoria del agente (por lo que en realidad no puede fluir en el disco). Es una excelente solución para un caso en el que el flujo de mensajes (productores y consumidores) todos caben en la memoria, pero no cuando se necesita un sistema de suscripción duradera persistente.

Como parte de ese proyecto evalué ActiveMQ, Tibco EMS, y FioranoMQ y SonicMQ era de lejos la mejor solución, especialmente con C # clientes. Es caro, pero vale la pena mirar.

Otros consejos

¿Has mirado en RabbitMQ ? No se puede decir que he tenido la experiencia de que a mí mismo, pero cuando los chicos conejo dio una charla técnica en el trabajo que parecía saber lo que estaban hablando:)

¿Qué hay de mirar a un tipo de bus de mensajes de la arquitectura. Hay varias implementaciones de bus de código abierto que se sientan en la parte superior de MSMQ que hay.

El uso de una de estas bibliotecas que su servicio podría publicar los "eventos" (mensajes) siempre que sea necesario. Al encenderse, el servidor no necesita ninguna configuración diciéndole acerca de los clientes antes de tiempo. Cuando se inician los clientes, que se suscriban a un extremo de servidor conocido y desde allí el servidor publica a ellos cada vez que se plantea un mensaje.

Apache ActiveMQ también es compatible con .NET (y muchos otros idiomas). Open Source, y también está disponible con soporte comercial.

http://activemq.apache.org

Fácil de instalar y configurar. Creación automática de destinos de mensajes. Es compatible con peer-to-peer y publicación / suscripción modelos de comunicación.

Hemos escrito un bus de mensajes peer-to-peer, cebúes, basado en ZeroMq (transporte), Cassandra (el descubrimiento de homólogos y persistencia) y Protobuf (serialización).

Es de código abierto y la producción probado https://github.com/Abc-Arbitrage/Zebus

cebúes se está desarrollando activamente y se encuentra en uso intensivo de producción propia.

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