Saltar al contenido

NServiceBus frente a MassTransit

Te doy la bienvenida a proyecto online, ahora encontrarás la respuesta de lo que estabas buscando.

Solución:

Si tuviera que resumir, esto es lo que diría:

Si necesita soporte comercial, elija NServiceBus. Si se siente cómodo con el uso de foros como medio de apoyo, MassTransit es una excelente opción. Los desarrolladores han respondido muy bien a nuestros problemas hasta ahora. Si elige MassTransit, ahora elegirá entre MSMQ y RabbitMQ. Si necesita DTC, vaya con MSMQ. Si desea más funciones y una mejor administración, elija RabbitMQ.

En nuestro proyecto, cambiamos de NServiceBus a MassTransit por dos razones:

  1. MassTransit es gratis
  2. Nos encanta RabbitMQ

He usado ambos marcos. He usado MassTransit por más tiempo que NServiceBus. Aquí están los aspectos más destacados como yo los veo.

Costo:

  • MassTransit tiene licencia de Apache 2.0 y es gratuito para uso de producción comercial, mientras que NServiceBus no lo tiene.

Apoyo:

  • Como mencionó Udi, hay una opción para el soporte comercial de NServiceBus, no he visto eso para MassTransit.

Transporte:

  • MassTransit es compatible con MSMQ y RabbitMQ
  • NServiceBus solo admite MSMQ RabbitMQ es compatible con NServiceBus 4+

RabbitMQ frente a MSMQ:

  • MSMQ admite DTC (coordinador de transacciones distribuidas) para transacciones que involucran múltiples procesos en potencialmente múltiples máquinas (por ejemplo, servidor SQL, servicio de Windows)
  • RabbitMQ tiene una excelente interfaz de administración
  • MSMQ ha existido por más tiempo y es un producto de Microsoft.
  • RabbitMQ es más nuevo, de código abierto, gratuito y patrocinado por VMWare
  • MSMQ está instalado en la mayoría de las máquinas con Windows de forma predeterminada

Udi Dahan y los chicos de MassTransit (Chris Patterson, Dru Sellers y Travis Smith) son personas brillantes.

Como autor original de NServiceBus, probablemente estoy un poco predispuesto hacia mi propia tecnología, pero intentaré mantener esto lo más equilibrado posible.

Soporte de transporte

Tanto NServiceBus como MassTransit son compatibles con RabbitMQ y Azure Service Bus, pero NServiceBus también admite:

  • Amazon SQS
  • Colas de almacenamiento de Azure
  • SQL Server (usando tablas simples)
  • MSMQ

Sobre el tema de RabbitMQ

Se podría argumentar que NServiceBus tiene un mayor soporte para RabbitMQ, por ejemplo, en su funcionalidad de entrega retrasada, mientras que Mass Transit afirma que su “complemento todavía se considera experimental. Es compatible con MassTransit, pero no podemos garantizar nada más que el complemento se garantiza a sí mismo “.

También trabajamos muy de cerca con el equipo de RabbitMQ, contribuyendo al .net SDK en beneficio de todo el ecosistema.

Cuando se trata de Azure Service Bus

El nivel de colaboración que tenemos con el equipo de Azure Service Bus es aún mayor, con más de 70 RP en su SDK principal de .net.

Cuando utiliza NServiceBus, se beneficia de la profundidad total de ese conocimiento.

Estampación

Ésta es la mayor diferencia.

Una vez que haya construido un sistema sustancial, tener visibilidad de cómo todas las diferentes partes móviles se comunican entre sí se vuelve realmente importante. MassTransit no tiene mucho en esta área más allá de una pequeña integración a través de una fuente de diagnóstico con herramientas de terceros como Application Insights o Open Trace.

La plataforma de servicio en torno a NServiceBus va un poco más allá, brindándole la capacidad de ver diagramas de secuencia en todos los puntos finales con ServiceInsight:

Diagramas de secuencia con ServiceInsight

También puede obtener la vista lógica de todos sus puntos finales y mensajes:

La vista lógica de un sistema NServiceBus

En esencia, obtiene documentación viva de la arquitectura de su sistema.

