Excelente video, me ayudas mucho en mi formación. Me ayudarias con unas dudas acerca de su uso, comúnmente en la vida profesional como suele usarse se sustituye la comunicación Http entre servicios o el uso es para situaciones especificas ejemplo: refrescar configuraciones de un servidor de configuraciones centralizado, seguimiento de trazas por ejemplo con zipkin, o cuando un servicio debe estar atento a los cambios de otro
Excelente ejemplo, creo que si se usan los exchanges se le puede sacar mucho mas valor, ya que podremos enrutar mensajes medianamente los routingkey y los bindingkey. Espero poder ver una saga 😍
Excelente vídeo, gran ejemplo. Tengo una duda si tenemos un microservicio A (Productor) y un microservicio B (Consumidor) como el microservicio B le notifica al microservicio A que un registro fue procesado con éxito o si ocurre una excepción de base de datos como se responde.
Hola Nestor, en realidad si ocurre una excepción existe un mecanismo o forma de configuración de las colas en las cuales el consumidor debe dar un "ACK" al mensaje para que sea eliminado de la cola. Si ocurre un error a nivel de aplicación este mensaje no se elimina de la cola y se reintenta procesar por el consumidor al cabo de un tiempo nuevamente. Este proceso puede repetirse por un tiempo, si el error persiste y necesitas enterarte de que no se pudo procesar el evento lo mas recomendable es pushear a otra cola llamesmola de "eventos-perdidos" y que a quien le interese la lea y tome acción al respecto.
entendi todo , pero estoy confundido , cual seria la ventaja o la diferencia de utilizar RabbitMQ para recibir un mensaje u objeto de otro microservicio pudiendo ocupar Open Feing o restTemplate utilizando API rest ??? saludos exelente video
Hola Moisés , la principal ventaja es quitarte de arriba los problemas del patrón Request/Response y de la comunicación síncrona, logrando independencia, lo abordare en algún vídeo más adelante, saludos
Consulta, RabbitMQ se usa para todos los endpoints, osea cuando uso una peticion http puedo usar este tipo de comunicacion o solo es para enviar mensajes. Es preferible usar comunicacion Sincrona o Asincrona para todos los controllers de un micro?
Excelente vídeo como lo explicas, dime en este caso, yo tengo un app android que consumen un api rest de mi microservicio, disculpa mi ignorancia, pero android se puede poner el rabbit o tendría que crearme una carpeta "DUMMY" como tu la tienes y ahí manipular la información. Lo que sucede es que como tengo una app de pedidos y debido a la alta concurrencia necesito manejar el tema de stock de productos y pues me parecio que las colas como están basados en eventos sería buena idea. Yo tengo mi proyecto similar al tuyo todo en uno solo.
Que pasaria si el servidor fisico se apagase y el rabbit aun tiene muchos mensajes que procesar en la cola? Se perderian esos datos o queda guardado en algun lugar ?
queda en el broker en espera de consumidores. es una utilidad muy interesante pues se espera por la disponibilidad de las entidades. un ejemplo sería usarlo en una app que tenga mucha demanda, de manera que ante una gran cantidad de peticiones se puede prevenir que se caiga el servicio pues el broker es quien se encarga de gestionar y distribuir.
@@aleckvinent el broker es persistido en memoria o en algun sistema de ficheros? Porque si se guardara las colas en memoria en caso que el servidor falle esas colas se podrian perder
@@favioamarillamino4665 cuando se crea la cola puedes especificar la propiedad "durable = true" para que guarde los mensajes en disco, también puedes manejar la propiedad a nivel de mensajes
Excelente vídeo, ¿Hay alguna forma de que el consumidor le mande una notificación al productor de que todo ha salido bien? Por un ejemplo un servicio de auth, le mandas al consumidor las credenciales y este le responda si es un usuario valido, y ya el productor siga con algún proceso extra
Hola Neo, este tipo de comunicación sienta sus bases en el desacoplamiento, y en el productores y consumidores no se conocen, por lo que no esta pensada para ese escenario. Sin embargo existen los acuses de recibo (ACK), un mecanismo mediante el cual el mensaje no se elimina del bus mientras no sea consumido por el destinatario, el objetivo de alguna manera es poder lograr la garantía de entrega. Igual como WA puedes siempre crear una cola para notificar completitud en sentido inverso, cuando el consumidor termine publique un mensaje indicando que proceso correctamente el mensaje X que se había enviado. Eso te puede funcionar.
Mucha gracias! Muy util, ya que veo que lo piden mucho en las ofertas de trabajo
Muchísimas gracias por tu video, me has aclarado un montón de cosas
gracias! ahora me queda mas claro los conceptos y la forma de utilizar RabbitMQ :)
Excelente video, me ayudas mucho en mi formación. Me ayudarias con unas dudas acerca de su uso, comúnmente en la vida profesional como suele usarse se sustituye la comunicación Http entre servicios o el uso es para situaciones especificas ejemplo: refrescar configuraciones de un servidor de configuraciones centralizado, seguimiento de trazas por ejemplo con zipkin, o cuando un servicio debe estar atento a los cambios de otro
q crack pelado amigo!!! mejor explicado imposible jeje
Excelente ejemplo, creo que si se usan los exchanges se le puede sacar mucho mas valor, ya que podremos enrutar mensajes medianamente los routingkey y los bindingkey. Espero poder ver una saga 😍
Excelente explicación, muchas gracias por el aporte.
Buen video!, consulta puedo conectarme desde Azure a un Rabbit MQ que esta en AWS? Gracias
Hola si, claro depende de la config en aws, pero si es posible.
Excelente vídeo, gran ejemplo. Tengo una duda si tenemos un microservicio A (Productor) y un microservicio B (Consumidor) como el microservicio B le notifica al microservicio A que un registro fue procesado con éxito o si ocurre una excepción de base de datos como se responde.
Hola Nestor, en realidad si ocurre una excepción existe un mecanismo o forma de configuración de las colas en las cuales el consumidor debe dar un "ACK" al mensaje para que sea eliminado de la cola. Si ocurre un error a nivel de aplicación este mensaje no se elimina de la cola y se reintenta procesar por el consumidor al cabo de un tiempo nuevamente. Este proceso puede repetirse por un tiempo, si el error persiste y necesitas enterarte de que no se pudo procesar el evento lo mas recomendable es pushear a otra cola llamesmola de "eventos-perdidos" y que a quien le interese la lea y tome acción al respecto.
entendi todo , pero estoy confundido , cual seria la ventaja o la diferencia de utilizar RabbitMQ para recibir un mensaje u objeto de otro microservicio pudiendo ocupar Open Feing o restTemplate utilizando API rest ??? saludos exelente video
Hola Moisés , la principal ventaja es quitarte de arriba los problemas del patrón Request/Response y de la comunicación síncrona, logrando independencia, lo abordare en algún vídeo más adelante, saludos
@@SACAViXTech ok gracias amigo
Consulta, si publico un mensaje desde la consola de RabbitMQ el mismo no llega a la clase Consumer. Me podran ayudar?
Como siempre con contenido interesante y aportando a la comunidad. Gracias míster. 💪💪💪
Gracias a ti crack, saludos a la doña 👍
hola amigo muy buen video! donde esta el codigo o repo que dijiste que ibas a dejarlo? saludos!
Hola, gracias por tu comentario, el código acá: github.com/yoandypv/spring-boot-rabbit-mq
Consulta, RabbitMQ se usa para todos los endpoints, osea cuando uso una peticion http puedo usar este tipo de comunicacion o solo es para enviar mensajes. Es preferible usar comunicacion Sincrona o Asincrona para todos los controllers de un micro?
Excelente video!! muchas gracias!!
Muy interesante el video, muchas gracias! :D
Excelente vídeo como lo explicas, dime en este caso, yo tengo un app android que consumen un api rest de mi microservicio, disculpa mi ignorancia, pero android se puede poner el rabbit o tendría que crearme una carpeta "DUMMY" como tu la tienes y ahí manipular la información. Lo que sucede es que como tengo una app de pedidos y debido a la alta concurrencia necesito manejar el tema de stock de productos y pues me parecio que las colas como están basados en eventos sería buena idea. Yo tengo mi proyecto similar al tuyo todo en uno solo.
Hola Alexander, gracias, sumame en LinkedIn como @yoandypv
Que pasaria si el servidor fisico se apagase y el rabbit aun tiene muchos mensajes que procesar en la cola? Se perderian esos datos o queda guardado en algun lugar ?
queda en el broker en espera de consumidores. es una utilidad muy interesante pues se espera por la disponibilidad de las entidades. un ejemplo sería usarlo en una app que tenga mucha demanda, de manera que ante una gran cantidad de peticiones se puede prevenir que se caiga el servicio pues el broker es quien se encarga de gestionar y distribuir.
@@aleckvinent el broker es persistido en memoria o en algun sistema de ficheros? Porque si se guardara las colas en memoria en caso que el servidor falle esas colas se podrian perder
@@favioamarillamino4665 cuando se crea la cola puedes especificar la propiedad "durable = true" para que guarde los mensajes en disco, también puedes manejar la propiedad a nivel de mensajes
@@elahens88 Excelente, gracias por aclararme las dudas, gracias
Gracias por tu aporte Eddy !
Cómo podría contactarme contigo para que me des una asesoría más personalizada?
Bro excelente video, pero tapas el codigo con tu cara debes estar pendiente de eso
Very good explanation!! Thanks.
Muy buena explicacion. Gracias.
Me da error en el Consumer.java en log.info , no reconoce el log
Hola, debes agregar lombok a tu IDE
Excelente vídeo, ¿Hay alguna forma de que el consumidor le mande una notificación al productor de que todo ha salido bien?
Por un ejemplo un servicio de auth, le mandas al consumidor las credenciales y este le responda si es un usuario valido, y ya el productor siga con algún proceso extra
Hola Neo, este tipo de comunicación sienta sus bases en el desacoplamiento, y en el productores y consumidores no se conocen, por lo que no esta pensada para ese escenario. Sin embargo existen los acuses de recibo (ACK), un mecanismo mediante el cual el mensaje no se elimina del bus mientras no sea consumido por el destinatario, el objetivo de alguna manera es poder lograr la garantía de entrega. Igual como WA puedes siempre crear una cola para notificar completitud en sentido inverso, cuando el consumidor termine publique un mensaje indicando que proceso correctamente el mensaje X que se había enviado. Eso te puede funcionar.
Excelente, muchas gracias.
gracias, desde Chile
Estimado cuando 1 ejemplo de orquestaciôn -Saga
Gracias!
muy buen tuto, me suscribo
Que genio savca
no me lee los mensajes
Lastima que no sube el codigo...
Hola @Kevin, acá te comparto el código, perdón olvide subirlo cuando hice el video. github.com/yoandypv/spring-boot-rabbit-mq
Muchas gracias 😎👌🏼
@@SACAViXTech creo que esta como privado el repositorio o bien el link no es correcto 😔
@@oleaga Intenta de nuevo a ver, había quedado privado 😢
@@SACAViXTech ahora si 10/10, muchas gracias!! 😀
Muchas gracias, excelente video!!