Por si alguien lo necesita, para versiones de Spring Boot 3.2.5 La configuracion de server que funciona es: spring.kafka.producer.bootstrap-servers=localhost:9092 en lugar de: spring.kafka.bootstrapServers=localhost:9092
Hace rato que no veía un video tuyo y como siempre, nunca defraudas. Muchas gracias por tomarte la molestias de enseñarnos cosas... Un saludo, estimado!
increible contenido, la explicacion con consola para entender su funcionamiento y la implementacion con spring boot, simplemente increible este canal. te ganaste un like merecido!
Con nadie pude siquiera instalar zookeeper y kafka, gracias a tu explicación clara y concisa puedo trabajar sin problemas. Te debo un tequila, hermano, mil gracias!!!!!!!
Muchas gracias, era justo lo que estaba buscando, una buena introducción para apache Kafka, ahora hare la tarea y seguiré estudiándolo, muchas gracias, gran video.
Pregunta ¿Cómo haces la publicación en producción de un proyecto como este? ¿Se debe de crear un war y hacer el despliegue en un servidor de aplicaciones? o ¿Se debe crear un jar y ejecutarse como proceso batch levantándose con crontab?¿Estas opciones son para el Publisher o el Consumer o depende de la lógica de negocio?
Hola, siempre la dinámica de despliegue depende de la lógica de negocios, pero básicamente puedes usar war o jar, cualquiera de los dos sirve: War, si vas a usar servidores de aplicaciones externas o Jar si vas a usar el tomcat embebido de Spring boot. Una vez despliegas sólo debes asegurarte de que los servicios puedan comunicarse y también tener instalado el Kafka. Eso es todo. También puedes ejecutarlo como un proceso batch, todo es posible en la programación. Espero que esa información te ayude. ¡Saludos!
Me encuentro migrando un monolito a microservicios guiado por eventos y me está dando resultados tus videos, uno de los microservicios usa SpringBatch y también me apoyé con los videos de tu canal, excelente maestro, muchas gracias!
me encanta como enseñas y atraes la atencion , de verdad que da gusto que haya maestros como tu , muchas bendiciones y seguramente tendras mucho exito con estos videos
Hola, muchas gracias por comentar. Si te fijas bien, en el canal ya tengo un vídeo sobre microservicios, te comparto el link. ruclips.net/video/t0D4OPcugyI/видео.htmlsi=rDpe72ZYp19cyFL0 ¡Saludos!
Yo creo que un video sobre como crear un proyecto modular es decir un micro con varias capas en en modulos (exposicion, persistencia y servicios) estaria muy bien!! Saludos, excelente contenido.
Hola, gracias por comentar. Tengo un video en donde explico toda mi configuracion de intelijIDEA. Te comparto el link: ruclips.net/video/xyKsnuuHHRI/видео.html ¡Saludos!
Por fiiiin a alguien que sí le entiendo, men deberías de tirarte un curso en udemy, la romperías, he comprado dos cursos en Udemy para entender el tema y nooo, me toco hacer desembolso, un curso con CQRS, Spring Boot, apache kafka agregando Prometheus, Grafana, Zipkin, Sleuth y lo que ya hiciste de Keycloak ... Como vos explicas, uff mejor dicho
wow Santiago, no sabía que tenias montado uno de Kafka.. MOSTRO 👊🏼. hace 4 años si que me toco estudiar esto para una implementación en Bancolombia, estabamos por Kafka, SQS de aws, o Kinesis de aws.. decisión? KAFKA🔥, te dejo el like bro
Excelente! Muy claro. Muchas gracias! Y disculpa, tendrás otro vídeo en el que hagas eso, pero con microservicios reales? Suponiendo, clientes, ventas, compras, vendedores, y utilizando Kafka? Es sólo un ejemplo xd. Pero sí tendrás uno así disculpa?
Hola, no tengo un video haciéndolo con aplicaciones reales, pero en síntesis se hace de la misma manera, solo que aquí quise llevarlo lo más básico posible. ¡Saludos!
@@unprogramadornace Ah vava. De todos modos gracias bro! Me ayudaste mucho a entender Kafka. Nada más tendría una duda y es cuáles son las ventajas de usar Kafka respecto a los Sockets?
@@jobadolfosalinashernandez265 Hola, sockets se usa para crear un puente de conexión entre aplicaciones, es decir, ambas se van a comunicar mientras estén conectadas. Kafka es orientado a eventos, es decir que con kafka se envían eventos y otras aplicaciones reaccionan a esos eventos. Con sockets y kafka se pueden hacer cosas similares, pero es bueno conocer las ligeras diferencias de cada uno. ¡Saludos!
Hola, noooo. En este caso nosotros trabajamos con aplicaciones REST basadas en servlets los cuales manejan operaciones bloqueantes, eso quiere decir que son sincronas. La programación asíncrona con Kafka se basa en el patrón observar, eso quiere decir que reaccionan de acuerdo a los mensajes que reciban y van a trabajar sin bloqueos. Es por eso que se le llama asíncrono debido a que no se bloquean los procesos unos con otros. ¡Saludos!
Exclente video, bien explicado, gracias. una inquietud, en este ejemplo, si el servicio se cae, como logramos obtener los mensajes al restablecer el microservicio y persistir el mesaje al consumer ?
Hola, explicarte eso en un comentario es bien difícil porque es complejo, te recomiendo consultar sobre grupos de consumidores de Kafka y también sobre el manejo del offset en Kafka y de seguro allí encontrarás la respuesta. ¡Saludos!
Hola, claro que sí tienes toda la razón. Trabajamos con módulos en la etapa de construcción del ecosistema, eso nos ayuda a gestionar mejor las dependencias, perfiles, etc. Pero cuando se compilan los micros quedan en JAR's diferentes que pueden ser desplegados en servidores aparte. ¡Saludos!
Se podría generar una libreria para reutilizarlo en varios microservicios? me refiero por ejemplo en un CRUD(en cada path) guardar los mensajes de todas peticiones/modificaciones que se realicen.
Hola, no se para que querrias guardar los mensajes en una base de datos. Pero si, se puede hacer. Requiere bastante logica pero se puede hacer. Saludos.
@@unprogramadornace gracias por tu respuesta amigo, en mi trabajo al parecer ya se cuenta con un servicio receptor, en este caso creo solo seria configurar el emisor mandando como mensaje las respuestas de cada path
Hola, eso pasa porque debes ejecutar el comando dentro de la carpeta en dónde instalaste tu Kafka, asegúrate que la estructura de carpetas no tenga espacios en blanco. Espero puedas solucionarlo. ¡Saludos!
Lo hice de esta forma: 1.- importé librería Jackson (en gradle debe colocarse antes de todas las demás librerías de Spring boot): implementation 'com.fasterxml.jackson.core:jackson-databind:2.15.2' 2.- Instancié un objeto de la clase ObjectMapper: ObjectMapper objectMapper = new ObjectMapper(); 3.- Creé mi objeto que lo pasaré a Json: Car car = new Car("yellow", "renault"); 4.- Casteo del objeto a String con objectMapper: String carAsString = objectMapper.writeValueAsString(car); 5.- Envío el String en el value del kafkaTemplate: kafkaTemplate.send("Topico-prueba", carAsString); Saludos, gracias por su tiempo. Bendiciones.
Si se puede instalar en entornos virtuales, al fin y al cabo funciona en un servidor, las implicacionea varían de acuerdo al entorno en el que lo pongas a funcionar, diria que lo mas importante es que verifiques el acceso de la red en cada una de las instancias o entornos. ¡Saludos!
El video es excelente, ¿De casualidad tenés pensado hacer algún video de RabbitMQ con Spring Boot? No hay casi ningún material en español, sería espectacular.
Hola! Tengo un error algo raro..., reinicie mi pc y al momento de instalar todo me puse con kafka y aunque estoy en la dirección correcta C:\Kafka cuando ejecuto el comando para iniciar zookeeper me dice "El sistema no puede encontrar la ruta especificada", aunque si puedo navegar por ejemplo usando cd /bin, pero no con todo el comando completo, les ha pasado?
pregunta Utilizas los comandos kafka-console-producer.bat y kafka-console-consumer.bat en el video. Mi pregunta es ¿Kafka tiene alguna manera de que se puedan invocar estos comandos via remota? Me refiero a alguna url donde yo le pase como parámetro el topic y el mensaje, y escriba el mensaje en el topic dado. ¿O esto es algo que hay que desarrollar en una aplicación propia.?
Hola, hasta donde conozco Kafka no tiene esa funcionalidad, tendrías que desarrollarlo tu mismo. Tal vez podrías conectarte remotamente al servidor en dónde tienes Kafka y hacerlo manualmente, es otra opción. ¡Saludos!
Hola amigo, al tratar de ejecutar la consola del consumer me sale un error en la consola de karaf donde indica un problema de memoria, ya realice el aumento en mi JVM pero sigue mandando el mismo mensaje que crees que pueda ser? mi equipo tienen windows 10 de 64 bits.
Hola, lamento no poder ayudarte. Nunca he tenido ese error. Creo que la única opción sería buscar en Google. Espero que lo puedas solucionar. ¡Saludos!
@@unprogramadornace Logre resolverlo, tuve que cambiar de a una versión más actual de Java y completa ya que usaba el openjdk y nuevamente se agradece tu aportación, Gracias.
Uy wey! Esa pregunta está complicada de responder en un comentario, básicamente para eso debes profundizar más en la arquitectura de Kafka, específicamente en algo llamado offset. También se puede manejar lógica de control en cada microservicio, hay varias formas. En este caso tendrías que googlear un poco porque es un tema amplio. ¡Saludos!
Hola, desde Madrid... Estoy intentando implementar Kafka para acceso del exterior. No consigo que el broker tome sesión de zookeeper. En la LAN funciona correctamente. ¿Me puedes ayudar?
Hola, si el servidor de zookeeper se inicia en un servidor dentro de la misma red no debería haber problema, creo que tú inconveniente vas más que todo por el lado de la red y la conexión de los nodos dentro de esa red. En ese caso no podría ayudarte ya que pueden ser múltiples razones por las cuales hayan problemas en una red y para mi revolverlo a ciegas es imposible. ¡Saludos!
Hola. Esta genial la guía. Muchas gracias!!! Tengo una duda, usted tiene algun plugin instalado en el IntelliJ para ejecutar los modulos Springboot? ES que yo no he podido ejecutar mis proyectos Springboot en IntelliJ, me toca levantarlos en el Eclipse Spring Tool Suite. La agradecería si me cuenta cómo lo puedo hacer. Muchas gracias.
Hola, yo uso intellijIDE community edition; es decir, la versión gratuita. No uso ningún plugin para ejecutar spring boot, uso solamente lo que me ofrece el IDE, cabe destacar que es raro que a ti no te funcione, tal vez deberías desinstalarlo y volverlo a instalar. ¡Saludos!
Hola, si estas usando las ultimas versiones de kafka no te va a funcionar porque en las ultimar versiones ya no se trabaja con zookeper sino que se trabaja con KRaft. Si ese no es tu problema entonces deberias googlear un poco para ver cual puede ser el error. Saludos.
Hola Isaias, muchas gracias por tu comentario. Hay una librería muy buena que te permite personalizar tu terminal de windows como tu quieras, se llama "Oh my Posh". Te ofrece muchas opciones de personalización y adicionalmente te ofrece temas ya creados por si no quieres reventarte la cabeza haciendolo tu mismo. ¡Deberías probarla! ¡Saludos!
hola, muy buen contenido, es de gran ayuda, tengo una duda.... cual sería la principal diferencia entre kafka y rabbitMQ? por que veo que lo mas usado es kafka, saludos
Hola, ambas son tencologias para sistemas de mensajería, darte una diferencia en un solo comentario es complejo porque aunque hacen lo mismo su arquitectura es diferente. Podría decirte que Kafka es un poco más escalable y está diseñado para alto rendimiento incluso más que rabbitMQ pero sus casos de uso dependen de las necesidades del proyecto. ¡Saludos!
Hola, efectivamente a partir de Kafka 3.5.0 se deja obsoleto a Zookeper, de hecho Kafka venía anunciando desde hace tiempo que eso pasaría, puedes leerlo en los blogs oficiales de Kafka. kafka.apache.org/blog Zookeper se sigue usando en las empresas que usen versiones de Kafka inferiores a la 3.5.0. ¡Saludos!
En ese caso, debes buscar la documentación de las nuevas versiones de Kafka para saber cómo se manejan. Es complejo explicartelo en un comentario. ¡Saludos!
Hola estoy siguiendo el curso con el mismo entorno de trabajo que tú tienes (Ubuntu y IntelliJ IDEA) y estoy teniendo problemas con la colección HashMap manejada en el minuto 55. Cuando inento hacer el configurations.put() me dice que la clase configurations es desconocida y no puede resolver el put(). En principio la importación java.util.HashMap me la encuentra automáticamente. He leído por ahí que existen ciertos problemas con el uso de HashMap en IntelliJ IDEA. Pero claro a ti en tu vídeo parece que no te da ninguno. ¿Has tenido problemas dentro del IDE con este tipo de colección que has resuelto de algún modo? Saludos,
Hola, HashMap es una clase que viene directamente en el jdk de Java por lo tanto no debería darte problemas, nunca he tenido este tipo de problema ya que como te digo es algo que ya se encuentra dentro del jdk, no se si tal vez instalando de nuevo el jdk y el ide se solucione el problema. ¡Saludos!
@@unprogramadornace Vale no he dicho nada jeje Error mío que estaba escribiendo el código fuera del método generateTopic(). Funciona perfectamente haciéndolo como tú.
cuidado con el import del StringSerializer, estuve mas de 30 minutos buscando que era lo que fallaba, pero era porque tenia mal importado, tenia el de jackson y es : import org.apache.kafka.common.serialization.StringSerializer;
Van 13 min y me gusta. Esta bueno que el video este separado por temas, no todos lo hacen y es bueno porque de alguna forma tenemos una guia.
Hola Matías, me alegra que el vídeo te haya gustado.
Gracias por el apoyo crack!
¡Saludos!
Muy buen video, gracias. En el error que sale en el minuto 1:15:00 es porque sólo hay un broker activo y le configuramos dos.
una hora y media y entendi muchas cosas, todo funciono bien ! muchas gracias este es uno de los buenos tutoriales que he visto ;)
Gracias por comentar
¡Saludos!
Por si alguien lo necesita, para versiones de Spring Boot 3.2.5
La configuracion de server que funciona es:
spring.kafka.producer.bootstrap-servers=localhost:9092
en lugar de:
spring.kafka.bootstrapServers=localhost:9092
En mi caso la mencionada en el video tb funcionó, gracias!
Es la unica modificacion q hay q hacer?
Hace rato que no veía un video tuyo y como siempre, nunca defraudas. Muchas gracias por tomarte la molestias de enseñarnos cosas... Un saludo, estimado!
Gracias a ti por tus palabras y por tomarte el tiempo de comentar.
¡Saludos!
increible contenido, la explicacion con consola para entender su funcionamiento y la implementacion con spring boot, simplemente increible este canal. te ganaste un like merecido!
Gracias por ese like y por ese gran comentario.
¡Saludos!
Justo hice un proyectito con arquitectura microservicios ya acabe el Back ahora quiero adicionarle kafka, swagger y docker
Con nadie pude siquiera instalar zookeeper y kafka, gracias a tu explicación clara y concisa puedo trabajar sin problemas. Te debo un tequila, hermano, mil gracias!!!!!!!
Muchas gracias por tu comentario. Me alegra que te haya servido el vídeo. Un brindis por ese tequila.
¡Saludos!
Muchas gracias, era justo lo que estaba buscando, una buena introducción para apache Kafka, ahora hare la tarea y seguiré estudiándolo, muchas gracias, gran video.
Yo estudio python pero vi todo el tutorial y no tiene desperdicio alfin y al cabo todos son conceptos volviendose codigo 😊😊😊
Pregunta ¿Cómo haces la publicación en producción de un proyecto como este? ¿Se debe de crear un war y hacer el despliegue en un servidor de aplicaciones? o ¿Se debe crear un jar y ejecutarse como proceso batch levantándose con crontab?¿Estas opciones son para el Publisher o el Consumer o depende de la lógica de negocio?
Hola, siempre la dinámica de despliegue depende de la lógica de negocios, pero básicamente puedes usar war o jar, cualquiera de los dos sirve: War, si vas a usar servidores de aplicaciones externas o Jar si vas a usar el tomcat embebido de Spring boot. Una vez despliegas sólo debes asegurarte de que los servicios puedan comunicarse y también tener instalado el Kafka. Eso es todo.
También puedes ejecutarlo como un proceso batch, todo es posible en la programación.
Espero que esa información te ayude.
¡Saludos!
Felicitaciones, completa la explicación, seguí el paso a paso y me funciono al 100% 😉
Santi sos un crack, gracias por todo lo que haces!
Bua... te saliste con el tutorial! Brutal!
Me encuentro migrando un monolito a microservicios guiado por eventos y me está dando resultados tus videos, uno de los microservicios usa SpringBatch y también me apoyé con los videos de tu canal, excelente maestro, muchas gracias!
Muchas gracias por tu comentario. Me gusta que mis videos sean de ayuda para ti.
¡Saludos!
muchas gracias, conocimiento puro y duro, felicidades por tu canal,
excelente mejor explicado imposible, saludos y felicidades
Muchas gracias!!!! me ahorraste horas y horas de sufrimiento y angustia! impecable la capacitación!! ahora te sigo genio! te mando una brazo.
Muchas gracias por tu comentario. Gracias por el apoyo.
¡Saludos!
Excelente explicación, todos tus vídeos son muy claros y completos
Hola Anyi!
Muchas gracias por tu comentario.
¡Saludos!
Excelente Contenido y bien explicado, muchas gracias y un saludo desde Cuba 🇨🇺
Vaya, hasta cuba llegó mi vídeo.
¡Saludos!
Excelente video y de fácil comprensión. Estaría bueno uno con los siguientes pasos, osea algo avanzado
me encanta como enseñas y atraes la atencion , de verdad que da gusto que haya maestros como tu , muchas bendiciones y seguramente tendras mucho exito con estos videos
Muchas gracias por tomarte el tiempo de comentar, me alegra que le des ese valor tan especial a mi contenido.
¡Saludos!
Excelente video!! muy bien explicado!! Gracias!!
esta muy bueno el contenido parcero, ojala sacara uno de microservicios por aparte para cuando se lo quiera reutilizar para otro proyecto
Hola, muchas gracias por comentar. Si te fijas bien, en el canal ya tengo un vídeo sobre microservicios, te comparto el link.
ruclips.net/video/t0D4OPcugyI/видео.htmlsi=rDpe72ZYp19cyFL0
¡Saludos!
Oye amigo, infinitas gracias desde España!
Yo creo que un video sobre como crear un proyecto modular es decir un micro con varias capas en en modulos (exposicion, persistencia y servicios) estaria muy bien!! Saludos, excelente contenido.
Excelente!! mas videos asi practicos!
Muy buen curso maestro
Grcias por estos videos!
Excelenteeee!!! funciona sin problemas, muchísimas gracias!
Muchas gracias a ti por comentar.
Saludos.
Excelente explicación, un gran saludo
Gracias por el video profe!!!
Buenisimo, muy bien explicado
Excelente video, gracias.
Excelente guía!!
Muchas gracias
que buen video, me funcionó sin problemas muchas gracias.
Muchas gracias por todo lo que aportas. ¿Cuál es el theme que usas en tu intellij?, me resulta más facilitador que el que uso yo
Hola, gracias por comentar.
Tengo un video en donde explico toda mi configuracion de intelijIDEA.
Te comparto el link:
ruclips.net/video/xyKsnuuHHRI/видео.html
¡Saludos!
Muy bueno , lo pude implementar en uno de mis proyectos sin ningún problema. Gracias.
excelente amigo, bastante completo tu tutoria!
excelente video hasta aprendi como tener varios microservicios en el mismo proyecto
Excelente el video... muchas gracias
Que buen video. Muy claro y me ayudó bastante. Muchas graciassssss
Gracias por tu contenido hermano
Me encantó como está explicado
Gracias super claro!
Buen video, justo me sale cuando lo necesito, gracias por tu contenido :)
Por cierto un proveedor puede tambien ser consumidor verdad?
Hola, claro que si. Es posible.
¡Saludos!
Por fiiiin a alguien que sí le entiendo, men deberías de tirarte un curso en udemy, la romperías, he comprado dos cursos en Udemy para entender el tema y nooo, me toco hacer desembolso, un curso con CQRS, Spring Boot, apache kafka agregando Prometheus, Grafana, Zipkin, Sleuth y lo que ya hiciste de Keycloak ... Como vos explicas, uff mejor dicho
Muchas gracias por tu comentario, voy a tener en cuenta tu sugerencia.
¡Saludos!
Excelente! Faltan el video para los tests!
Uff excelente introduccion muchas gracias
quiero personalizar mi terminal como la tuya, has un video de la terminal :D
Muy buena explicación pero me hubiese gustado que nos mostrara como enviar mensajes desde el controlador
Muy bien explicado, deberías pensar en hacerte Udemy y subir los cursos.
Lo he pensado pero no me llama la atención Udemy. Mucho trabajo por poco pago.
¡Saludos!
muy buen video!!
wow Santiago, no sabía que tenias montado uno de Kafka.. MOSTRO 👊🏼. hace 4 años si que me toco estudiar esto para una implementación en Bancolombia, estabamos por Kafka, SQS de aws, o Kinesis de aws.. decisión? KAFKA🔥, te dejo el like bro
Hola, muchas gracias por compartir tu experiencia y por comentar. Me alegra que el vídeo te haya sorprendido.
¡Saludos Crack!
Buen aporte, ¿ pero podría actualizarlo para el uso de Kraf en vez de zookeeper?, se agradeceria 😃
Muy buen tutorial
Excelente contenido
Excelente! Muy claro. Muchas gracias! Y disculpa, tendrás otro vídeo en el que hagas eso, pero con microservicios reales? Suponiendo, clientes, ventas, compras, vendedores, y utilizando Kafka? Es sólo un ejemplo xd. Pero sí tendrás uno así disculpa?
Hola, no tengo un video haciéndolo con aplicaciones reales, pero en síntesis se hace de la misma manera, solo que aquí quise llevarlo lo más básico posible.
¡Saludos!
@@unprogramadornace Ah vava. De todos modos gracias bro! Me ayudaste mucho a entender Kafka. Nada más tendría una duda y es cuáles son las ventajas de usar Kafka respecto a los Sockets?
@@jobadolfosalinashernandez265 Hola, sockets se usa para crear un puente de conexión entre aplicaciones, es decir, ambas se van a comunicar mientras estén conectadas. Kafka es orientado a eventos, es decir que con kafka se envían eventos y otras aplicaciones reaccionan a esos eventos. Con sockets y kafka se pueden hacer cosas similares, pero es bueno conocer las ligeras diferencias de cada uno.
¡Saludos!
bien esplicado todo , lo que me quedaron dudas de como un consumidor marca que ya consumio un mensage para evitar duplicados. es algo automatico?
Hola, todo eso lo maneja Kafka, lo que pasa es que hay que introducirnos mas dentro de la arquitectura de Kafka.
¡Saludos!
una consulta, REST no seria asincronca y lo otro sincrono? agradeceria que me aclares la duda gracias like buen video
Hola, noooo. En este caso nosotros trabajamos con aplicaciones REST basadas en servlets los cuales manejan operaciones bloqueantes, eso quiere decir que son sincronas. La programación asíncrona con Kafka se basa en el patrón observar, eso quiere decir que reaccionan de acuerdo a los mensajes que reciban y van a trabajar sin bloqueos. Es por eso que se le llama asíncrono debido a que no se bloquean los procesos unos con otros.
¡Saludos!
Hola gracias por el contenido... tendras una guia sobre websockets en un crud basico con springboot ... te lo agradeceria mucho ... saludos
una consulta en un proyecto de microservicio como saber quien sera el provider o consumer?
Hola, todo depende de la necesidad del negocio y de los microservicios que quieras comunicar.
¡Saludos!
Exclente video, bien explicado, gracias. una inquietud, en este ejemplo, si el servicio se cae, como logramos obtener los mensajes al restablecer el microservicio y persistir el mesaje al consumer ?
Hola, explicarte eso en un comentario es bien difícil porque es complejo, te recomiendo consultar sobre grupos de consumidores de Kafka y también sobre el manejo del offset en Kafka y de seguro allí encontrarás la respuesta.
¡Saludos!
No entiendo lo de modular, los microservicios no tendrian q estar separados para poder subirlo a algun servicio en la nube como aws, gcp ?
Hola, claro que sí tienes toda la razón. Trabajamos con módulos en la etapa de construcción del ecosistema, eso nos ayuda a gestionar mejor las dependencias, perfiles, etc. Pero cuando se compilan los micros quedan en JAR's diferentes que pueden ser desplegados en servidores aparte.
¡Saludos!
Se podría generar una libreria para reutilizarlo en varios microservicios? me refiero por ejemplo en un CRUD(en cada path) guardar los mensajes de todas peticiones/modificaciones que se realicen.
Hola, no se para que querrias guardar los mensajes en una base de datos. Pero si, se puede hacer. Requiere bastante logica pero se puede hacer.
Saludos.
@@unprogramadornace gracias por tu respuesta amigo, en mi trabajo al parecer ya se cuenta con un servicio receptor, en este caso creo solo seria configurar el emisor mandando como mensaje las respuestas de cada path
Muchas gracias!!🤗
Una pregunta para enviar los mensajes de Kafka por una api rest
Puedes crear un endpoint el cual al recibir una peticion se encargue de enviar un mensaje por kafka. No es un proceso complicado.
¡Saludos!
Excelente.
Cuando ejecuto el comando para levantar el zookeeper junto con le propeties me aparce este error
El sistema no puede encontrar la ruta especificada.
Hola, eso pasa porque debes ejecutar el comando dentro de la carpeta en dónde instalaste tu Kafka, asegúrate que la estructura de carpetas no tenga espacios en blanco. Espero puedas solucionarlo.
¡Saludos!
buen video
Hola y cómo sería si se quisiera generar y enviar json en vez de String ?
Lo hice de esta forma:
1.- importé librería Jackson (en gradle debe colocarse antes de todas las demás librerías de Spring boot):
implementation 'com.fasterxml.jackson.core:jackson-databind:2.15.2'
2.- Instancié un objeto de la clase ObjectMapper:
ObjectMapper objectMapper = new ObjectMapper();
3.- Creé mi objeto que lo pasaré a Json:
Car car = new Car("yellow", "renault");
4.- Casteo del objeto a String con objectMapper:
String carAsString = objectMapper.writeValueAsString(car);
5.- Envío el String en el value del kafkaTemplate:
kafkaTemplate.send("Topico-prueba", carAsString);
Saludos, gracias por su tiempo. Bendiciones.
Hola, puedes lograrlo serializando el JSON usando la librería de Jackson.
¡Saludos!
Puede instalarse kafka en un entorno virtual? si es el caso que problemas me podría dar?
Si se puede instalar en entornos virtuales, al fin y al cabo funciona en un servidor, las implicacionea varían de acuerdo al entorno en el que lo pongas a funcionar, diria que lo mas importante es que verifiques el acceso de la red en cada una de las instancias o entornos.
¡Saludos!
El video es excelente, ¿De casualidad tenés pensado hacer algún video de RabbitMQ con Spring Boot? No hay casi ningún material en español, sería espectacular.
Hola, claro que sí he pensado traer rabbitMQ, está dentro de los planes. En cualquier momento llegará.
Hola! Tengo un error algo raro..., reinicie mi pc y al momento de instalar todo me puse con kafka y aunque estoy en la dirección correcta C:\Kafka cuando ejecuto el comando para iniciar zookeeper me dice "El sistema no puede encontrar la ruta especificada", aunque si puedo navegar por ejemplo usando cd /bin, pero no con todo el comando completo, les ha pasado?
Hola, nunca me ha pasado. Lo siento.
¡Saludos!
@@unprogramadornace Mejor levante Kafka con Docker!
pregunta Utilizas los comandos kafka-console-producer.bat y kafka-console-consumer.bat en el video. Mi pregunta es ¿Kafka tiene alguna manera de que se puedan invocar estos comandos via remota? Me refiero a alguna url donde yo le pase como parámetro el topic y el mensaje, y escriba el mensaje en el topic dado. ¿O esto es algo que hay que desarrollar en una aplicación propia.?
Hola, hasta donde conozco Kafka no tiene esa funcionalidad, tendrías que desarrollarlo tu mismo. Tal vez podrías conectarte remotamente al servidor en dónde tienes Kafka y hacerlo manualmente, es otra opción.
¡Saludos!
Muy bueno!!
Hola, muchas gracias por tu comentario.
¡Saludos!
si tengo una mac me tengo que saltar el paso de configuracion para windows ?
Si, en tu caso te saltas ese paso, en la página de Kafka se encuentra la forma de iniciar el servidor en Mac.
¡Saludos!
Hola, y si quiero conectarme a SSL ? como seria gracias
Hola, en kafka hay un archivo .properties, sí mal no recuerdo, se llama server.properties, allí configuras el SSL.
¡Saludos!
Hola amigo, al tratar de ejecutar la consola del consumer me sale un error en la consola de karaf donde indica un problema de memoria, ya realice el aumento en mi JVM pero sigue mandando el mismo mensaje que crees que pueda ser? mi equipo tienen windows 10 de 64 bits.
Hola, lamento no poder ayudarte. Nunca he tenido ese error. Creo que la única opción sería buscar en Google.
Espero que lo puedas solucionar.
¡Saludos!
@@unprogramadornace Logre resolverlo, tuve que cambiar de a una versión más actual de Java y completa ya que usaba el openjdk y nuevamente se agradece tu aportación, Gracias.
una consulta si un mensaje es captado por cinco microservicios, y dos de ellos no pueden realizar la tarea. ¿cómo se controla esa situación?
Uy wey! Esa pregunta está complicada de responder en un comentario, básicamente para eso debes profundizar más en la arquitectura de Kafka, específicamente en algo llamado offset. También se puede manejar lógica de control en cada microservicio, hay varias formas.
En este caso tendrías que googlear un poco porque es un tema amplio.
¡Saludos!
Hola, desde Madrid... Estoy intentando implementar Kafka para acceso del exterior. No consigo que el broker tome sesión de zookeeper. En la LAN funciona correctamente. ¿Me puedes ayudar?
Hola, si el servidor de zookeeper se inicia en un servidor dentro de la misma red no debería haber problema, creo que tú inconveniente vas más que todo por el lado de la red y la conexión de los nodos dentro de esa red. En ese caso no podría ayudarte ya que pueden ser múltiples razones por las cuales hayan problemas en una red y para mi revolverlo a ciegas es imposible.
¡Saludos!
Hola. Esta genial la guía. Muchas gracias!!!
Tengo una duda, usted tiene algun plugin instalado en el IntelliJ para ejecutar los modulos Springboot? ES que yo no he podido ejecutar mis proyectos Springboot en IntelliJ, me toca levantarlos en el Eclipse Spring Tool Suite. La agradecería si me cuenta cómo lo puedo hacer.
Muchas gracias.
Hola, yo uso intellijIDE community edition; es decir, la versión gratuita. No uso ningún plugin para ejecutar spring boot, uso solamente lo que me ofrece el IDE, cabe destacar que es raro que a ti no te funcione, tal vez deberías desinstalarlo y volverlo a instalar.
¡Saludos!
Me pasa lo mismo, no puedo levantar los microservicios solamente, o mas bien no se como levantarlos desde Sprongtollsuite
Buenos dias, estoy intentando iniciar el zookeeper pero no reconoce el comando, lo abro con la terminal de windows y nada, sabes por que puede ser?
Hola, si estas usando las ultimas versiones de kafka no te va a funcionar porque en las ultimar versiones ya no se trabaja con zookeper sino que se trabaja con KRaft. Si ese no es tu problema entonces deberias googlear un poco para ver cual puede ser el error.
Saludos.
@@unprogramadornace hola con razón tienes un vídeo de cómo se usa con las nuevas versiones? Me gustó mucho el vídeo
@@nicolasfonseca1115 Aun no tengo un curso con la nueva version.
¡Saludos!
Como hiciste para tener el power shell con esos colores y transparente?
Hola Isaias, muchas gracias por tu comentario.
Hay una librería muy buena que te permite personalizar tu terminal de windows como tu quieras, se llama "Oh my Posh".
Te ofrece muchas opciones de personalización y adicionalmente te ofrece temas ya creados por si no quieres reventarte la cabeza haciendolo tu mismo.
¡Deberías probarla!
¡Saludos!
@@unprogramadornace Muchas graciass :)
hola, muy buen contenido, es de gran ayuda, tengo una duda.... cual sería la principal diferencia entre kafka y rabbitMQ? por que veo que lo mas usado es kafka, saludos
Hola, ambas son tencologias para sistemas de mensajería, darte una diferencia en un solo comentario es complejo porque aunque hacen lo mismo su arquitectura es diferente. Podría decirte que Kafka es un poco más escalable y está diseñado para alto rendimiento incluso más que rabbitMQ pero sus casos de uso dependen de las necesidades del proyecto.
¡Saludos!
Hola, he visto que Zookeeper está deprecado, hay alguna razón por la cuál se debería seguir utilizándolo, saludos!
Hola, efectivamente a partir de Kafka 3.5.0 se deja obsoleto a Zookeper, de hecho Kafka venía anunciando desde hace tiempo que eso pasaría, puedes leerlo en los blogs oficiales de Kafka.
kafka.apache.org/blog
Zookeper se sigue usando en las empresas que usen versiones de Kafka inferiores a la 3.5.0.
¡Saludos!
@@unprogramadornace cómo cambiaría la aplicación de ejemplo que compartiste acá no teniendo Zookeeper? Saludos!
En ese caso, debes buscar la documentación de las nuevas versiones de Kafka para saber cómo se manejan. Es complejo explicartelo en un comentario.
¡Saludos!
@@unprogramadornace entiendo gracias!
Sigamos... Qué tal la parte 2 de este video con el controlador ⚙
Gracias por comentar.
Tendré en cuenta tu sugerencia.
¡Saludos!
Hola estoy siguiendo el curso con el mismo entorno de trabajo que tú tienes (Ubuntu y IntelliJ IDEA) y estoy teniendo problemas con la colección HashMap manejada en el minuto 55. Cuando inento hacer el configurations.put() me dice que la clase configurations es desconocida y no puede resolver el put(). En principio la importación java.util.HashMap me la encuentra automáticamente. He leído por ahí que existen ciertos problemas con el uso de HashMap en IntelliJ IDEA. Pero claro a ti en tu vídeo parece que no te da ninguno. ¿Has tenido problemas dentro del IDE con este tipo de colección que has resuelto de algún modo? Saludos,
Hola, HashMap es una clase que viene directamente en el jdk de Java por lo tanto no debería darte problemas, nunca he tenido este tipo de problema ya que como te digo es algo que ya se encuentra dentro del jdk, no se si tal vez instalando de nuevo el jdk y el ide se solucione el problema.
¡Saludos!
@@unprogramadornace Vale no he dicho nada jeje Error mío que estaba escribiendo el código fuera del método generateTopic(). Funciona perfectamente haciéndolo como tú.
@@iscipar Excelente.
hola! excelente contenido, una pregunta que tema usas en tu IntellijIDEA?
Hola, yo uso un tema llamado Gradianto y elijo el Dark blue.
¡Saludos!
Nice
El error estaba en la cantidad de replicas
Excelente video, quizá un ejemplo un poco más real sería genial, gracias
Hola Dennilson, muchas gracias por tu comentario y tu sugerencia, voy a tenerla muy en cuenta para próximos videos.
¡Saludos!
kluster = cluster
cuidado con el import del StringSerializer, estuve mas de 30 minutos buscando que era lo que fallaba, pero era porque tenia mal importado, tenia el de jackson y es : import org.apache.kafka.common.serialization.StringSerializer;
Excelente video, GRACIAS