Gestión y seguimiento

Esta es otra área en la que MassTransit no tiene mucho. Cuando un sistema de terceros con el que se está integrando deja de estar disponible y un montón de mensajes en su sistema terminan en la cola de errores, la única solución que MassTransit tiene para que usted mueva manualmente esos mensajes más tarde usando el complemento RabbitMQ Shovel.

La plataforma de servicio alrededor de NServiceBus incluye el monitoreo de esa cola de errores, herramientas gráficas para ver cuáles fueron las causas de esos errores, así como la capacidad de reproducir grupos de esos mensajes fallidos y ver que en realidad se procesaron con éxito todo en una aplicación web simple llamada ServicePulse.

Agrupación de mensajes fallidos con ServicePulse

También hay una visualización de comprobaciones de estado que se ejecutan periódicamente y que pueden proporcionar advertencias tempranas de problemas antes de que los mensajes comiencen a fallar.

Y finalmente, está el monitoreo de rendimiento disponible en la plataforma:

Supervisión del rendimiento de NServiceBus

Realmente obtiene el paquete completo cuando se trata de soporte de producción.

Soporte a largo plazo y compatibilidad con versiones anteriores

Si bien la gente de Mass Transit siempre ha sido extremadamente buena para ayudar a cualquiera que tenga preguntas al respecto en Gitter o su Grupo de Google, no creo que proporcionen correcciones de errores en versiones anteriores. Cuando sus sistemas de producción han existido durante un par de años, y no puede simplemente actualizar todo todo el tiempo, eso comienza a ser importante.

Con NServiceBus, el soporte incluye:

  • Más de 2 años para cada versión principal
  • 2 años adicionales de soporte extendido
  • Tiempos de respuesta garantizados en problemas críticos
  • Disponibilidad 24×7

Consultoría y formación

Desde una perspectiva fuera de línea, hay cursos públicos disponibles en todo el mundo en NServiceBus, así como muchos consultores que se pueden traer al sitio para iniciar un proyecto o ayudar en caso de problemas. Escuché de varias empresas que decidieron cambiar de MassTransit a NServiceBus porque no podían conseguir a alguien en el sitio cuando lo necesitaban.

Licencia

Lo que algunas personas aún no saben sobre NServiceBus es que es GRATIS para uso personal y para empresas emergentes.

GRATIS para uso personal y startups

Cuando se trata de uso comercial, los modelos de licencia en torno a NServiceBus son muy flexibles, como indica el amplio espectro de clientes, y pueden estar bien justificados para la gerencia. Por supuesto, con MassTransit, la licencia es gratuita.

Espero que eso ayude de algún modo.

Sé que es tarde para intervenir en esta pregunta, pero por el bien de Bingleability, tengo que mencionar a Rebus (del que resulta que soy el autor principal).

Rebus tiene ahora unos 8 años y se ha utilizado para mover dinero y controlar plantas de energía desde el principio.

Es compatible con la mayoría de los sistemas de cola básicos, como MSMQ, RabbitMQ, Azure Service Bus, Azure Storage Queues, Amazon SQS, etc., pero también admite cosas más divertidas como el uso de MSSQL, PostgreSQL y Oracle como transportes.

La wiki de documentación es bastante completa, aunque muchas personas parecen arreglárselas, porque las API de Rebus son fácilmente detectables.

Rebus siempre ha sido (y siempre será) completamente gratuito. Tiene licencia del MIT, por lo que básicamente puedes hacer con él lo que te apetezca.

Si termina siendo un usuario serio de Rebus y necesita un acuerdo de soporte formal y herramientas adicionales, puede suscribirse a Rebus Pro, que ofrece Rebus FM (la empresa detrás de Rebus).

Las “herramientas adicionales” mencionadas anteriormente vienen actualmente en forma de Fleet Manager, que puede ayudar con las cosas. Por ejemplo, Fleet Manager reemplaza completamente las colas de error, por lo que los mensajes fallidos se almacenan allí. Esto significa que los mensajes fallidos se pueden ver, administrar y reintentar en cualquier momento con unos pocos clics en Fleet Manager.

Reseñas y puntuaciones

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *