Creando una Aplicación Escalable - Microservicios con Spring Boot

แชร์
ฝัง
  • เผยแพร่เมื่อ 19 ธ.ค. 2024

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

  • @Thoth-ai
    @Thoth-ai ปีที่แล้ว +15

    Una tontería, por si a alguien más le pasa. en mysql order es una palabra reservada, me daba problemas para crear la tabla order, ahora entiendo porque en el vídeo usa la palabra orders para crear esa tabla

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

      Me pasó con lo mismo con Character. Ahora ante la duda lo chequeo

    • @mure5437
      @mure5437 8 หลายเดือนก่อน +2

      Si quieres usar nombres que no entren en conflictos con palabras reservadas de alguna capa del sistema puedes usar ejemplo: @Table(name = "\"ORDER\"")

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

      algo similar pasa cuando usas h2 e intentas crear la tabla user, debes especificar el name y poner users

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

      JAJAJJAJAJAJJAJA el order by de mysql pues

  • @uncledavescode
    @uncledavescode  ปีที่แล้ว +13

    ❗En los próximos días van a estar saliendo las demás partes, la próxima sale el sábado 1 de julio. Please, téngame paciencia 😅

    • @JuanCHB_88
      @JuanCHB_88 ปีที่แล้ว +1

      Muchísimas gracias por tus aportes

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

      Gracias doc por tus aportes muy completos

  • @SL3VIN_S
    @SL3VIN_S 23 วันที่ผ่านมา +1

    Gran video, muchas gracias por tqn excelente contenido

  • @monsterleagueescritas
    @monsterleagueescritas ปีที่แล้ว +4

    Es increible la cantidad de tecnologias aplicadas en esta serie de videos!!

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

    Excelente video muchas gracias, la verdad me sorprendió la manera en la que mapea los datos tan sencilla, y yo matándome con ModelMapper
    Muchas gracias, éxitos y bendiciones

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

      Hola Geovanny
      Gracias por pasar por acá.
      Si, con el tiempo te vas dando cuenta de que las soluciones a veces son más simples, hay que hacer más uso del lenguaje y tratar de buscar menos bibliotecas, no sería la primera vez que una biblioteca se hace útil y se le deja de dar soporte, dejando muchos desarrollos a medias.
      Me alegra que hayas encontrado útil el video.
      Saludos

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

      @@uncledavescode Si señor es verdad, muchas gracias por la recomendación

    • @cesarivanurbinah.9884
      @cesarivanurbinah.9884 7 หลายเดือนก่อน

      @@geovannymesa2015 @Builder es la opción nativa de Java a las librerías de mapeo famosas como MapStruct, lo único que añadiría es que sería mejor crear un package solo para mapeo, así queda más limpio el servicio.

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

    Muy agradecido por esta serie de videos enriquecedores, eres grande Tío Dave!

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

      Gracias estimado. Saludos

  • @brandonv8525
    @brandonv8525 ปีที่แล้ว +1

    Increible tutorial quieria aprender sobre microservicios con spring boot para conseguir un empleo, este tutorial me ayuda bastante aparte excelente musica de fondo. Gracias!

    • @uncledavescode
      @uncledavescode  ปีที่แล้ว

      Gracias por pasar por acá.. Tengo casi listo comenzar con uno desde 0 de Hibernate pero esos temas densos, a pesar de ser bien interesantes no atraen mucho xD. Saludos.

  • @patricknavarro191
    @patricknavarro191 ปีที่แล้ว +2

    Excelente tutorial, video 1 completado, vamos por más 😎

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

    Gracias tío por este mini curso, me gustó mucho este primer video, solo que a mi entender se requieren conocimientos avanzados d Java ya que me costó llevar el hilo.

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

      Si, es uno de los requisitos, además de tener una idea de Spring Boot, hay otros videos más simples con Spring Boot en el canal. Gracias por pasar. Saludos

  • @JesusDiaz-tt1pw
    @JesusDiaz-tt1pw ปีที่แล้ว +1

    Amigo, tremenda la explcacion, pero queria resaltar el tema de la musica que pusiste.. Muy amena y a un volumen exelente, hace que el video fluya y el aprendisaje sea mas agradable. Gracias por compartir tu conocimiento!!

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

    Gracias por el contenido. Nota : Al crear la Db de MySql desde el Intellij en la ultima version de docker por alguna razon no cogia el command : -p3306 en lugar de eso puse command: --default-authentication-plugin=mysql_native_password y funciono ok

  • @j3v1t0
    @j3v1t0 ปีที่แล้ว +10

    Podrías ampliar este proyecto de microservicios de cómo usarlo con AWS y Google Cloud Platform. Claro si es posible. Para entender mejor cómo subir los microservicios en la nube.

    • @uncledavescode
      @uncledavescode  ปีที่แล้ว +6

      Si, el tema es que tuve que decidir cuál iba a ser el alcance de la serie y hay varias cosas que no incluí que hubiese querido que estuvieran, el servidor de configuración, testing con contenedores, crear las imágenes de los servicios para docker, pero ya 5 videos era mucho contenido.
      Pero sin dudas que pienso abordar esos temas.
      Un Saludo y gracias por pasar por acá.

    • @j3v1t0
      @j3v1t0 ปีที่แล้ว +5

      @@uncledavescode pues en vez de 5 vídeos puedes hacerlos con más de 5 partes y que esté completo 😁

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

      @@uncledavescode La neta que aprendí demasiado a niveles fuera de este mundo con este curso, y lo que dice el compañero la verdad estaría muy bueno y mas para nosotros que somos de estudio autodidacta, me alegro mucho el encontrar este curso, muchisimas gracias, espero le sea posible poder ampliarlo mas allá y muchas gracias por este curso, feliz año.

    • @uncledavescode
      @uncledavescode  11 หลายเดือนก่อน +3

      @@ismaeltrocha6319 Que bueno que te ayudó. Esa es la idea. Trato de balancear con el poco tiempo que tengo en cuanto a temas, estoy seguro de que más adelante voy a agregar temas relacionados a AWS. Sigo pensando que hay muchos temas que cuando comienzan pasan por alto y trato de agregar videos para que tengan bases más sólidas pero los entiendo jejeje. Saludos

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

    Un contenido muy muy valioso, muchas gracias.

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

      Gracias a ti! Saludos

  • @manuonda
    @manuonda ปีที่แล้ว +1

    comenzando con estos cursos!! gracias

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

    BUENA EXPLICACION!

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

    Buenas! ¿Que versión de Spring Boot usamos a la fecha? 3.3.2 / 3.4 ?? Saludos, Gracias

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

      Hola.. siempre para un desarrrollo prefiero usar la última versión estable, en este momento la 3.3.2... si quieres ver temas que están próximos a salir ya eso es otra cosa. Igual, para el video que comentas es posible que hayan muchas diferencias sobbre todo lo relacionado con Spring Security. Saludos

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

    Una consulta, es necesario modularizar en maven con microservicios? cuales serian las ventajas y desventajas?

  • @amoMiFlia
    @amoMiFlia ปีที่แล้ว +1

    me confunde un poco el uso de docker al configurar el yml tendras un video donde explicas docker, se que hay mucho pero veo que tu forma de explicar es muy buena

    • @uncledavescode
      @uncledavescode  ปีที่แล้ว +1

      Hola, la verdad no tengo un video sobre docker.
      He pensado en hacer uno pero temas de tiempo me complican. Voy a intentarlo..
      Saludos

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

      Es muy fácil @amoMiFlia, solo tienes que instalar docker desktop para windows o linux o mac, que está en la página oficial de docker y es gratuito, luego añadir el plugin de docker a intellij luego el mismo plugin una vez arrancas docker en tu local te lo reconoce y solo tienes que arrancar los servicios desde docker compose como el hace, automáticamente te baja las imagenes de los servidores de bdd, tanto de postgres como de mysql y te crea los contenedores con las configuraciones que viste en el docker-compose. Tampoco necesitas un nivel muy avanzado, con esto que te explico ya te arrancaría y es prácticamante automático.

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

    Buen trabajo! Ahora tengo una duda! ¿què tal si tengo tres tablas de distintos modulos y es imperante que se guarden en la misma transacciòn, has manejado estos casos?

    • @uncledavescode
      @uncledavescode  10 หลายเดือนก่อน +2

      Hola Wilfredo, gracias por pasar por acá y ser parte de esta pequeña familia xd.
      Lo que me preguntas es bien común, explicar en un mensaje no tan simple, más adelante trataré de explicarlo en un video.
      Esencialmente, cuando hablamos de microservicios, tenemos dos formas de realizar transacciones distribuidas, tenemos 2PC(Two Phase Commit) donde se completa una transacción en dos fases, tenemos un componente que se encarga de coordinar la transacción, en la primera fase pregunta a cada microservicio involucrado si está listo para realizar una transacción y en caso de que todos estén listos, en la segunda fase realiza la transacción. Si alguno de los microservicios no pudo finalizar la transacción, el componente coordinados, avisa a los demás microservicios para que hagan rollback.
      Esta vía, aunque es muy utilizada tiene algunos problemas, y es que dependen del componente coordinador, si este falla estamos en 0, además de que si uno de los microservicios es lento, las operaciones de los demás microservicios se verán afectadas. En fin, como todo, depende de la situación.
      El otro caso a ver es el patrón Saga, y este a su vez se puede implementar con choreography o con orchestration, y si escribí mucho para resumirte 2PC, imagina para esto, pero en esencia acá se manejan eventos, en esencia, choreography hace que cada microservicio emita un evento al próximo servicio que debe procesar la transacción, y con orchestration tenemos algo similar a 2PC, donde este componente se encarga de manejar el flujo de la transacción.
      Es bien complicado explicar sin un ejemplo, pero lo voy a tener en cuenta para el futuro.
      Saludos

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

      @@uncledavescode gracias por tomarte el tiempo en aclararme la duda. Voy a investigar patron Saga.

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

    hola exelente video , no tenes un curso completo en udemy de microservicios ?

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

      Hola Maia... gracias... no, no tengo cursos en udemy, creo que requeriría más tiempo de mi del que puedo aportar jejeje. Saludos

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

    Recien empiezo a aprender sobre microservicios jejeje, pero tengo entendido que se puede crear servicios en diferentes lenguajes de programacion, por ejemplo, si yo creo el servicio de ordenes con java/spring y luego el de productos con mm nodejs y el inventario con c#, y al trabajar con spring cloud, eureka, gateway que son de spring, como puedo hacer para comunicar los demas microservicios en lenguajes diferentes? o para eso se usa los contenedores, kafka???
    por cierto excelente curso. 😁

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

      Bueno, esa mezcla de tecnología lo mejor es usa otra cosa que los una jeje. Pero si, la idea es esa, y que la comunicación entre ellos no dependa de la tecnología de los mismos, puedes usar kafka para mensajería, Rest para una API, y cosas así. Gracias por pasar. Saludos

  • @JurgenMolina
    @JurgenMolina ปีที่แล้ว +1

    Hola que pena molestarte es que estoy migran un proyecto de la universidad que hice el semestre pasado y lo hice con java 11 seria que puedo seguir los videos y utilizar java 11 en lugar de 17

    • @uncledavescode
      @uncledavescode  ปีที่แล้ว +1

      Hola Jurgen...
      Lo puedes hacer.. solo tener en cuenta cuando utilizo records tienes que utilizar clases normales... y creo que en la Stream API de Java no existía el método toList, debes utilizar .collect(Collectors.toList()).
      Pero en principio no tendrías problemas..
      Si tienes alguno escríbeme al mail.
      Saludos

    • @JurgenMolina
      @JurgenMolina ปีที่แล้ว

      @@uncledavescode muchas gracias 🫂

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

    que plugins tienes ?

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

      Para completar? GitHub Copilot

  • @nolimits700
    @nolimits700 ปีที่แล้ว +1

    Una pregunta, porque crear nuevas clases dto para request y response, si podemos usar las clases de entidad y solo crear un dto cuando sea imprescindible. Es una buena practica?, perdona mi ignorancia, pero solo me confundió usar tantas.

    • @uncledavescode
      @uncledavescode  ปีที่แล้ว +1

      Hola, gracias por pasar por acá.
      En general hay un tema de buenas prácticas, pero igual de rendimiento.
      El ejemplo que pongo es bien simple, la vida es un poco más complicada.
      - No es bueno pasar a la capa de presentación todos los datos de una entidad, si tenemos 15 columnas y solo vamos a mostrar 5 columnas tenemos un tema de rendimiento además de mostrar información que es posible que no quieras compartir.
      - Si tenemos una API que le brinda a un tercero cierta información, imagina lo que pasa si cambia el modelo, como ya le pasas entidades, la API va a fallar, no vas a poder hacer los ajustes en tu sistema para que los clientes de tu API sigan funcionando.
      -En el caso de Hibernate también hay otro tema de rendimiento, las entidades se almacenan en el contexto de persistencia, Hibernate tiene un mecanismo que se encuentra constantemente verificando si hay cambios en esas entidades.
      Si puedes ver este video solo después del minuto 10 para que veas una diferencia de rendimiento entre obtener entidades y dtos.
      th-cam.com/video/U9-7zlKoA2c/w-d-xo.html
      En resumen, a pesar de que mis ejemplos son simples trato de codificar siguiendo las buenas prácticas.
      La semana que viene voy a comenzar con una serie de Hibernate para que puedan ver exactamente lo que pasa detrás de Spring Data.

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

      para no esponer la entidad de la data y a parte porque el dto lo puedes manipular con los campos que requieras y no todo como el entities

  • @j3v1t0
    @j3v1t0 ปีที่แล้ว

    Que plugins utilizas que te completa el código?

    • @uncledavescode
      @uncledavescode  ปีที่แล้ว +2

      Copilot, lo utilizo para agilizar un poco los videos. Saludos

  • @jurgenhumbertomolinabaraja4996
    @jurgenhumbertomolinabaraja4996 ปีที่แล้ว +1

    Que es el docker-compose

    • @uncledavescode
      @uncledavescode  ปีที่แล้ว +1

      Hola Jurgen, Docker Compose es una herramienta de docker que nos permite definir y ejecutar varios contenedores usando un solo archivo. En este caso tenemos varias bases de datos, luego verás keycloak y otros más.
      Para este caso es una manera de mantener organizada la aplicación y tener todos los servicios juntos.
      Se que en los videos no hablo de docker porque no es lo fundamental de la serie, pero la idea es definir los servicios en un archivo, y con una herramienta de docker y un comando ejecutar todos los servicios que te mencionaba arriba a la vez. Saludos

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

    por que en una parte del codigo se hacen las anotaciones de @getter y @setter en vez de data?

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

      Hola Oscar, @Data incluye además de los getters y setters las implementaciones de hashcode y de equals... Por lo general las implemntaciones de esos métodos sugeridas no son las mejores, por ejemplo una entidad o dto con 10 campos, con las implementaciones sugeridas consideran que son iguales si cada una de las propiedades son iguales, yo considero que una entidad es igual a otra si tienen el mismo ID o Key que puede ser compuesta.
      Saludos

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

      @@uncledavescode gracias amigo, por cierto muy buen video.

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

      Saludos!!!

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

    bueno

  • @JavierMedina26
    @JavierMedina26 ปีที่แล้ว +1

    Sugerencia aunque capaz ya te lo han dicho, el fondo blanco o el tamaño de la grabacion no ayuda mucho para seguirte.
    De resto muy buen video

    • @uncledavescode
      @uncledavescode  ปีที่แล้ว +1

      Si, siempre se me olvida. Saludos.

  • @leninvalen123
    @leninvalen123 ปีที่แล้ว

    ¿Cuándo se agrega el usuario de la orden amigo?

    • @uncledavescode
      @uncledavescode  ปีที่แล้ว

      no entendí que me quisite decir

    • @leninvalen123
      @leninvalen123 ปีที่แล้ว +1

      @@uncledavescode Mil disculpas amigo no me hice entender, digamos que en el registro de la orden es posible que exista un id de usuario, ¿El usuario se obtiene del token después y se lo registra?.

    • @uncledavescode
      @uncledavescode  ปีที่แล้ว

      Hola Lenin, ahora si jejeje.
      Mira, por lo que entiendo, es que que quieres dejar registrado el usuarlio que genera la orden o cosas por el estilo. En mi experiencia, es un tema de diseño, no debes asignarle la responsabilidad al microservicio de órdenes que agregue información del usuario que es posible que el no tenga, el solo necesita saber que el request que se realizó cuenta con la autorización adecuada, muchas veces pasa que el keycloak no verifica la autorización por suuario, puede ser que lo haga por grupos de usuarios, o por cleinte de keycloak y puede ser que no puedas obtener esa info de keycloak.
      Por eso recomindo que ta la información que necesites para generar la orden sea pasada al microservicio del órdenes por la capa del sistema que cuente con esa información.
      Puedes agregarle a la orden información del usuaio como su email, pero es otro el microservicio el encargado de enviar esa info.
      No se si me extendí mucho, lo primero que es un modelo reducido, y lo segundo es que si necesitas la info del usuario, entonces que sea parte de la firma del endpoint, no le agregues a la orden trabajo que no le corresponde.
      Si te queda algo de duda no dudes en escribirme,
      Saludos

    • @leninvalen123
      @leninvalen123 ปีที่แล้ว +1

      Vi algo de Kafka pero no me queda muy claro, talvés me podrías orientar un poco por favor?, soy noob con microservicios y me he manejado más con una librería centralizada de modelo global donde suelo especificar todo y trato de tener esta perspectiva de microservicios ja ja :c

    • @uncledavescode
      @uncledavescode  ปีที่แล้ว

      Hola. Lenin
      Lo primero es que no hay que saber de todo, jejeje
      Poco a poco cuando comienzas a ver estos temas va cambiando tu mentalidad.
      En cuanto a Kafka no es necesario que entiendas todos los detalles, de como funciona, solo saber para los terminos del video en que es una forma de enviar mensajes entre los microservicios de una forma asíncrona.
      A grandes rasgos... imagina que quieres enterarte de lo que alguien habla, entonces te suscribes a su canal, cada vez que esa persona emite un mensaje, entonces te va a llegar a ti.
      Es algo bien reducido lo que te comento, pero es mas o menos la idea, te suscribes a un tópico, y todos los mensajes que lleguen a ese tópico lo vas a recibir.
      Es complicado explicar esos temas en un mensaje pero es solo para que tengas una idea. Kafka tomaría toda una serie de videos jajaja.
      Saludos

  • @danielhernannavarrotantale5394
    @danielhernannavarrotantale5394 ปีที่แล้ว

    hola tengo errores con e docker compose

    • @uncledavescode
      @uncledavescode  ปีที่แล้ว +1

      Hola… tienes instalado Docker Desktop?

    • @danielhernannavarrotantale5394
      @danielhernannavarrotantale5394 ปีที่แล้ว

      @@uncledavescode hola me lo descargue hace unos minutos pero cuando ingreso me indica este error: Docker Desktop requires a newer WSL kernel version. Yo uso windows 10

    • @uncledavescode
      @uncledavescode  ปีที่แล้ว +1

      Instalar Docker puede llegar a ser complicado, hay características de windows qué hay que habilitar. Hay varios videos en YT donde hablan de ese tema. Si se te complica mucho te recomiendo instalar la base de datos local y listo. Utilizar la misma base de datos para los tres microservicios. Saludos

    • @danielhernannavarrotantale5394
      @danielhernannavarrotantale5394 ปีที่แล้ว

      @@uncledavescode ok muchas gracias voy a tratar de revisar videos.

    • @danielhernannavarrotantale5394
      @danielhernannavarrotantale5394 ปีที่แล้ว +1

      @@uncledavescode Hola que tal ya logre instalarme docker pero cuando intento correr el docker-compose me sale este error: Error response from daemon: error creating temporary lease: write /var/lib/desktop-containerd/daemon/io.containerd.metadata.v1.bolt/meta.db: read-only file
      system: unknown
      Espero una ayuda.

  • @RochaNahuel
    @RochaNahuel ปีที่แล้ว +1

    Espero no quedarme ciego antes de terminar la serie jaja el fondo blanco no me deja hacer foco

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

    No tienes mas cursos en alguna plataforma?

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

      Hola.. la verdad es que apenas tengo tiempo para subir algo acá jejeje. Gracias por pasar.. saludos

  • @АлександрБугримов-о1е
    @АлександрБугримов-о1е ปีที่แล้ว

    👍👍👍👍👍👍👍👍👍👍👍👍👍

  • @JS.Erick..
    @JS.Erick.. 10 หลายเดือนก่อน +1

    yo viendo esto y apenas se lo basico de java jajaja:(

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

      Suele pasar. A veces me encuentro viendo videos de talleres de autos. jajaja

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

    eso es monorepo no va escalar cuando quieras trabajar con equipos debe ser multirepos

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

      Gracias por pasar por acá, recuerda que no estamos haciendo una aplciación 100% real, no hay 5 desarrolladores, soy solo yo y un video para YT, toma lo mejor. Saludos

  • @JuanCHB_88
    @JuanCHB_88 ปีที่แล้ว +2

    Hola profe una pregunta tienes curso en udemy? saludos

    • @uncledavescode
      @uncledavescode  ปีที่แล้ว +1

      La verdad es que ni lo he pensado. Saludos

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

    que ide usa

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

      Hola,
      IntelliJ IDEA, puedes usar la versión Community.
      Saludos