RabbitMQ vs Kafka - ¿Cuál escoger?

แชร์
ฝัง
  • เผยแพร่เมื่อ 5 ก.ย. 2024
  • RabbitMQ y Kafka son dos de los sistemas de mensajería más famosos que existen. En este vídeo los comparamos como message brokers, vemos todo su potencia y, sobretodo, veremos cuál escoger para una arquitectura basada en eventos.
    → Curso RabbitMQ: bit.ly/curso-r...
    ﹤🍍﹥ Codely
    ├ 🎥 Suscríbete: th-cam.com/users/c...
    ├ 🔖 Cursos: bit.ly/cursos-...
    └ 👋 Redes sociales:
    ├ / codelytv
    ├ / javiercane
    ├ / rafaoe
    ├ / codelytv
    └ / codelytv

ความคิดเห็น • 82

  • @MariaMartinez-xy8zd
    @MariaMartinez-xy8zd 10 วันที่ผ่านมา +2

    Quiero llorar, un vídeo en CASTELLANO suuper bién explicado, dinámico y entretenido donde lo entiendes TODO. GRACIASSS

    • @CodelyTV
      @CodelyTV  9 วันที่ผ่านมา

      Gracias por el comentario 😊😊😊

  • @jesusmartinezmendez680
    @jesusmartinezmendez680 7 หลายเดือนก่อน +12

    Buen vídeo
    Aclarar que RabbitMQ también tiene la opción de persistir los mensajes en disco, se especifica con una propiedad (Delivery mode) cuando se va a publicar el mensaje en la cola.

    • @pubdigitalix
      @pubdigitalix 6 หลายเดือนก่อน +1

      Muy buena aclaración. Además el concepto topic tambien existe en RabbitMQ y es distino a del exchange tradicional. Aquí se ve la clásica configuración con AQMP pero ahora que RabbitMQ se utiliza mucho para IoT con MQTT el uso de topics es muy importante.

    • @miguelpayran9509
      @miguelpayran9509 หลายเดือนก่อน +1

      Tengo algo parecido, tengo deployado Rabbit en kubernetes usando un PVC y si se llega. a morir el rabbit, puedo usar los datos en disco, asi no pierdo información.

    • @JhonasVe
      @JhonasVe 19 วันที่ผ่านมา

      @@pubdigitalix En el minuto 25 lo comentan

  • @miguelangelrodriguezgomez2138
    @miguelangelrodriguezgomez2138 7 หลายเดือนก่อน +4

    No me he enterado de nada pero os felicito por el video. Por cierto, vaya pelazo que se ha dejado Rafita, está en su prime.

  • @mullinslol
    @mullinslol 6 หลายเดือนก่อน +2

    Brutal la explicación, la parte de Kafka y los consumer groups tiene su miga

  • @__renesan
    @__renesan 7 หลายเดือนก่อน +7

    Ayudaría mucho renovar el curso de Event Sourcing, estária de lujo con Typescript, PHP o Java, el actual no es muy claro :/

  • @roboto0101
    @roboto0101 4 หลายเดือนก่อน

    Gracias por el vídeo.
    La explicación ha sido increíble.
    4:33 - Procesamiento con RabbitMQ

  • @IVANLUISLG
    @IVANLUISLG 6 หลายเดือนก่อน +1

    muy buena explicacion, yo uso azure service bus y algunas cosas que han mencionado existen en ese servicio

  • @alonsoruiz6315
    @alonsoruiz6315 3 หลายเดือนก่อน

    Kafka está a otro nivel. Una maravilla usarlo. Súper tuneable y alto rendimiento.
    Trabajaba en un lado donde era el backbone de toda la plataforma (un SaaS XDR CyberSec). Todo se hacia dentro de un pipeline gigante (manejado por eventos). En cuanto carga, la plataforma tiene operaciones en todo el mundo (LATAM, APAC, EU, NA) y Los servicios eran casi todos Go.

  • @carmelocotonable
    @carmelocotonable 7 หลายเดือนก่อน +1

    Buena comparativa, felicidades y gran trabajo. La magia en Kafka no solo está en los consumidores y la persistencia. Añadiría y/o revisaría los productores, los distintos sistemas de ingesta, serialización (Avro, Protobuff, etc), compresión y componentes como el schema registry, creo que serían interesantes que se comentasen. Mis dos centimos y felicidades de nuevo.
    Por otra parte... usar topics como sistemas de persistencia, lo hacen muy atractivo y su replicación es bastante sencillo. Creo que el New York Times, tiene un histórico de artículos guardados en topics de kafka.

    • @CodelyTV
      @CodelyTV  7 หลายเดือนก่อน +1

      Avro + Schema registry = ❤️

  • @gustavoangelsanchez5170
    @gustavoangelsanchez5170 7 หลายเดือนก่อน +1

    excelente video, si bien no estoy trabajando en la rama informática todavía, cada vez que veo sus videos me dan mas ganas de aprender en sus cursos.
    Realmente cada cosa que hacen se ve muy didáctico, profesional y estéticamente perfecto, saludos desde Argentina.

  • @BackDoorMann
    @BackDoorMann หลายเดือนก่อน

    Un vídeo muy bueno y bastante ameno de ver.
    A el muchacho Jack&Jones no se le entiende mucho. Parece que se come algunas sílabas cuando habla? O el vídeo tiene errores de edición.
    Buen trabajo.

  • @jesusarmandomaciasbenitez1517
    @jesusarmandomaciasbenitez1517 7 หลายเดือนก่อน

    muchas gracias compas , me ayudo mucho , he manejado rabbit pero kafka no , la verdad muy way como dicen ustedes , la verdad estaria bueno un curso de kafka como el que tienen de rabbit

  • @RamiroAsincrono
    @RamiroAsincrono 6 หลายเดือนก่อน +3

    Gracias por estos vídeos!

  • @joaquindiez
    @joaquindiez 7 หลายเดือนก่อน

    deberiais considerar Pulsar, que cojio lo mejor de ambos mundos. y esta muy bien diseñada para sistemas mutltidominio.

  • @nixjavi7220
    @nixjavi7220 7 หลายเดือนก่อน +4

    Magnifica explication !

    • @CodelyTV
      @CodelyTV  7 หลายเดือนก่อน +1

      ¡Gracias! Es un vídeo al que le hemos dedicado bastante cariño :)

  • @andresgiraldop.6825
    @andresgiraldop.6825 7 หลายเดือนก่อน +2

    No entendí un carajo...pero muy interesante

  • @Darknessrd666
    @Darknessrd666 หลายเดือนก่อน

    kafka hibino sin duda

  • @appsky7982
    @appsky7982 7 หลายเดือนก่อน

    Sería bueno que RabbitMQ soporte transacciones XA y manejo de estados

  • @tbl6625
    @tbl6625 7 หลายเดือนก่อน +1

    perdonad, el ack en kafka si existe pero se sitúa en el productor:
    - acks=0 (sin acknowledgment): El productor no espera ninguna confirmación después de enviar el mensaje. Esto implica un menor nivel de garantía y puede resultar en la pérdida de mensajes en caso de que el líder (leader) del tema no haya confirmado la recepción del mensaje antes de que ocurra un fallo.
    - acks=1 (acknowledgment del líder): El productor recibe una confirmación después de que el líder del tema ha recibido el mensaje. Esto proporciona un nivel medio de garantía, ya que el líder debería haber replicado el mensaje antes de confirmar su recepción.
    - acks=all (acknowledgment de todos los replicas): El productor recibe una confirmación después de que todos los replicas en el conjunto de inscritos hayan recibido el mensaje. Este nivel de garantía es el más alto pero también puede tener un impacto en la latencia debido a la espera de la sincronización entre replicas.

    • @CodelyTV
      @CodelyTV  7 หลายเดือนก่อน

      Totalmente, gracias por la aclaración y el aporte!
      En el vídeo nos referimos a que no existe del mismo modo que RabbitMQ, que un ack hace que se borre el mensaje ya procesado. 🙌

    • @oscarjoseantoniopintosalaz6600
      @oscarjoseantoniopintosalaz6600 7 หลายเดือนก่อน

      Excelente, a mi tambien me llamo la atencion al momento de aseverar que no existe el ack en kafka, en conclusion, se debe escuchar pero no se debe dar por cierto todo lo que diga

  • @Alberto_APC91
    @Alberto_APC91 7 หลายเดือนก่อน +1

    Me ocurrio con Nestjs y Kafka que tenia 2 consumer tratando de optener un mismo topic, y uno de ellos no recibia nada... Aun Estoy tratando de aprender un poco más del tema para tener mas particiones. Excelente video.

    • @puduwatom
      @puduwatom 7 หลายเดือนก่อน +2

      Si son del mismo grupo, se "pelearán" por obtener primero el mensaje, tienen que pertenecer a un distinto group_id para que no ocurra este tipo de "race condition"

    • @JorgeDev92
      @JorgeDev92 7 หลายเดือนก่อน

      @@puduwatom Nadie se pelea por obtener primero ningun mensaje, hay un arbitro en el lado del cluster de Kafka y ese arbitro decide quien va a ser uno de los consumidores que puede asignar (determinado por el numero de particiones), en el momento en el que es asignado ya lo será hasta que pase algo que fuerce la reeleccion, como que se caiga el consumidor, si levantas 5 consumidores y hay 1 partición, no es que vayan a estar peleandose siempre por leer el siguiente mensaje, habra 1 que los recibirá siempre y los otros 4 estarán mirando la pared hasta que el primer consumidor no pueda continuar y toque la reelección. También puede pasar la reelección por algo que le ocurra al cluster de kafka, por ejemplo, cuando se actualiza el servidor, ocurre la reelección

    • @kmiiloberrio-dev
      @kmiiloberrio-dev 7 หลายเดือนก่อน

      @@puduwatomcasi que siempre toca cubrirse de la race condición, porque si tienes varias instancias quiere decir que tienes varios consumidores que apuntan a un mismo group. Toca meterle algún lock.

  • @DesingFxTube
    @DesingFxTube 7 หลายเดือนก่อน

    Deberían hablar de NATS Jetstream en un momento, es bastante potente y simple...

  • @devjaime
    @devjaime 7 หลายเดือนก่อน

    En mi trabajo actual ocupamos pubsub de gcp es parecido a rabbitmq

  • @armandojorgelopezespinoza476
    @armandojorgelopezespinoza476 2 หลายเดือนก่อน

    Y la programación y demo?

  • @Clovhis
    @Clovhis 3 หลายเดือนก่อน

    Consulta, si quiero instalar Kafka o RabbitMQ en un AKS Cluster (Kubernetes) existe algún tipo de UI para ellos?

  • @JoseRolandoVillegasMendizabal
    @JoseRolandoVillegasMendizabal 7 หลายเดือนก่อน

    Gracias por la información, muy buena y didactica.

    • @CodelyTV
      @CodelyTV  7 หลายเดือนก่อน

      Gracias por el comentario!!

  • @VRedondoQ
    @VRedondoQ 6 หลายเดือนก่อน

    Recomiendo investigar de NATs, super mas potente y eficiente que kafka

  • @JorgeZapata8
    @JorgeZapata8 7 หลายเดือนก่อน

    Excele,te explicacion, nuchas gracias!

  • @padaone777
    @padaone777 7 หลายเดือนก่อน +3

    Hola, esto es backend? Gracias

    • @yo-meeguen5822
      @yo-meeguen5822 7 หลายเดือนก่อน +1

      Si, en cierta manera ... son herramientas a parte, pero orientadas a gestión de procesos de backend. Seria mas de arquitectura de software ...

  • @imarsuarez913
    @imarsuarez913 5 หลายเดือนก่อน

    Para cuando un curso de kafka

  • @aleman7
    @aleman7 5 หลายเดือนก่อน +1

    hola, consulto lo siguiente. Si envio un mensaje que es atendido por 5 microservicios y 2 de ellos no pueden realizar la operación, ¿cómo y que se se informa al productor? , ¿existe alguna estrategia alternativa para controlar situacion?. gracias y saludos

    • @CodelyTV
      @CodelyTV  5 หลายเดือนก่อน +1

      Buenas!
      Aquí lo explicamos: Cómo gestionar Errores en un Sistema de Mensajería
      th-cam.com/video/GfQGgqeKgVQ/w-d-xo.html

    • @aleman7
      @aleman7 5 หลายเดือนก่อน +1

      muchas gracias, lo veo!

  • @djthdinsessions
    @djthdinsessions 7 หลายเดือนก่อน

    NATS tambien va bien segun para que

  • @lucasgorordo5111
    @lucasgorordo5111 3 หลายเดือนก่อน

    Muy bueno 👏👏

  • @lmarts
    @lmarts 7 หลายเดือนก่อน

    Tenemos pensado migrar nuestro viejo código legacy monolítico a algo con arquitectura hex y ddd, y cómo no, usar colas, pero teníamos en mente usar SQS, aprovechando que toda nuestra infraestructura está en AWS. ¿Desaconsejais SQS en favor de RabbitMQ? Saludos y gracias por estos vídeos!

    • @CodelyTV
      @CodelyTV  7 หลายเดือนก่อน +1

      SNS + SQS es muy top también! Y desde el punto de vista de mantener el servicio es más sencillo. Seguramente dentro de unos meses hagamos contenido de ello 🙌

    • @barrenaedu
      @barrenaedu 7 หลายเดือนก่อน

      Desde el punto de vista de la availability y scalability siempre que puedan les va a convenir usar SNS y SQS, a Amazon MQ (sea rabbit o activemq) porque en el segundo caso van a tener que crear los servidores uds así como el tipo de maquina de cu, crear cluster si es mas de uno, etc.. y siempre alguien puede borrar sin querer un server o apagarlo por error. En cambio usando sns y sqs eso no pasa, aws se encarga de todo. Pero amazon mq se comporta diferente a sns y sqs, y sns y sqs tiene tambien sus tipos de colas y cu con sus limites (fifo y no fifo), asi que mi recomendacion seria leer bien todo directo de la documentacion de AWS que es el mejor lugar para aprender, evaluen costos, etc..

    • @barrenaedu
      @barrenaedu 7 หลายเดือนก่อน

      SNS = Publisher subscriber model, 0 subscribers, los mensajes se pierden. PUSH
      SQS = Publisher consumers model, 0 consumers, los mensajes NO se pierden. PULL

  • @crayder03
    @crayder03 7 หลายเดือนก่อน

    ¿Algún videito para escalar horizontalmente Rabbit?

  • @joffreveloz2410
    @joffreveloz2410 7 หลายเดือนก่อน

    Exelente video

  • @cherrejim
    @cherrejim 7 หลายเดือนก่อน +1

    Grandes!

  • @user-tz6nn8iw9m
    @user-tz6nn8iw9m 7 หลายเดือนก่อน +2

    jetstream o apache pulsar

    • @CodelyTV
      @CodelyTV  7 หลายเดือนก่อน +1

      Pulsar es maravilla también! 👌

  • @carloss3028
    @carloss3028 7 หลายเดือนก่อน +2

    Normalmente veo más puestos de trabajo para RabbitMQ

    • @kzelmer
      @kzelmer 7 หลายเดือนก่อน +4

      Donde? Cualquier gran empresa elige Kafka por escalado

    • @CarlosReyesVDev
      @CarlosReyesVDev 7 หลายเดือนก่อน

      @@kzelmer Exacto . en Linkedin la mayoria de ofertas que he visto son de Kafka

  • @0nesX0
    @0nesX0 3 หลายเดือนก่อน

    Que es chicha ??

    • @CodelyTV
      @CodelyTV  3 หลายเดือนก่อน

      Chicha se suele usar en España para referirse a “carne”. Usado por ejemplo como “vamos a ver dónde está la chicha del ejemplo” querría decir algo como “vamos a ver dónde está lo interesante/complejo/jugoso del ejemplo”

    • @BrunoVillasanti
      @BrunoVillasanti 2 หลายเดือนก่อน

      😂

  • @crisegam6285
    @crisegam6285 7 หลายเดือนก่อน

    Al fin se puso serio el canal y se dejó de hablar de esa porqueria de PHP ... muy bien !!!

    • @CodelyTV
      @CodelyTV  7 หลายเดือนก่อน

      Sentimos decepcionarte, pero seguiremos hablando de PHP. Y de Java, de TypeScript, y en resumen de todo donde apliquen buenas prácticas y arquitectura de software. En la variedad está la gracia. Así te puedes quedar con lo bueno de cada mundo y valorar con mayor criterio 😊

    • @nelsonscript
      @nelsonscript 7 หลายเดือนก่อน

      Si es cierto lo importante es las buenas prácticas y la arquitectura de software por encima del código, plataforma etc... Pero también de alguna manera estoy de acuerdo que PHP tiene un tufillo de caducado. Sería interesante ya que hablan de diversidad entonces muestren o comprueben estos principios y prácticas en Golang, Rust y Flutter con Dart. Son desafios interesantes, por demás igual agradecer por el espacio y por compartir sus conocimientos.
      PD: Me gustaría que se hablara también de Cloud Pub/Sub de Google Cloud que también es un servicio de mensajeria!

    • @crisegam6285
      @crisegam6285 7 หลายเดือนก่อน

      @@CodelyTV Esta bien. Voy a estar atento a los temas serios y con proyeccion.

    • @ULISESGERMAN
      @ULISESGERMAN 6 หลายเดือนก่อน

      que usas como lenguaje para tu backend? por que tanto odio?

  • @nathanmartinez8843
    @nathanmartinez8843 7 หลายเดือนก่อน

    NATS

  • @alvaromarin144
    @alvaromarin144 2 หลายเดือนก่อน

    Esto no es del todo cierto. Con las colas de tipo stream en rabbitmq no se eliminan los eventos.

  • @TheCreativeHenry
    @TheCreativeHenry 7 หลายเดือนก่อน +4

    laravel tiene su propio sistema de colas, seria bueno que hablen que tan rentable es usar laravel queue?

    • @kuja69
      @kuja69 7 หลายเดือนก่อน +6

      Que tiene que ver Laravel Queue con esto? En el vídeo se habla de dos de los brokers de mensajes más famosos. Laravel Queue es una simple librería, para gestionar cosas en segundo plano y que además te permite trabajar con los brokers más comunes o.0

    • @Sapop3rro
      @Sapop3rro 6 หลายเดือนก่อน

      Laravel queue no tiene comparación porque es susceptible a fallos, si se cae la instancia se pierde la cola, no puede manejar un gran volumen de información, la gestión de colas que tiene es muy básica. En cambio Kafka y RabitMQ son los brokers que pueden manejarse como clusters para aumentar su alta disponibilidad y paralelismo. La diferencia es que en la utilidad estos sirven para publicar mensajes en series de tiempo como por ejemplo sincronizar el consumo eléctrico por hora de contadores de luz o eventos create, update y delete de una tabla. Cómo podrás ver estos casos son de volúmenes muy grande. Kafka es más usado para streaming, RabitMQ para flujos de trabajo pendientes y publicaciones de eventos o control de API ( una API que límite por ejemplo max 100 requests por min, entonces es mejor usar colas y eventos). También he visto que varios proveedores de servicios de software publican su RSS de cambios de schema a través de RabitMQ, es muy útil cuando se requiere replicar para evitar que un ETL falle. En fin, laravel queue para proyectos en dónde no estén relacionados con finanzas, ventas, salud o blockchain. Si el problema es pequeño y no requieres escalabilidad o confiabilidad puedes usar laravel queue sin problemas.

    • @__cpmarcelo
      @__cpmarcelo 2 หลายเดือนก่อน

      Mucho hate a Laravel jaja, solo es un comentario 😅...

  • @orioldelrio4789
    @orioldelrio4789 7 หลายเดือนก่อน

    Rrrrrredemption.

    • @CodelyTV
      @CodelyTV  7 หลายเดือนก่อน +1

      Ese deeelrriiooo queeee rrricoooooo

  • @ronindevninja
    @ronindevninja 2 หลายเดือนก่อน

    Elixir hace esto solo

    • @bueno_excelente
      @bueno_excelente 2 หลายเดือนก่อน

      Cerrar el 0rt0 con tus lenguajes para gente con autoestima que depende de cuántos lenguaje de programación sepas

  • @LuiTrO-
    @LuiTrO- 7 หลายเดือนก่อน +1

    Buenas, quien haya trabajado con colas mq y Kafka sabe perfectamente que las colas jms son una 💩. Kafka es mucho mejor.

    • @LuiTrO-
      @LuiTrO- 7 หลายเดือนก่อน

      Una cosa que decís mal es que Kafka no exactly_once y si la gente no sabe manejar Kafka no es problema Kafka. Kafka es exacly_once. Y las colas jms no lo son. Y os lo puedo explicar con miles de ejemplos. Llevo años trabajando con aplicaciones streaming

  • @eduardo574
    @eduardo574 7 หลายเดือนก่อน

    Dentro de aws estan sns y sqs que comparaciones se puede tener.

    • @barrenaedu
      @barrenaedu 7 หลายเดือนก่อน

      SNS = Publisher subscriber model, 0 subscribers, los mensajes se pierden. PUSH
      SQS = Publisher consumers model, 0 consumers, los mensajes NO se pierden. PULL