Тёмный

Creando una Aplicación Escalable - Microservicios con Spring Boot 

Uncle Dave's Code
Подписаться 2,8 тыс.
Просмотров 20 тыс.
50% 1

Microservicios con Spring Boot
Creando una Aplicación Escalable
Video 1/5
En primer video de esta serie sobre microservicios, crearemos una aplicación escalable utilizando Spring Boot.
Aprenderás paso a paso cómo diseñar e implementar diversos microservicios independientes que trabajarán en conjunto para formar un sistema funcional.
Exploraremos conceptos clave como la modularidad, la descomposición de la lógica empresarial y la comunicación entre los microservicios.
Además, te mostraremos cómo aprovechar las características de Spring Boot, como la inyección de dependencias y la gestión automática de la configuración, para agilizar el desarrollo y mejorar la eficiencia de tu aplicación.
¡No te pierdas este primer video lleno de conocimientos prácticos sobre la creación de microservicios con Spring Boot!
Saludos
github.com/unc...
Imágenes Personalizadas
/ suhaco_

Опубликовано:

 

8 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 101   
@user-jp3zm9rs5c
@user-jp3zm9rs5c 9 месяцев назад
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 8 месяцев назад
Me pasó con lo mismo con Character. Ahora ante la duda lo chequeo
@mure5437
@mure5437 5 месяцев назад
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 2 месяца назад
algo similar pasa cuando usas h2 e intentas crear la tabla user, debes especificar el name y poner users
@uncledavescode
@uncledavescode Год назад
❗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 10 месяцев назад
Muchísimas gracias por tus aportes
@monsterleagueescritas
@monsterleagueescritas 11 месяцев назад
Es increible la cantidad de tecnologias aplicadas en esta serie de videos!!
@EduardoCruz
@EduardoCruz 2 месяца назад
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 Год назад
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 Год назад
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 Год назад
@@uncledavescode pues en vez de 5 vídeos puedes hacerlos con más de 5 partes y que esté completo 😁
@ismaeltrocha6319
@ismaeltrocha6319 8 месяцев назад
@@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 8 месяцев назад
@@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
@patricknavarro191
@patricknavarro191 11 месяцев назад
Excelente tutorial, video 1 completado, vamos por más 😎
@davidxcode
@davidxcode 7 месяцев назад
Muy agradecido por esta serie de videos enriquecedores, eres grande Tío Dave!
@uncledavescode
@uncledavescode 7 месяцев назад
Gracias estimado. Saludos
@brandonv8525
@brandonv8525 11 месяцев назад
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 11 месяцев назад
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.
@geovannymesa2015
@geovannymesa2015 6 месяцев назад
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 6 месяцев назад
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 6 месяцев назад
@@uncledavescode Si señor es verdad, muchas gracias por la recomendación
@cesarivanurbinah.9884
@cesarivanurbinah.9884 3 месяца назад
@@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.
@Alberto_APC91
@Alberto_APC91 7 месяцев назад
Un contenido muy muy valioso, muchas gracias.
@uncledavescode
@uncledavescode 7 месяцев назад
Gracias a ti! Saludos
@manuonda
@manuonda Год назад
comenzando con estos cursos!! gracias
@uncledavescode
@uncledavescode Год назад
Gracias a ti, saludos
@JesusDiaz-tt1pw
@JesusDiaz-tt1pw 8 месяцев назад
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!!
@uncledavescode
@uncledavescode 8 месяцев назад
Gracias a ti.. Saludos!!!
@jagmig15
@jagmig15 6 месяцев назад
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 6 месяцев назад
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
@agustinaragon3311
@agustinaragon3311 2 месяца назад
Una consulta, es necesario modularizar en maven con microservicios? cuales serian las ventajas y desventajas?
@amoMiFlia
@amoMiFlia 8 месяцев назад
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 8 месяцев назад
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 8 месяцев назад
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.
@biancahoffmann2489
@biancahoffmann2489 5 месяцев назад
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 5 месяцев назад
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
@marton_
@marton_ 28 дней назад
Buenas! ¿Que versión de Spring Boot usamos a la fecha? 3.3.2 / 3.4 ?? Saludos, Gracias
@uncledavescode
@uncledavescode 28 дней назад
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
@MaiaDoroshenko
@MaiaDoroshenko 8 месяцев назад
hola exelente video , no tenes un curso completo en udemy de microservicios ?
@uncledavescode
@uncledavescode 8 месяцев назад
Hola Maia... gracias... no, no tengo cursos en udemy, creo que requeriría más tiempo de mi del que puedo aportar jejeje. Saludos
@wilfredomartel7781
@wilfredomartel7781 7 месяцев назад
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 7 месяцев назад
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 7 месяцев назад
@@uncledavescode gracias por tomarte el tiempo en aclararme la duda. Voy a investigar patron Saga.
@user-iu6yz6ck6h
@user-iu6yz6ck6h Год назад
👍👍👍👍👍👍👍👍👍👍👍👍👍
@nolimits700
@nolimits700 10 месяцев назад
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 10 месяцев назад
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. ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-U9-7zlKoA2c.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 7 месяцев назад
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
@JurgenMolina
@JurgenMolina 9 месяцев назад
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 9 месяцев назад
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 9 месяцев назад
@@uncledavescode muchas gracias 🫂
@_elJotita
@_elJotita 5 месяцев назад
que plugins tienes ?
@uncledavescode
@uncledavescode 5 месяцев назад
Para completar? GitHub Copilot
@jurgenhumbertomolinabaraja4996
@jurgenhumbertomolinabaraja4996 10 месяцев назад
Que es el docker-compose
@uncledavescode
@uncledavescode 9 месяцев назад
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
@JavierMedina26
@JavierMedina26 10 месяцев назад
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 10 месяцев назад
Si, siempre se me olvida. Saludos.
@oscardavidramirez5432
@oscardavidramirez5432 8 месяцев назад
por que en una parte del codigo se hacen las anotaciones de @getter y @setter en vez de data?
@uncledavescode
@uncledavescode 8 месяцев назад
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 8 месяцев назад
@@uncledavescode gracias amigo, por cierto muy buen video.
@uncledavescode
@uncledavescode 8 месяцев назад
Saludos!!!
@j3v1t0
@j3v1t0 Год назад
Que plugins utilizas que te completa el código?
@uncledavescode
@uncledavescode Год назад
Copilot, lo utilizo para agilizar un poco los videos. Saludos
@leninvalen123
@leninvalen123 9 месяцев назад
¿Cuándo se agrega el usuario de la orden amigo?
@uncledavescode
@uncledavescode 9 месяцев назад
no entendí que me quisite decir
@leninvalen123
@leninvalen123 8 месяцев назад
@@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 8 месяцев назад
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 8 месяцев назад
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 8 месяцев назад
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
hola tengo errores con e docker compose
@uncledavescode
@uncledavescode Год назад
Hola… tienes instalado Docker Desktop?
@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 Год назад
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
@@uncledavescode ok muchas gracias voy a tratar de revisar videos.
@danielhernannavarrotantale5394
@@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 Год назад
Espero no quedarme ciego antes de terminar la serie jaja el fondo blanco no me deja hacer foco
@uncledavescode
@uncledavescode Год назад
Sorryyyy jejejeje
@JS.Erick..
@JS.Erick.. 7 месяцев назад
yo viendo esto y apenas se lo basico de java jajaja:(
@uncledavescode
@uncledavescode 7 месяцев назад
Suele pasar. A veces me encuentro viendo videos de talleres de autos. jajaja
@ricardocastillo8004
@ricardocastillo8004 5 месяцев назад
No tienes mas cursos en alguna plataforma?
@uncledavescode
@uncledavescode 5 месяцев назад
Hola.. la verdad es que apenas tengo tiempo para subir algo acá jejeje. Gracias por pasar.. saludos
@JuanCHB_88
@JuanCHB_88 10 месяцев назад
Hola profe una pregunta tienes curso en udemy? saludos
@uncledavescode
@uncledavescode 10 месяцев назад
La verdad es que ni lo he pensado. Saludos
@yatausao
@yatausao 5 месяцев назад
que ide usa
@uncledavescode
@uncledavescode 5 месяцев назад
Hola, IntelliJ IDEA, puedes usar la versión Community. Saludos
Далее
Modus males sekolah
00:14
Просмотров 12 млн
HTTP Polling vs SSE vs WebSocket vs WebHooks
22:22
Просмотров 6 тыс.
Kafka Tutorial - Spring Boot Microservices
51:29
Просмотров 421 тыс.
Turns out REST APIs weren't the answer (and that's OK!)
10:38
Apache Kafka - Microservicios con Spring Boot
27:46
Просмотров 6 тыс.
SPRING BOOT + API REST + JPA + QUERY METHOD + DTO
37:24
Rastreo y Monitoreo - Microservicios con Spring Boot
39:08
Modus males sekolah
00:14
Просмотров 12 млн