1:45:24
2023-08-31 09:10:16
49:05
2023-08-31 11:33:11
1:08:01
2023-08-31 12:36:28
42:18
2023-08-31 15:49:43
1:01:14
2023-08-31 23:21:25
5:58
2023-09-01 09:15:11
11:59
2023-09-01 09:21:33
3:42:30
2023-09-01 09:34:32
8:12
2023-09-01 16:29:10
Visit the Spring Cloud grupo 1 course recordings page
WEBVTT--> Y te voy asistiendo, por favor. --> Ah, OK. --> Ya. --> Bueno, a ver, ¿en qué parte te quedaste? --> Ah, OK. --> Mira, eso de que te mandes a abrir de eureca es porque no --> estás en la rama que debe de ser. --> ¿Por qué lo sé? --> Porque la rama de Feature First Day es la única que no tiene --> esas dependencias de eureca. --> ¿O en qué microservicio estás, perdón? --> En el de user. --> Ah, entonces creo que ese es el que más bien habría que --> quitarle dependencias. --> Lo que tienes que hacer es dejar el POM. --> Acuérdate del archivo POM. --> Lo tienes que dejar también igual al archivo POM del de --> productos. --> Ahí hay unas dependencias que hay que quitar. --> Justo, por ejemplo, esa de eureca, no la ocupamos. --> Entonces, revisa el POM y tienes que dejarlo igual también al --> de productos. --> ¿Va? --> Sí, no de nada, de nada. --> Por ahí creo que Iván ya lo levantó. --> ¿Quién más? --> Creo que Jorge Ángel también. --> Francisco David ahí también va dándole. --> ¿OK? --> Va. --> Armando igual. --> César también. --> Ahí va. --> Sal. --> Bueno, de solo alarma. --> Pasar dos minutitos más. --> A ver, 40. --> Me le bajo porque suena muy fuerte esta cosa. --> OK. --> Mientras, voy a poner la norma de este módulo. --> Voy a poner la norma de este módulo. --> Voy a ponerle 15. --> Listo, va. --> Entonces, ¿cómo les fue si lograron levantarlo? --> O en qué se quedaron. --> ¿Quién siente así que ya casi la tenía? --> Pues yo creo que varios, ¿no? --> OK. --> A ver, entonces, voy a compartir mi pantalla. --> Y vamos dándole solución al ejercicio, ¿va? --> A ver, ¿me avisan cuando ven mi pantalla? --> Por favor. --> ¿Ya se ve? --> Ah, perfecto. --> Las deje que se quite eso negro. --> Ahí está. --> OK, bueno. --> Entonces, vamos a continuar con la parte de lo que es ya --> aplicar las librerías de Spring Cloud. --> El objetivo de hacer la práctica de ese ratito y no --> dejarla en conclusa. --> Yo vi que varios ya terminaron al menos un micro y lo --> levantaron, hicieron el CRUD. --> Entonces, eso está bastante bien. --> La idea es que pues logren identificar en los tres micros --> cómo están las capas que se desarrollaron, que se --> propusieron para este ejercicio. --> Estas mismas capas están, como ya lo vieron, en los --> tres microservicios, ¿no? --> En el de producto, en el de usuario y en el de órdenes. --> Entonces, la idea de eso es para que eso sea lo que --> Tenemos que ir teniendo muy menos complicación los de --> porque realmente la parte de añadir Spring Cloud o esas --> librerías solamente es pura configuración. --> O sea, ahorita que veamos, vamos a ir viendo ahora cada --> producto de los que ayer hablamos con detalle, y vamos --> a ir viendo que simple y sencillamente es añadir --> dependencias en los POMs, configurar y listo. --> realmente yo creo que se van a añadir dos o tres líneas en cada micro en cuestión de programación --> no no es este ya no es el objetivo es más bien configurar y bueno esa es la idea no que vamos --> ahorita a ir revisando del ejercicio pues bueno creo que este al ver que al menos un micro --> lograron levantarlo eso me da a mi entender que este que si dominaron la estructura lo único --> que sucede es que bueno yo comparto la misma opinión que ahorita van detener ustedes que el tiempo --> fue muy cortito no y está bien la verdad es que si está un poco holgado las 14 horas para ver todo --> el temario pero este pero bueno digo más bien está muy justo no el tiempo pero pero bueno al --> menos lo se logró hacer una una práctica levantaron un micro y pues bueno con eso --> es más que suficiente ahorita la forma de trabajar es este les voy a pasar ahorita las bueno yo les --> voy a mostrar mejor dicho como está funcional ya toda la arquitectura nuestra arquitectura de --> microservicios que si se logra ver ahí son como siete proyectos que se abren en paralelo que es --> básicamente lo que les platicaba ayer no en ventajas desventajas de las desventajas al menos --> yo así lo veo este para hablar de microservicios pues de entrada tienes que tienes que tener --> fierro no tienes que tener unas máquinas potentes que te aguanten abrir siete instancias de --> intel y jay con corriendo java corriendo maven descargando dependencias entonces este es costoso --> la verdad pero bueno ya que ya hay que acostumbrarse hablando de microservicios pues --> que así así se van a hacer las pruebas así se van a hacer los desarrollos los flujos lo --> que tú antes seguías en un solo en una sola clase probablemente no en varios métodos a --> mejor este en un solo en una sola instancia en un solo proyecto ahora lo vas a ver así --> en varios en paralelo entonces a veces probar los flujos pues bueno si resulta algo complejo --> hablar de la documentación pues también pero bueno sus ventajas desventajas también es --> que le brinda independencia cada componente a tu aplicativo lo que decíamos y mañana se --> me cae order services pues yo puedo seguir continuando con el alta de usuarios con la --> producción incluso mi front end va a seguir respondiendo se traduce en una mejor experiencia --> de usuario etcétera que digo al final para eso también de eso también hablamos el hecho de --> darle esa buena experiencia al usuario de entrar en nuestros en nuestros aplicativos creo --> que eso es lo más lo que con lo que buscamos todos no como desarrolladores que el usuario --> diga a que chida aplicación entonces este bueno ahora vamos a continuar con la presentación con --> con lo que teníamos ayer hablamos en cuestión e ilustramos nosotros de estos endpoints estos --> cinco endpoints con el microservicio de productos hicimos todo un cruz de hecho --> estos son cruz hicimos un cruz ustedes hicieron la práctica de hacer el cruz sobre usuarios --> que también ya ya quedó y este algunos todavía incluso avanzaron con el de órdenes otros ahí --> vamos como que a medias pero pero bueno al final el objetivo era ese no crear cruz y --> creo que ahí ya estamos todos en el mismo canal de de para que se ocupa no cada microservicio --> entonces este aquí pues bueno fue es una explicación de lo que se hace en cada directorio --> en cada paquete que conlleva el con la clase de controllers el modelo los de tos repositorios --> el service todo esto ya lo vimos incluso hasta le metieron ahí codificación entonces --> quedó más que claro la estructura pues así se fue armando en este caso se ilustra el --> microservicio de user service y bueno así fue la estructura este y listo entonces --> aquí bueno es lo mismo básicamente te va diciendo qué clase ir creando en cada en --> cada este paquete como cómo se van a ir llamando y demás no pero todo esto pues ya lo lo --> tenemos incluso están las ramas del repositorio pues para futuras referencias y con esto --> estaríamos cerrando el día 1 que fue lo que platicamos ayer levantar tres microservicios --> para hacer cruz no que son las relaciones de usuario producto y órdenes ahora vamos a ver --> digamos ya la parte de en materia es print cloud la iniciativa que nos que nos trae este --> framework y cómo lo vamos a ir aplicando en esos tres micros que creamos lo que son --> cruz normales y que bueno todos en alguna vez ya ya hemos trabajado entonces a esta le voy --> a hacer un zoom así como rápido este es un pequeño diagrama de arquitectura de la --> arquitectura que vamos a crear de lo que vamos a estar haciendo entonces ya más o menos --> habíamos hablado de un primer diagrama ayer es donde se veían las peticiones demás este --> es un diagrama un poquito ya más complejo más completo también en donde bueno se ilustra --> que el cliente que puede ser cualquier sistema externo incluso un front en una --> aplicación una app lo que sea un postman un cliente de postman hace una petición --> hacia alguno de nuestros microservicios y lo primero que va a caer la petición es en el --> en el gateway entonces vamos a estar viendo un producto que trae spring cloud que se llama --> gateway vamos a estar viendo lo que es ese gateway ese gateway después va y lo primero --> que tiene que hacer es autenticar esa petición esa petición la va a autenticar por medio de un --> servidor que nosotros proponemos que se llama keyclock y creo que es un servidor que --> precisamente que se encarga de generar tokens toda esta parte de los jwt es no es la --> intención explicar que es un jwt ni nada así simplemente es especificar que es una es un --> mecanismo que te da seguridad porque te brinda de autenticación va entonces este básicamente --> es si la petición tiene cierto token que es válido por o es generado desde keyclock --> entonces aplicas esa esa petición es segura de lo contrario te va a rechazar la petición y --> pues no se va no se va a cumplir va entonces este esta parte del mecanismo de seguridad se --> va a agregar aquí al gateway para que este prácticamente haciéndolo así todas nuestras --> peticiones van a estar este seguras por qué porque todo va a pasar desde el gateway o sea ya no le --> voy a pegar yo directamente al microservicio del usuario al de producto o al de órdenes --> sino que yo ya voy a tener un gateway que además un get para que nos ayuda a tener un --> gateway porque además hablamos del tema del balanceo de carga este uno de los mecanismos --> que tienen los gateways es eso no va a balancear la carga él se va a encargar de en función de --> qué tanto tráfico haya y hacia el microservicio que quieres este consumir va va a ir creando --> generando varias este instancias de ese de ese micro y las va a estar este regulando y va --> va a distribuir ese tráfico va entonces este una de las de las ventajas que tienen los --> gateways pues es también eso sale después que clock vuelve a pasar su respuesta hacia --> gateway y como te decía si todo está bien nos vamos ahora al servicio de eureka que es un --> servicio que tiene descubrimiento de servicios que es lo que hablamos un poquito ayer --> básicamente eureka es un servidor que es un mecanismo que nos permite identificar por --> medio de los names cuáles son los microservicios que están en la red de este servidor estos --> microservicios que se conectan a este servidor de eureka se llaman clientes entonces básicamente --> el gateway se conecta con eureka server porque necesita conocer quién es el microservicio al --> quien están al que le están haciendo la petición si acuérdense que la petición --> entonces en ese sentido el flujo va así flujo lineal y una vez que eureka server te dice --> identifica que en efecto la petición se trata de uno de los clientes a los que él tiene --> suscritos entonces ya la petición la puede distribuir ya sea al microservicio de usuarios --> al de productos o al de órdenes va entonces este si llega en cualquiera de esos vamos a --> analizar el flujo de productos es lo mismo en cualquiera de los tres cada microservicio --> de usuario producto y órdenes tiene incorporadas librerías que son las que nos marca aquí el --> temario no esas librerías son por ejemplo el fein el fein traen las tres la tienen --> incorporada ambos bueno todas las los microservicios tienen ribbon todos tienen --> his tricks y todos tienen slow para que sirven el fein client como ayer también hablábamos es --> para que se comuniquen entre ellos se van a poder hacer peticiones por medio de fein y --> se van a conocer van a poder acceder a ciertas funciones como por ejemplo obtener --> datos de desde un microservicio hacia otro ribbon va muy de la mano con la parte de --> permitiéndolos hacer balanceo de carga sale his tricks que les decía his tricks está un --> poquito desactualizado más bien es otra librería que básicamente implementa el mismo patrón el --> mismo concepto que es el de los circuit breakers y básicamente esto es para que cuando una se --> intente hacer una llamada fein client desde un servicio hacia otro este proporcioné un --> mecanismo de tolerancia fallos quiere decir que si en algún momento alguien falla en esa --> comunicación his tricks nos va a recuperar esa petición fallida va y por último viene la --> librería de es leo es leo se va básicamente lo que provee esta librería son unos --> identificadores unos numeritos una cadena de varios dígitos creo que incluso también --> son alfanuméricos y bueno esos números que son identificadores únicos se sirven se guardan --> o se inyectan en cada traza de las peticiones y esto sirve para que cuando tú detectes o --> bueno más bien la aplicación caiga en un estado de error en algún que haya habido algún --> problema por algo con por medio de ese identificador tú lo puedes buscar en un --> servicio que se llama si piquen y vas a poder hacer el rastreo de errores va es básicamente lo --> mismo que hacíamos manualmente de buscar en los logs no aquí no le tocó pedir a la gente --> infra los logs de los servidores como para estar ahí revisando bueno es eso pero un poquito ya --> más este más simple no por mí es una interfaz de usuarios y que ahorita la vamos a ver y --> es decir que nosotros vamos a pasarle esa traza le vamos a pegar ese número y vamos a encontrar --> ahí todo el detalle del problema que se origina va entonces este es un mecanismo para búsqueda --> de errores monitoreo va y después de que la petición llega al microservicio --> bueno después de que el microservicio termina de hacer esto lo lleva al bueno más bien aquí --> el componente de spring cloud bus que en este ejemplo tenemos nosotros como cafca este siempre --> está este siempre está activo va entonces cafca siempre le está proviendo de sus configuraciones --> en tiempo real a través de lo que se conecta aquí en el config server y nuestro config server que --> se conecta a nuestro config rep que básicamente era lo que veíamos ayer en un ejemplo este --> nosotros en el config repo tenemos archivos de configuración sí que el config server los --> va a estar bajando el config server igual es un servicio es un este es un microservicio que --> sirve como servidor y entonces en este caso usuario productos y órdenes son clientes --> conectados a ese config server y el intermediario entre ellos es cafca que funge como un bus --> entonces cada vez que tú hagas un cambio aquí en github este la los cambios se van a ir --> pagando en esos archivos de configuración hacia los microservicios de producto órdenes y --> usuarios va tenemos aquí la ilustración de sipkin también para el seguimiento de --> de errores y bueno al final de que todo esto se cumple la petición regresa al --> gateway ya con una respuesta aquí aquí viaja un request aquí inicia un request hasta acá --> llega un response no llega una respuesta que se la propaga pues a nuestro a nuestro cliente --> básicamente este es el flujo que que vamos a estar revisando vamos a estar armando y --> vamos a ir creando la arquitectura vamos a ver de aquí se van a identificar nuevos --> microservicios es decir hay que crear nuevos proyectos hay que darlos de alta y otros --> nada más son librerías que se agregan en los pom este o en los este en los --> properties entonces esa es básicamente la configuración digamos explicada de forma rápida --> no sé si más o menos quedó clara el cómo llegaría a ser la petición cuáles son los micros bueno --> más bien los productos involucrados en en este flujo o si tengan alguna duda o comentario de --> este diagrama --> o probablemente sobre la marcha no irán saliendo las las dudas --> perfecto va pues bueno entonces este diagrama si ya tienen la presentación que según entiendo --> ya lo pueden estar abriendo este en cada ocasión que repasemos porque vamos a ir repasando --> cada uno de los componentes lo vamos a ir este revisando va este bueno ahorita ya sonora --> la alarma del primer pomodoro hay que tomar cinco minutos entonces este bueno para hacer más --> los números la matemática más sencilla a las 10 con 5 10 con 5 nos volvemos a junta --> les parece y continuamos con el temario --> va entonces ahorita nos vemos en 5 minutos bueno 7 8 --> listo entonces ahorita nos 10 con 5 por favor --> listo a ver entonces voy a compartir pantalla y me avisen por fácil a ver --> adelante --> ok a ver para revisar eso vamos a meternos --> y se quita esto negrito --> sí --> en en que este micro me lo pediste creo que lo está ah ok entonces mira ese de --> orden en la base de datos este desde la base de datos lo vamos a encontrar como --> definición este entonces si te fijas la fecha la mapeamos con un campo date en la base de datos --> este y en el proyecto lo vamos a agarrar como en el de órdenes el modelo lo agarramos --> acá fíjate que tan vamos a hacer tanto el modelo como el de to entonces el modelo de fecha --> lo tienes igual con un campo date y también justo en el en el de to lo vas a encontrar --> con la misma a no este este este de aquí no tiene él no tiene la fecha no es cierto --> perdóname es que este es el usuario hay que revisar el de orden el de orden lo tienes --> acá igual es con date va así es como salió el mape de preferencia así porque te sirve para --> mapear menos y te fijas así es como están definidas en la base de datos y así es como --> lo de lo trabajarías aquí en el internamente en el producto digo en el proyecto en la --> base de datos y lo que sirve más que nada para eso para que tú lo puedas mapear y trabajar --> así como lo dicta digamos la buena práctica de nomenclatura quien lleva y lo maneja y de --> todos modos está mapeando bien con las tablas de la base de datos --> en donde perdón en el de orden de to otras anotaciones --> así es aunque esto esto se da porque ya ve el de to es un objeto que llega desde el --> para eso para eso las mapear porque aquí de este lado son llegan llegan en formato --> jason entonces por ejemplo si mandas un post que es donde mejor se ve este las --> propiedades y te fijas llegan así y eso y son jason son propiedades jason entonces --> para eso se utiliza esa notación para que tú en la aquí en el en el en el --> de to las puedas mapear y no haya ningún ningún tema aquí está el mapeo --> sí así es todo eso está para que ahí te va que te guíes eso lo encuentras en el de --> producto y ese con ese de producto puedes levantar el de usuario y el de --> orden si acaso el único paso adicional que hay que hacer en el de --> orden es crear dos de teos porque necesitas conectarte en este en algún --> momento hacia el producto y a su usuario cuando haces una pausa y --> entonces si acaso es crear estos dos de teos y estos de teos se basan en los --> modelos de los otros micros que ya creamos en sus de teos si acaso es la --> única diferencia del de orden pero pero bueno igual si quieres ver el --> ejercicio ya completo en las ramas de develop de cada micro ya ya está y en --> su totalidad va a cualquiera lo puede ver ahí sale --> bien entonces no de aquí va entonces este vamos a --> continuar ok va entonces este siguiente punto ahora sí empezamos con todo lo --> que es la familia de spin cloud el primero de los de los este de la --> familia que vamos a estar viendo el primer producto es el config sale esta --> librería se llama spring cloud config entonces qué es lo que hace un cloud --> config es lo que ya habíamos platicado un poquito ayer una embarrada --> básicamente esta propuesta es para que nosotros podamos centralizar las --> propiedades de los repositorios perdona de los microservicios en un --> repositorio en un repositorio lo podemos este podemos ahí guardar los --> archivos de configuración y a través del cloud config podemos servirle a los --> que son clientes que se que se comunican con este cloud config este --> podemos proveerles esos estas configuraciones esos archivos de --> configuración y eso lo vamos a hacer a través de un mecanismo que se llama --> un bus y ese bus en este ejercicio la propuesta que traemos es Kafka va --> entonces digamos el flujo es así nosotros vamos a guardar en un --> repositorio archivos de configuración el cloud config se va a conectar a ese --> repositorio si y ese cloud config va a servir como un servidor --> todos los clientes que se conecten a ese servidor de configuración que --> en este caso hablamos de clientes nos referimos a nuestros servicios de --> órdenes de productos y de usuarios se van a conectar con él con esa --> configuración y van a estar van a estar este conectados por medio de un bus --> que se llama Kafka ese bus va a estar escuchando todos los cambios que --> en el en los repositorios y cuando ocurra un cambio ese bus va a propagar --> el valor de esa propiedad que se cambió hacia los repositorios y todo --> eso lo va a hacer de forma dinámica es decir no voy a tener que apagar --> ningún servidor no voy a tener que hacer nada de ese tipo de maniobras va --> entonces digamos igual podemos hacer aquí una pequeña anotación nada más --> como para que se ejemplifique tenemos por un lado tenemos el --> repositorio en github que bueno puede ser cualquier repositorio no en este --> caso nosotros estamos proponiendo usar github de ahí nosotros tenemos la --> conexión con el config server de hecho este repositorio se le conoce también --> como config rep es un proyecto es un microservicio bueno no este no es un --> microservicio es un proyecto que se va directamente a un repositorio de --> después nosotros tenemos nuestro config server que está este conectado con --> ese config con ese config rep por medio de una propiedad que es este una url en --> un archivo de propiedades de aquí vamos a configurar una propiedad y con --> y le vamos a pasar la dirección de este repositorio eso es lo que les --> decía que ya los micros nuevos que vamos a estar creando ya nada más es --> configuraciones va entonces en el archivo de configuración de este --> config server le vamos a especificar la url de este repositorio github en este --> repositorio github vamos a tener varios archivos de configuración por --> ejemplo vamos a tener el user properties haciendo alusión a que se --> va a conectar al digo que son las que son las propiedades del --> microservicio de usuarios también vamos a tener el product properties --> por ejemplo igual haciendo alusión de que son las propiedades de --> configuración del microservicio de productos y lo mismo para el de órdenes --> va el config server entonces funge como un este un servidor y vamos a tener --> varios clientes en este caso el el user el microservicio de usuarios --> si también vamos a poder ver el microservicio de productos y como para --> que me quepa todo y no voy a agregar el de órdenes pero pero bueno también --> se sobreentiende no que también entraría como cliente entonces a estas --> estos este a este microservicio porque este si es un microservicio que se --> va a llamar config server le vamos a agregar una librería que --> justamente es la librería del config server de spring cloud le vamos a --> agregar esta librería spring cloud config eso va a hacer que él se --> convierta en un servidor y a estos de acá les vamos a añadir una --> librería que se llama spring cloud config client ésta es el estos tienen --> el client y ésta tiene la librería config server es lo que digamos los --> haría diferentes nosotros configurando eso y diciéndole por medio de los --> archivos de configuración a qué servidor de configuración se tienen --> que conectar con eso se haría esa liga y entonces así es como estaría --> funcionando entonces estos microservicios el de usuario y el de --> productos por medio del config server van a obtener sus archivos de --> configuración o propiedades van a obtener ya sea el usuario van a --> obtener el de productos y las van a cargar cuando el microservicio levante --> va a cargar esos valores va y digamos que estas líneas que se ven --> acá digamos se puede apreciar que en este caso esto es el que funge --> como bus va entonces en este escenario nosotros hablábamos de que es Kafka --> Kafka va a funcionar va a funcir como un bus y va a estar siempre escuchando --> todo lo que sucede aquí en el en el repositorio va lo vamos a estar --> usando como emisor de eventos cuando escucha que hay un cambio es de --> aquí nos referimos con un cambio pues a un commit cuando yo haga un --> commit en alguno de estos archivos de propiedades cambiando por ejemplo un --> valor imagínate que aquí tú tienes este una propiedad que se llama no sé --> database no el el el connection string y tiene un valor cierto valor y después --> tú haces un commit sobre este valor y lo cambias a este otro ese bus va a --> escuchar y va a detectar que hubo un cambio en este archivo lo va a --> apagar hacia el microservicio de configuraciones y a su vez lo va a seguir --> propagando y se va a ir hasta hasta asignárselo al microservicio --> correspondiente va entonces así es como se hace la propagación de los --> archivos de configuración de forma dinámica va sin que yo tenga que --> apagar alguno de estos microservicios no sé si más o menos el --> ojo quedó un poquito más claro y si sí pues pasaríamos a ver cómo se ve en --> la en la práctica --> o quieren que lo repasemos con más detalles --> ok perfecto pero más o menos en general la idea quedó un poquito clara --> si fue clara la idea de para qué sirve este config server este bus --> entonces vamos a verlo en la práctica y probablemente ahí salgan --> que en poquito más claro va entonces este aquí en la presentación --> se nos va a ir explicando cómo configurar el config server va el config --> server literal es un nuevo microservicio este igual como dimos de --> alta el microservicio de producto y si se acuerdan que nos metimos a esta --> página de spanking sializer la vuelvo a abrir como para que la --> recordemos esta página aquí es para generar proyectos de forma online va --> entonces igual aquí te va diciendo la presentación cómo vas a ir este --> metiendo el nombre de la propia del proyecto la versión y toda la --> metadata que necesitamos que para que el lenguaje ocupa hacerle empaquetado en --> la versión de spring todo como lo hicimos en el microservicio de --> productos va así mismo se va a ir creando el --> el archivo el microservicio perdón se llama config server si y cuando ya --> terminas de crear no la estructura inicial del proyecto es esta va tú vas --> a tener un proyecto que se llame de esta forma con fix server y igual que --> e igual que los otros microservicios vas a tener una clase que se llama --> config server application que es la que tiene el método me va que es donde --> va a iniciar y nosotros podemos crear una carpeta bueno --> también ya te la incluye la carpeta de resources y dentro vemos una una --> chica que se llama aplicación llame que bueno aquí básicamente te --> explican para que para que se ocupa cada este cada clase va cada chivo --> bueno vamos a hacer una pauta aquí vamos a ver cómo se ve este archivo --> config server entonces yo me meto aquí al a mi máquina y este archivo este --> microservicio perdón ya también está aquí adentro en el repositorio --> si te metes a la pestaña de repositorios vas a ver uno que se llama --> config repo y otra que se llama config server ahí hay que buscar no está --> acá entonces el que nosotros creamos por así decirlo en spring --> es este config server va es el config server entonces este este config server --> es el que yo descargo a punto a la rama de develop yo ahorita lo apunto a la --> rama de develop para que ya se vea toda la configuración pero al igual que --> ayer existe la rama feature first day que es de donde ustedes lo van a --> bajar al final al finalizar de nosotros en toda la práctica desde ahí --> la idea sería que lo puedan generar que se pueda replicar entonces nada más --> hay que completarlo basándonos en la rama de develop entonces yo ahorita lo --> voy a bajar en develop de hecho todos los micros yo ya los voy a apuntar a --> develop para poder hacer las prácticas va poder mostrarlas entonces --> el primer proyecto que ya se creó en spring initializer es config server --> que siguiendo aquí el tutorial te dice cómo crear la metadata y demás y --> ya lo puedes abrir entonces con del y yo lo pongo incluso los tengo aquí --> ordenados desde el principio al fin si te fijas hay uno antes que es el config --> repo pero de ese todavía no hemos hablado este nada más lo mencioné así --> como a nivel teórico este este no es un micro simplemente es un proyecto --> que guarda archivos de configuración ahorita lo explicamos pero realmente el --> primer microservicio nuevo a crear es este config server va entonces siguiendo --> el tutorial ahí te va explicando cómo vas a crear el proyecto cómo viene la --> metadata sí y por ejemplo esto esta metadata de nosotros ya la podemos --> encontrar en nuestro archivo pom va entonces te vas a encontrar el --> artefacto la versión la versión de spring boot las dependencias para eso --> entonces yo abro mi archivo pom cuando yo lo creo desde spin initializer y me --> va a generar todo esto va me va a decir que la versión es de spring la 263 me --> dice el group es con atnt el artefacto es el config server el --> nombre es config server la descripción también se va a guardar la versión --> de java la versión de spring cloud y bueno aquí ya viene toda la --> configuración y bueno vamos a ir viendo ahorita cómo se añaden estas --> dependencias hasta ahorita es mostrar este archivo pom y la clase que nos --> decía acá no en el paquete principal tienes esta clase que se llama config --> server application contiene nuestro método main ahorita no veamos más que --> esta esta anotación que es la que ya habíamos visto ya hemos trabajado en --> nosotros tres microservicios no la de spring boot application que lo que --> es tratar esta clase como una aplicación de spring va entonces él va --> a esperar muchos archivos de configuración que tú cumplas con con --> sus prácticas va entonces una de esas prácticas es que va a encontrar en una --> carpeta que se llama resources va a buscar si existe un archivo bootstrap --> yamel una aplicación yamel o una aplicación properties en este caso pues --> yo por simplicidad elegí el formato yamel y va a entender que --> existe una una configuración en este archivo --> este archivo application nos va a cargar cuando yo levanté el proyecto esto es lo --> primero que carga cualquier microservicio es lo primero que carga --> las propiedades entonces aquí en estas propiedades este ahorita las --> vamos a repasar porque ahorita en este punto el tutorial simplemente te --> dice que existe un archivo yaba el main y tu resorce es aplicar --> este ahora vamos a ir viendo que contiene cada cosa --> ahora eso fue hablando del microservicio config server va ahora nosotros aquí en --> esta parte te dice que hay que configurar un repositorio en git ese --> repositorio en git o en este caso nos agarramos su sabor que se llama --> github vamos a guardar archivos de configuración de los microservicios --> entonces en este repo vamos a guardar en vamos a conseguir una estructura --> similar a la que nos están proponiendo acá entonces yo si te fijas --> este config repo no es un proyecto de yaba no lo voy a crear con --> spring inicializer simplemente es un repositorio entonces yo me puedo venir --> directamente aquí en la interfaz de de github --> y dar de alta un nuevo repositorio llamarlo config repo de hecho así me --> lo pide en la práctica y en la rama que yo elija yo en este caso igual --> agarré tres ramas y vamos a hablar de develop en esta rama de develop yo --> estoy guardando archivos de configuración si te fijas solamente --> guardo archivos guardé un yamel que se llama car service un order --> service un product service un user service estos archivos de --> configuración como para que se vaya amarrando la idea son los mismos o --> deberían de ser en teoría es como para que lo mapeen es el mismo archivo de --> configuración que tiene cada microservicio en su carpeta de --> application properties en el resource es este archivo o sea la idea es que --> esto no esté aquí sino que más bien esté en un repositorio de enguijo y --> github distribuido para que pues porque te puedes encontrar a lo mejor --> mejor organización porque a lo mejor no quieres que esté aquí --> y en el proyecto la cadena de conexión a lo mejor hay una frase muy delicada --> para un token no sé algo no ahí ahí depende de cada compañía sus --> necesidades pero la alternativa es eso que tú lo puedes guardar en un --> repositorio e incluso a un repositorio tú le puedes meter mecanismos --> de seguridad pues ya un poquito más este avanzados después meter este por --> ejemplo autenticación de doble factor lo puedes meter creencia por bueno --> commits por gpg por autentic por por este por o out entonces este esto ya --> empieza a ser como que un poquito aislarlo le brinda más seguridad a --> través de github es que y bueno esa es la idea básicamente de guardar de --> crear un config repo y tener un config server que yo pueda guardar todo --> de forma distribuida y que además las propiedades y los valores que yo vaya --> agregando acá los pueda cambiar a través de comics no si yo quiero hacer --> un cambio sobre alguna propiedad acá solamente bajo el proyecto bueno más --> bajo el repositorio cambio el valor lo subo con un commit y en automático --> se va a propagar a mis microservicios entonces eso es ese es el relajo de --> estamos revisando va entonces este este repositorio que se llama config repo se --> crea de esa forma se crean aquí los archivos y ese es el que yo bajo y de --> hecho es el que les decía que está hasta acá como primer este proyecto yo --> lo puedo abrir ese repositorio aquí en en intel y porque no es más que un --> una carpeta que guarda archivos no no es un yaba no es nada no va esto --> no va a correr no va a compilar simplemente va a guardar estos archivos --> va entonces este yo estoy apuntando aquí a de lo que si te fijas pues --> tiene los archivos de configuración de órdenes de producto y de usuarios --> que son los que hemos estado este ocupando va esta es la función del --> config repo y bueno eso es lo que nos dicta aquí la la diapositiva va --> crear esta estructura de de de archivos bueno aquí se ven incluso un poquito --> más pero creo que lo puedes almacenar incluso en carpetas no como nuestro --> ejercicio era muy sencillo pues bueno directamente --> después ahora sí vamos a hacer que este config server se comporte como tal --> como un config server de un producto de spring cloud para eso yo tengo que --> llegarle ciertas configuraciones en su archivo application yaml una de las más --> notorias es yo le tengo que decir a este config server de dónde tiene que --> cachar esos archivos de configuración y para eso nos provee este esta --> propiedad que se llama spring cloud config server git uri va esta --> propiedad en un formato yaml se ve de esta forma y al meter esta --> configuración tú aquí en donde dice uri obviamente tienes que pasar la url del --> repositorio en donde estás trabajando cuál repositorio el que creamos en el --> paso anterior donde están los config el config rep vaya entonces eso se ve --> así yo me voy aquí a mi config server --> y en el archivo de propiedades que es este aplicación yaml si te fijas --> aquí se ve la propiedad que nos que nos indica ahí la presentación --> déjame que no se traga en mi mouse es este va entonces hay muchas otras --> propiedades por ejemplo también guardas un name que es el config server --> este y está ocupando si te fijas aquí la propiedad uri y esta uri si --> te fijas es la que yo tengo en mi repositorio que acabo de mostrarles que --> es la misma de acá --> este va la misma url para entrar a mi config rep --> ésta si te fijas esto pues me lleva a main como yo le digo que que se --> cambia entre ramas ah bueno hay otra propiedad para que me --> cache las los archivos de propiedades que están en la rama de --> develop no en la de main y esa propiedad es esta otra de acá que se --> llama de fall label yo metiendo esta propiedad de fall label diciéndole a --> qué rama este pues con eso sabe la configuración que se --> tiene que ir a este micro a esta rama y de ahí va a cachar los --> archivos de configuración va eso es este todo lo que llevamos hasta --> la presentación esa configuración después ya tengo que este --> perdón un momento --> entonces aquí la configuración --> de los microservicios ya vamos a estar configurando digamos el user service --> el order service para que este se comporten como clientes de este --> garchivo de este de este proyecto de este config server y para eso pues --> tenemos que estar definiéndole esta otra configuración que es el spring --> cloud config client para que se vaya a la dirección del config server que --> nosotros vamos a levantar aquí nos dice cuáles son las propiedades y en --> este archivo este vamos a estar trabajando entonces lo primero que hay --> que agregar es esta dependencia este para que se se pueda comportar como un --> config client va entonces esto lo puedes ver tanto en el usuario producto y --> órdenes --> es bueno entonces el son los mismos microservicios que ya habíamos --> trabajado el usuario producto órdenes yo aquí en este caso voy a --> y si te fijas yo como te decía ya estoy en débelo para que yo pueda mostrar el --> archivo el ejercicio completo y aquí adentro pues vas a ir agregando las --> librerías que te pide en este caso son todas estas de spring cloud para --> este su configuración no entonces con esto se va a estar comportando como --> como un cliente de que se va a conectar a un config server va entonces este --> este archivo de al instalarle esa dependencia de spring cloud ya ya me lo --> va a transformar en un cliente y con en el archivo de propiedades yo le voy --> a decir que esas configuraciones las tome de un microservicio que se va a --> y que se levanta el puerto 88 88 por eso también es importante que hay que --> volver a mencionar eso que cada microservicio debe tener un name como --> por ejemplo este iba a tener un puerto en donde se va a levantar si te --> fijas este está levantando el puerto 88 88 va que es este --> lo que --> la dirección en donde se va a conectar va entonces este así es como sería esa --> liga ese este config server se levanta en el 88 88 y por ejemplo el de --> producto se está levantando en el puerto vamos a buscar su puerto en el --> 80 82 entonces no tienen problema de levantarse en la misma máquina es --> como también un poco buscar eso no que no choquen los puertos porque si --> no pues va a darte problema de puertos y listo esa es la configuración que se --> agrega entonces ya este cliente al tener la dependencia de spring cloud y al --> meterle esta propiedad ya está ya sabe que se tiene que conectar a un config --> server en esta dirección si yo ahorita hiciera eso y los intentar a --> levantar ya por separado ya ya ya empezaría a tener esos errores que --> ustedes ya experimentaron porque aquí me está pidiendo primeramente cuando yo --> levantara el product service ya no puedo levantar el product service de --> forma individual porque va en sus archivos de configuración lo primero que --> va a hacer es decir ok voy a buscar todos tus configuraciones aquí en este --> en este micro servicio pero si yo no tengo levantado antes ese --> config server pues va a estar mandando un error de que no puede --> de configuración entonces aquí ya empieza a llevar un orden yo ya --> necesito tener mi config repo listo para y mi rama lista un config server ya --> configurado para que se conecte a esa uri que esté lista y ya que yo levanté --> este config server entonces ya podría yo levantar el micro servicio de --> productos para que pueda cachar sus archivos de configuración va es así --> como funciona la configuración y es un poco lo que les decía o sea ya para --> convertirlos o para utilizar los los productos de spring cloud dentro de --> nuestros microservicios ya nada más vamos a estar agregando dependencias y --> configuraciones va entonces este --> bueno la otra parte es lo del bus ya daríamos la práctica pero hasta --> ahorita no sé queda alguna duda o queda un poco ya más claro el flujo de de --> cómo cómo se habla bueno a qué nos referimos con con el config server el --> config repo y cada uno de nuestros microservicios son clientes de ese --> config server para que para que se ocupa ese config server queda queda un --> poco más claro --> perfecto va que va en todos modos si hay este preguntas me avisan o si de --> pronto me estoy yendo muy rápido igual me me avisan y lo volvemos a --> explicar bien entonces este esa es como la idea de --> el producto este del config server y config repo y ahora --> bueno ya en la práctica lo que nosotros necesitaríamos es pues --> utilizar esos esas propiedades va ese es el objetivo de que tenga archivos --> de configuración para que esas propiedades yo las pueda utilizar esas --> propiedades yo las voy a utilizar o yo puedo acceder dentro de mí dentro de --> proyecto puedo acceder a esas variables a esos archivos de configuración por --> medida de una anotación como arroba value hay hay otros métodos hay --> otros mecanismos pero bueno ya aquí vamos a exponer este en esta --> anotación --> y vamos a ver este ejercicio entonces aquí creo que en la práctica se ve --> más este más claro entonces nosotros ya hicimos la --> configuración de un config repo ya configuramos también un config server --> que se conecta a ese config repo y ya hicimos un cliente que es product --> service que se conecta a ese config server va para traer sus archivos de --> propiedades entonces si tú te fijas vamos al repositorio para que se vea --> ahí un poquito más claro en el config repo yo tengo un archivo que se llama --> product service va que es el que le va a servir al microservicio de --> entonces este product service tiene estas propiedades --> y si te fijas tiene una propiedad que se llama example property o la desde el --> microservicio de productos va es una propiedad que se llama así example --> property y tiene este valor entonces en las colecciones de postman que les --> hay una colección que se llama config server --> con estos endpoints yo puedo obtener las propiedades de cada microservicio que --> está añadido como un cliente de este config server ahorita vamos a repasar --> estos gets solamente que de hecho repasando uno son es lo mismo los --> otros dos y el post lo vamos a ver para otra cosa después se las voy a --> decir para qué es pero entonces ahorita este get de productos yo con --> este endpoint puedo mandarlo a ejecutar si te fijas es en el --> 88 88 que es donde está corriendo mi config server --> entonces yo le puedo decir dime cuáles son las propiedades en de mi --> microservicio que se llama product service y me va a traer todas las --> propiedades que tiene alojadas estas propiedades si tú te fijas son las --> mismas que están aquí adentro en mi directamente aquí en mi servidor en mi --> en mi repositorio --> y tú estás viendo el server el puerto el data source y la propiedad example --> property que de hecho aquí está son las mismas eso es otra forma de --> corroborar que nuestro hay una hay una hay conexión con nuestro con --> entonces qué es lo que vamos a hacer yo aquí en el product service puse una --> funcionalidad para que podamos traer el valor de una de esas propiedades --> entonces el valor de esas propiedades lo voy a traer lo tengo aquí descrito --> en el controlador te fijas en el controlador yo estoy utilizando una --> notación se llama roba value y le estoy diciendo que vaya y traiga el valor de --> una propiedad que se llama example punto property yo al hacer esto con --> esta notación y como la configuración de spring funciona en automático al --> hacer esto a esta variable le va a estar asignando el valor que encuentre --> en las propiedades que se llama example property esto lo va a leer en --> su archivo de configuración entonces tú puedes pensar que esto lo va a leer de --> este archivo porque este también es su archivo de configuración pero si tú te --> fijas aquí no existe esa propiedad incluso yo le puedo decir aquí example --> y no la encuentra porque no está definida aquí no está definida en este --> archivo de configuración local que tiene aquí este archivo se encuentra --> más bien en el repositorio se encuentra en el en el archivo que está --> en el repositorio en el config repo en el archivo product service aquí está --> pero aún así la va a leer porque porque cuando estamos haciendo toda esta --> conexión al decirle que vaya al config server --> y de ahí me traiga archivos de propietad sus archivos de propiedades --> ahí es donde ahí es donde la encuentra y la puede leer entonces con esta --> notación arroba value yo puedo ocupar y setear el valor aquí en esta --> propiedad si y entonces esta propiedad yo le estoy diciendo que la imprima --> cuando estemos haciéndole un get por id a un producto si te fijas aquí va --> a haber un logger y va a imprimir la propiedad entonces vamos a hacer ese --> ejercicio yo ahora para imprimir lo que está actualmente en el --> repositorio si te fijas yo aquí en los logs le busco la palabra hola o --> el valor de la propiedad y no lo encuentra entonces está está bien para --> que podamos hacer la práctica ahí está limpio incluso ya limpia los logs --> y lo que voy a hacer es para que se active ese log tengo que pasar por --> este método va que es el de obtención de producto por id entonces --> yo me voy aquí al product id y si te acuerdas estábamos acá en nuestras --> lecciones yo le digo que me traiga el 3 cualquier este producto realmente --> funciona y ahí nos da un 200 si nosotros teniendo esa petición esa --> respuesta pues sabemos que que lo que lo dio entonces este aquí ahora si en --> los logs yo puedo volver a buscar la palabra hola si y ahí me lo va a --> encontrar de hecho si te fijas imprime el valor de la propiedad no --> hasta ahí no hay no hay nada del otro mundo y esto lo está imprimiendo de lo --> que está obteniendo del repositorio porque así lo así lo configuramos --> entonces nos está trayendo esta propiedad entonces ahora el objetivo de --> esta práctica es ver cómo haciendo un cómic y yo cambiando este valor y --> volviéndole a pegar a este micro servicio de producto ahora el valor va --> a cambiar de forma dinámica sin que yo tenga que reiniciar el micro --> servicio este es el objetivo del del bus del cafca en este caso yo estoy --> corriendo aquí mi instancia la misma de ayer y si te fijas bueno ahí nada --> más se denunció que se instaló cafca y y su equipo pero bueno para eso se --> ocupa para que funge funja como un emisor de eventos va entonces cómo --> yo configuro esa parte igual en mi config server yo le tengo que decir que --> se habiliten los bus los buses o bueno el bus yo habilitando esta propiedad en --> mi config server este le estoy diciendo que haya un algo o sea un bus que --> esté activo para que esté escuchando cambios y que el refresco de esas --> propiedades también se esté habilitando --> y bueno de las propiedades que estoy esté agregando también son estas no es --> todo esto también viene ahí en la presentación ahorita nada más lo --> muestro para que sea más este más práctico va básicamente le estoy --> diciendo que cafca en donde en donde está corriendo que es en el 90 92 --> eso también lo vamos a encontrar nosotros en nuestro archivo que ya --> habíamos trabajado que es el que me generó el contenedor si te --> recuerdas además de generarlo de postgres yo le pedí que contuviera --> también ese contenedor cafca y cafca lo estoy corriendo en localhost 90 92 --> va entonces este es por eso que yo aquí apunto al localhost 90 92 y le --> estoy diciendo que este actúe como un cloud con como un bus va yo con esto --> además para terminar la configuración de nuestro config server le estoy --> añadiendo estas dos propiedades ahí vienen los comentarios para que para --> que se ocupan y básicamente aquí les voy a hacer mención de lo que son los --> este los endpoints que se llaman actuators va entonces hasta ahorita --> ya está toda la configuración yo ya estoy incluso diciéndole que haya un --> bus en cafca listo para que cuando haya algún refresco en este en este --> repositorio cafca lo escucha va entonces para para para esta parte --> en la en la práctica digamos en un mundo real cuando yo hiciera aquí un --> commit solito cafca debería de escuchar y propagar el cambio pero para --> hacer eso también se tuvo que hacer una configuración adicional aquí en el --> repositorio y tendríamos que haber conectado la parte de github no con con --> ese cafca que tenemos aquí de forma local eso eso realmente está un poco --> ya más complejo de elaborar en este para este tiempo que teníamos y --> mostrarlo entonces lo que se está haciendo uso también esa es la --> finalidad mostrar de hecho una de las características que es que ya --> viene incluida con el config server si son los endpoints que se llaman --> actuators entonces ese refresco que se haría en automático por medio de un --> commit que tú hagas un cambio en la propiedad y que cafca lo lo --> interprete y lo propague eso nosotros lo vamos a hacer más bien a través de --> un de un microservicio perdón de un endpoint que se llama actuator --> este este endpoint que viene en en las en se levanta con las --> generaciones del config server si te fijas aquí en el config server en las --> propiedades que ahorita mencionaba yo le dije que se activarán los actuators --> con esto entonces yo al activar estas propiedades en automático voy a poder --> tener un endpoint que es este que le pego al 88 88 sigo sigo en el config --> server y al hacer esto lo que va a hacer es es como si yo hiciera que --> es como si yo forzara cafca a escuchar lo que está en el en el en el --> repositorio lo que harían de forma en automático cuando se ejecute por --> ejemplo un pipeline o algo así yo lo voy a forzar con este microservicio --> perdón con este endpoint entonces un escenario imagínate que también se --> cayó en el pipeline que que hace que se conecte el repositorio con cafca --> yo teniendo este endpoint de actuator puedo forzar a que aún así siga --> funcionando entonces este este endpoint es bastante útil --> entonces ahora ahora sí lo vemos en la práctica --> yo aquí en mi en mi repositorio que se llama config server perdón config --> repo voy a hacer un cambio en mi en mi propiedad de producto entonces yo --> voy a poner aquí un por ejemplo hola y adiós voy a agregar esa propiedad o sea --> le cambié el valor ya no es hola ahora es hola y adiós desde el microservicio --> de productos yo le voy a dar aquí guardar --> pero si te fijas el cambio lo estoy haciendo directamente en el --> repositorio lo que yo tendría que hacer es me voy a meter a ese a ese --> repo que de hecho ya estoy le voy a dar un estatus para ver qué que --> y aquí te dice que ya cambió este este este archivo lo voy a agregar --> esto es simple y --> voy a hacer un commit para subir ese cambio --> se hace cambio en el valor de la propiedad ese es mi mensaje y al --> hacer push esto se va a llegar al repositorio --> ahí ya se fue se fue directamente a la rama de devil entonces es lo que te --> decía cuando ya llega aquí al repositorio a develop este de hecho --> fíjate como ahorita ya la propiedad va a cambiar ahora ya dice hola y adiós --> ya ya llegó el cambio aquí en commit a digo en comida llegó aquí al repo --> entonces ahí en automático en te decía en el mundo real cafca ya ya habría --> hecho la propagación en este caso nosotros no traemos esa configuración de --> de github con cafca sino que nosotros más bien lo vamos a forzar con el --> actuator entonces si yo ahorita hiciera la --> petición nuevamente sobre productos primero le voy a decir tráeme las --> propiedades que están en el en el repo y si te fijas este valor tiene que --> cambiar entonces el valor ahora para que veamos que si está actualizado ya --> la ya la actualizó o sea el config server ya está respondiendo bien su --> conexión va si yo hiciera otra vez una petición al microservicio de --> productos yo todavía no vería reflejado el cambio porque lo que te --> en este ejercicio incluso yo voy a borrar aquí la consola yo le doy otra vez --> buscar --> yo aquí borraría los logs si y si te fijas ya no aparece la palabra hola --> pero si yo le hiciera otra vez la petición aquí al al endpoint para que --> de producto por id yo este cuando me responda la petición en 200 yo yo --> todavía voy a seguir obteniendo la propiedad pasaba es decir si yo le doy --> aquí buscar ahí la encuentra pero todavía no tiene el cambio va es lo que --> les decía no está esa esa configuración entre github y cafca pero --> para para yo imagínate un escenario en donde incluso en la vida real eso --> se cae ese pipeline no sirve algo pasó no funcionó y tú de todos modos el --> cambio ya lo tienes ahí no podemos dejar que solamente por eso se no se --> propague el cambio entonces para eso está el microservicio el endpoint --> perdón se llama actuator entonces este actuator que viene activado en la --> configuración del config server si yo lo ejecuto es un post lo que va a --> ser es que me va a responder con una respuesta 204 que es un exitoso pero --> no tiene ningún contenido se no responde nada pero si te fijas algo pasó --> aquí en el config server aquí te va a mandar un mensaje que te dice que las --> llaves fueron refrescadas eso quiere decir que todas las propiedades ya las --> ya fue o sea nosotros con ese endpoint lo que hacemos es decirle a cafca ve --> y tráete los cambios que están en el repositorio y actualizan o sea lo --> estamos forzando y con eso --> cuando yo haga nuevamente la petición desde desde el microservicio de --> productos --> ahí la voy a volver a ejecutar y cuando esto se complete entonces ahora sí yo --> aquí en el microservicio de productos esperaré ver el nuevo cambio de la --> variable ahí si te fijas ya lo encontró dos veces una en donde --> tiene la la propiedad que no se había desactualizado y en la siguiente --> búsqueda me lo tiene que traer pero ya con él con el cambio si te fijas aquí --> ya tiene la nueva la nueva el nuevo valor que dice hola y adiós y ya son --> los los dos resultados que encuentra y si te fijas yo no tuve que apagar el --> microservicio la propiedad que viene en el archivo de configuración la --> actualizó de forma dinámica entonces no sé si con este ejemplo ya es --> poquito más claro de cómo funciona todo este --> esta familia de producto de config server config repo el bus cafca las --> los archivos de propiedades --> claro que sí a ver entonces cuando yo me pongo en el --> tengo entendido que esta sesión se está grabando entonces este ahí lo ahí lo --> van a tener va de todos los de todos los comandos cuando tú estás aquí en --> el config repo y haces el cambio vas a hacer un kit status y eso te va a --> decir que archivos se modificaron después tú vas a poner un kit a dd --> puedes agregar un archivo uno por uno puedes hacer todos y a punto y --> después ya haces el commit con él con el mensaje va y comit --> menos m y das el mensaje que quieres agregar --> mensaje y ya que haces eso el último comando es un pus --> ese pus y una vez que haces eso ya se sube al repositorio --> va entonces sí queda clara la explicación del de cómo las --> propiedades se van cambiando de forma dinámica perfecto --> super bien entonces va entonces esta es la propuesta que trae el config server --> aquí en la presentación pues básicamente les va aplicando lo que ya --> fuimos haciendo ahorita este e incluso se cubre esta parte que --> son las actualizaciones dinámicas con como de cafca se habla de los de --> cómo se configuran las propiedades en cada microservicio en sus archivos de --> propiedades y hasta ahí terminaría la práctica --> de este primer tema va entonces si nosotros nos vamos aquí al diagrama --> este lo voy a poner digamos así para para hacerle aquí un rayón --> nosotros ya habría ya entonces con esto cubrimos la parte de --> donde llega la petición no porque manejamos posman para hacer la petición --> y estamos cubriendo la parte de el config repo va que configuramos un --> config repo metimos la parte de spring cloud el config server perdón y en --> nuestros microservicios pues está consumiendo ese ese config server va y --> bueno obviamente pues aquí su bus que tiene con con cafca entonces eso es lo --> que estaríamos cubriendo con estos con esta explicación dentro de este --> diagrama que que aquí tenemos va este este primer este familia de de --> producto de de spring cloud entonces este va si ya queda --> claro vamos a tomar los cinco minutos de del pomodoro y regresaríamos para --> ver la parte de creo que tocaría ver este eureka el descubrimiento con con --> eureka entonces este si seguiría a brek entonces vamos a tomar cinco --> minutos son igual 11 5 les parece nos volvemos aquí a juntar y --> no --> listo sale entonces --> para poner el cronómetro --> esta sale entonces voy a compartir otra vez pantalla --> ahí se ve bien entonces ok entonces --> bueno si no hay ninguna pregunta adicional comentario sobre la parte del --> config server config repo de los clientes del bus de cafca todo eso si --> no hay quedó claro no no tiene alguna duda alguna pregunta una --> inquietud exacto --> correcto --> es correcto listo si hermano este igual te digo lo único si te fijas la única --> línea de programación que le metí en el controlador pues esto no y esto --> pues también es una anotación que nos da spring este spring spring este --> spring boot para poder manipular las propiedades los valores de las --> propiedades que hay dentro de los archivos de configuración y esto pues --> lo único que hice es traerlo y imprimirlo ahí en él en él este --> en él en él cómo se llama en él en él en este en este endpoint va entonces --> ahí se pintaría y es lo único va sale ok entonces este fin como como --> dijo armando la idea y creo que si se notó es básicamente configurar en --> estos archivos no en aquí y en el pom las librerías eso tal cual viene --> explícito en la presentación va entonces este bueno esto es lo que lo --> que trae la propuesta spring config y sus clientes config repo el bus de --> cafca todo esta parte va los actuators ya ya estuvimos revisando --> esos endpoints y demás sale entonces el siguiente punto a cubrir es la parte --> del descubrimiento de servicio con eureka entonces aquí nos habla de que --> vamos a estar implementando un servicio que se llama eureka en los --> microservicios este este servicio de eureka lo que les decía es que una --> de sus ventajas creo que su ventaja más poderosa es a trabajar de la mano --> con ribbon si para hacer este mecanismo de lo que hablamos que es el mecanismo --> del balanceo de carga este mecanismo de balanceo de carga ahorita lo lo --> hablamos de una forma muy teórica muy conceptual en donde nada más este se --> explica para qué que es no que es y para qué serviría en un ejemplo real --> por así decirlo como tal aquí no se trae no se propone una práctica porque --> para hacer eso pues tendremos que tener a lo mejor algún ejercicio que --> haga eso de la creación de instancias de forma dinámica hay que ver la --> forma de crear tráfico un tráfico significativo como para que podamos en --> automático ir creando instancias para ver cómo se balancea esas cargas --> entonces eso solamente queda platicado a un nivel teórico la parte de ribbon y --> el balanceo de carga con eureka va de ahí en fuera todo lo demás que provee --> eureka que es la parte del descubrimiento si se si se ve y para --> nosotros nos referimos al descubrimiento al hecho de que lo que les decía --> nosotros configuramos en todos los microservicios la propiedad que se --> llama que ya ya la hemos identificado en los properties y con ese name eureka --> nos va a ir registrando en su en su red entonces nosotros vamos a ver una --> interfaz es un cliente esto tal cual es un servidor que se va a --> instalar ahorita vamos a ver cómo se instala es un microservicio se --> agregan las dependencias se levanta y eso te expone una interfaz gráfica en --> donde todos los este va a funcionar como un servidor y todos los que se los --> servicios que funcionen como clientes es decir vamos a instalar la dependencia --> maven de cliente en cada microservicio y que se conecten igual que el --> config server no le vamos a dar una url para que le diga a dónde sale el --> servicio de eureka a qué puerto a qué dirección y cuando eso suceda --> eureka los va a mapear en automático por medio de los nombres van a poder --> este se van a poder conocer por así decirlo en un término más más --> coloquial van a poder conocerse y este y bueno esa es la forma en la --> que va a estar trabajando este este producto que se llama eureka va --> entonces ahorita vamos a ir viendo cómo cómo se hace esa configuración en cada --> uno de los microservicios cómo se crea este nuevo micro de eureka es un --> server los otros son nuestros clientes ahora vamos a ir viendo con --> detalle esa configuración va entonces aquí mismo en la diapositiva te --> dicen igual por medio de spring inicializer cómo crear el nuevo micro --> que es el de el de el de urette va te va a decir cómo le puedes llamar de --> artefacto el nombre toda esta metadata que ya hemos estado revisando y te --> va a decir que librería es la que --> la que ocupas en este caso es la dependencia de netflix eureka server --> la que ayer veíamos no que que netflix propone como que esta arquitectura y --> uno de los productos que trae dentro de sus librerías es este urette entonces --> metiendo nosotros esa librería en el maven de este micro este ya lo --> podemos convertir en un servidor va así mismo vamos a encontrar la --> librería eureka client para los microservicios que se van a conectar --> como clientes de ese servicio entonces bueno eso es lo que vamos a estar --> revisando y listo ya cuando terminas aquí vamos a ir viendo cómo se se va --> haciendo esa configuración en negrito básicamente se se se guarda lo que es --> este lo más importante por así decirlo en su archivo de configuración --> aquí tú dices que se llama de nombre eureka tienes la uri en este puerto va a --> estar cachando todo lo que tenga de configuración acá aquí que quiere --> decir ya por ver el puerto 88 88 ya lo trabajamos se está yendo el archivo --> al microservicio config repo no está este este microservicio también se va --> al config server perdón y va a buscar archivos de configuración si hay --> archivos de configuración que servirlo los mapea y si no no como es un micro --> igual también puede traer sus archivos de configuración desde ahí de --> hecho así lo está trayendo este fíjate que aquí se sigue contando --> igual al config server el este micro de eureka se levanta en el 80 81 y en --> negrito pongo esta parte porque si es importante mencionar que eureka le --> tenemos que especificar que él mismo no se registre como como cliente de él --> mismo lo tenemos que especificar de esta forma para que eureka no se --> comporte como un cliente más del mismo servidor porque si no vamos a estar --> teniendo ahí este problemas bueno eso es lo que vamos a estar metiendo y en --> la configuración de nuestra aplicación cuando veamos en la clase main que --> se crea cuando creamos el proyecto desde spring inicializer le tenemos que --> meter esta anotación que están disponibles justo por meter las --> dependencias de netflix metemos este enable eureka server y eso va a ser --> que nuestra clase spring boot en automático la tome como un --> servidor de eureka va entonces toda esa parte viene a ser la --> configuración del servidor entonces vamos a revisarlo igual yo cree mi --> proyecto desde spring inicializer en la página que hemos estado revisando se --> crea se guarda en su repositorio se queda en las ramas y al final aquí --> tengo este archivo este este proyecto entonces en eureka server yo yo veo mi --> pom y voy viendo justo todo lo que habíamos platicado la metadata de --> que me dice ahí la la presentación de cómo crearlo es spring --> inicializer su descripción la versión de spring boot la versión de java las --> dependencias que voy a estar ocupando que si te fijas aquí están la de --> netflix eureka para convertirlo en un servidor y las demás dependencias que --> hemos estado trabajando va se agrega esta parte de configuración para que --> no corran las pruebas unitarias todo lo que hemos estado trabajando en los --> va y finalmente nuestro archivo de configuración que es este y pues es lo --> mismo no ahí te dice cómo traes del repositorio perdón del microservicio --> que está en el puerto 88 88 que es el config repo perdón el config server de --> ahí va a traer sus archivos de configuración si los encuentra le estoy --> diciendo que este es servicio de eureka levanten el 87 61 y la configuración --> para que no se se tome como un propio cliente y por último en nuestra clase --> main va a anotar la utilizar la dependencia en la eureka server para --> que se trate como un servidor va cuando tú levantas esto te va a dar --> una url que es esta la 87 61 que corresponde a lo que levantamos acá --> en este puerto y si tú le das click ahí te va a llevar a esta esta --> interfaz que te decía que que realmente es una interfaz gráfica y este se --> eureka esto es eureka va entonces yo le voy a dar aquí un refresh yo al --> bueno al irlo configurando uno por uno no va a saber todo esto vacío no yo --> aquí ya lo muestro completo porque yo ya tengo conectados todos los --> servicios y te fijas aquí está conectado la piguet wey y están --> conectados los otros dos no estos estos los otros tres estos vendrían a ser --> clientes de eurek y si te fijas esto que viene a hacer es el nombre es el --> nombre de cada microservicio lo que les comentaba va y además te va a --> brindar un estatus de monitoreo de cómo están las instancias o sea --> además de registrarte el servicio te va a registrar todas las instancias --> que tienes y este la en dónde están corriendo va entonces en este caso se --> muestra que tienes una instancia si tuvieras más tráfico haría balanceo --> de carga te va a mostrar cuántas cuántas instancias tendrías y las --> ligas para administrar cada instancia va entonces esto es básicamente el --> servidor de eureka es más especializado si para gente que se --> dedica al monitoreo toda esta gente de devops no nosotros como --> pues nos sirve ver que tiene una interfaz gráfica que hace esto y sobre --> todo su uso que es para el tema del descubrimiento va en este caso que --> lo vamos a estar ocupando así entonces esta es la parte de cómo se --> configura el servidor y bueno creo que creo que no tiene mayor este --> complejidad la otra parte es cómo se conectan los otros microservicios que --> vienen a ser los clientes va entonces es lo mismo nada más que --> vas a agregar en vez de la dependencia eureka server la dependencia eureka --> client en todos los micros en este caso vimos que está el gateway el --> producto el usuario el de órdenes ahí vamos a instalar esta dependencia en --> maven y le vamos a decir la configuración para que se vaya a la --> url del 87 61 que es en donde está corriendo nuestro nuestro servidor de --> eureka va eso es básicamente todo lo que se tendría que hacer y --> obviamente pues también en la clase main habilitar el descubrimiento como --> clientes igual está en esta librería o esta notación está disponible porque --> nosotros instalamos pues las dependencias de netflix y cuando ya --> bueno aquí te dan un último paso que es acceder a este localhost que es lo --> que ya vimos y ves la interfaz gráfica de eureka entonces eso mismo --> igual voy a agarrar el mismo microservicio que es el de productos --> nosotros también ya lo tienen este pero bueno yo por fines de que he estado --> agarrando este lo voy a mostrar aquí y es lo mismo lo que veíamos en el --> pom este por ahí va a estar la librería es buscarla y vas a --> encontrar el cliente de netflix esto lo va a hacer que esté esta --> librería va a poder meter la notación en la clase que estamos --> buscando que es en nuestro main esta es la notación del enable discovery --> client para que se comporten un cliente de eureka y la también importante --> decirle en donde se está este en donde se está mapeando ese servidor con --> esta configuración yo le digo que se vaya esa url y en este puerto que está --> corriendo en este host que es el local está corriendo la instancia de --> eureka y con eso yo bueno y la otra propiedad creo que es también muy muy --> importante está entonces yo al darle un name y así voy nombrando cada uno de --> ellos este eureka hace ese mapeo y sabe quién es quién por su name por su --> nombre entonces esa es la parte del --> descubrimiento y bueno eso es lo que lo que propone eureka ahorita también --> una aplicación práctica la vamos a ver cuando veamos el uso del cliente --> del fein client para que podamos ver cómo se conectan por medio del --> y pues bueno aquí vemos la interfaz de eureka entonces eso es básicamente lo --> que trae eureka ribbon balanceo de carga que de hecho aquí es el siguiente --> punto pues nada más es este como se se estaría ocupando no lo bueno cómo se --> a nivel teórico cómo funcionaría el balanceo --> entonces no sé si hay alguna duda con esta parte de lo que es eureka --> cómo se configura para qué sirve cómo se como se ocupa cuando menos en esto --> en el descubrimiento este creo que fue fue fue muy sencillo no la --> configuración y ahí viene pues en la presentación pero bueno entonces fue --> mostrando clase por clase no sé si haya alguna duda algún comentario que --> tenga --> perfecto súper sale entonces sí creo que este esta parte de esta más este --> más de configurar y no hay tanto problema bien entonces entonces si no --> hay dudas continuamos con la parte del getaway sale --> entonces igual el bueno vamos a regresar tantito es la 68 si regresamos a --> nuestro diagrama vamos a ver si se guardaron ahí los rayones que hicimos --> que creo que no bueno este ahí también ya vimos la parte de eureka --> vamos a hacer una remembranza creo que es con esta --> entonces hemos estado viendo ya la parte de cliente con postman ya vimos la --> parte de eureka el descubrimiento vimos este la parte de cómo nuestro bus --> está funcionando en cada uno de nuestros microservicios --> hemos estado viendo la parte del config server --> hemos estado viendo la parte del config repo y va hasta aquí estaríamos --> cubriendo esta parte ahorita vamos a ver cómo entra el getaway va entonces --> vamos a ver cómo se configura el microservicio getaway y entonces es la --> parte que sigue entonces sería en la 68 nos quedamos --> vamos a ver 68 --> entonces el api getaway sale entonces una definición burda de un getaway --> tanto ustedes como yo ya los hemos trabajado --> un getaway es una puerta hacia la hacia el microservicio bueno hacia --> hacia alguna aplicación entonces los getaway sirven como entre otra de las --> orden a las peticiones y demás también te ayudan a implementar este mismo --> balanceo de carga no entre otras funciones que tienen los --> getways también está el tema de usarse como filtros entonces tú puedes hacer --> que una petición se intercepte entre un cliente y un aplicativo pasa por --> tu getaway y en este en este sentido el getaway podría aplicar filtros --> sobre esa petición podría hacerle transformaciones lo que quieras y --> después ya que esté procesada primero por este getaway ya la puede mandar al --> aplicativo entonces es como una capa adicional a la petición --> este esto es lo que lo que te permitiría hacer un getaway va entonces --> dentro de sus funciones también están como decíamos el controlar el --> este por medio pues de balanceo de carga aquí igual en la diapositiva esto --> quiere decir que igual es un microservicio entonces vamos a crearlo --> desde la interfaz de spring initializer vamos a agregar la metadata todo lo --> que ya hemos estado trabajando vamos a llegar a un proyecto lo subimos a --> creamos sus ramas este y en este en este microservicio igual vamos a tener la --> las dependencias vamos a instalarle en negrito se ve la que vamos a ocupando --> que es esta del starter getaway para que se comporte ese micro como como --> un getaway de spin cloud cuando ya terminas de crearlo vas a tener igual --> una configuración en un archivo application yamel le vas dictando las --> propiedades que se ocupan no esto por ejemplo para el tema de eureka le vamos --> a ir diciendo que este se habilite la el descubrimiento que se haga por medio --> de eureka y le vamos a estar pasando esto creo que es lo más importante las --> rutas de todos los microservicios hacia donde él tiene que interceptar por así --> decirlo donde él tiene que fungir como puerta de entrada entonces si tú te --> fijas todo esto es son los user son los names perdón de cada micro --> servicio cortesía de eureka por medio de eureka ya puedo decirle --> simplemente que que se llamen así y va a entender a qué microservicio se --> tiene que conectar y además vas a ver que qué url debe de aplicársele para --> que la proteja en este caso esas url se dictan por medio de una notación que --> se llaman predicados y en este caso yo le estoy diciendo que prácticamente --> todo lo que venga desde el pad y usar se acuerdan que ese pad se --> configuró en los controladores no de cada uno de los este de cada uno de --> los microservicios en este caso estoy hablando del pad de user de producto y --> por ahí está el de order en esos pads todo lo que venga después de de eso --> en de este pad en esa url es lo que va a cubrir --> prácticamente todos los endpoints que creamos que son el get all el get by --> el post el put del delete todos esos los va a estar interceptando el el --> gateway va en cada uno de los microservicios que estoy diciéndole --> entonces esa es la configuración más este probablemente más importante que --> es la que hace que funja como como un gateway se le configura además el --> puerto en este caso este el gateway va a correr en el 80 83 y de igual --> forma le decimos que agarre la configuración de eureka va el --> descubrimiento se está conectando con eureka también en la clase main va que --> ya la tenemos bien identificada vamos a decir esta propiedad va la de --> discovery por eureka la que hemos ya está manejando eso es todo lo que se --> tendría que configurar en el gateway y pues ahora vamos a revisarlo en la --> parte del gateway lo mismo desde spring inicializer me creo mi proyecto va ya --> que lo tengo me va a dar las configuraciones básicas y siguiendo la --> presentación pues yo le voy a ir metiendo sus configuraciones va entonces --> en este caso aquí yo voy a decirle que se vaya --> primero a acá y al pom vamos a revisarnos en el pom yo aquí tengo --> todas las dependencias para que se comporte como un gateway va este eso es --> en la parte del pom este pom pues obviamente va va creciendo conforme le --> vayamos metiendo este configuración dependencias este es el pom aquí en --> nuestra clase main lo mismo habilitamos el descubrimiento de de --> servicios con con eureka va como lo tratamos como un cliente de eureka y --> nuestro archivo de configuración en la aplicación yamel lo que te decía no --> aquí le damos un name lo bautizamos y le vamos a decir que --> estas son las rutas que vamos a estar interceptando por así decirlo va a --> estar interceptando rutas que vengan desde usuario desde producto desde --> orden aquí tiene otras de otros micros que también se ocupan pero bueno esto --> para nosotros no no funciona lo de car y lo de se nada más basta tener --> usuario producto y orden que son las que hemos estado este ocupando --> va esto es lo que haría que intercepte esas peticiones --> y bueno todo lo demás lo vamos a ver ahorita porque es la parte de la --> seguridad y bueno le estamos diciendo que --> el puerto 80 84 y que se conecte al mismo cliente de brek va entonces cuando --> yo levanto este getaway vamos a ver qué más nos dice aquí la --> presentación bueno ahí ya es la parte de fein --> entonces para hacer eso ya con eso nosotros no tenemos que configurar nada --> más a levantarlo yo voy a tener a no es cierto hay otra hay otra parte --> que es la clase de configuración va esta esta clase --> creo que no está en la presentación no la vi igual y ahorita hacemos la --> búsqueda pero bueno esto básicamente también se tiene que agregar aquí en --> el getaway un paquete que se llama config metemos esta clase que se --> llama security config a ok ya ya recordé es que esto se mete pero --> cuando se configura con con el servidor de autenticación entonces --> esto todavía está bien que lo viemos no lo vemos simplemente así entonces ya --> teniendo eso y yo levantando el proyecto --> yo aquí en postman ya voy a poder tener mi colección bueno de hecho ya la --> tienen aquí en getaway ya van a poder acceder al van a poder acceder a los --> mismos en points que nosotros tenemos de producto de órdenes de usuarios --> pero ahora pegándole a través del getaway por ejemplo si yo veo el endpoint --> de de productos así es como se vería este endpoint de productos y te fijas --> ahora entra por el 8084 lo que antes si yo no lo cubría con un --> getaway entraba por el 8082 entonces ahorita que ya está levantado el --> puerto de del getaway yo le puedo hacer una petición igual a --> la petición de productos pero esta vez yo estoy apuntando directamente desde el --> getaway y si te fijas ahí me sigue respondiendo la petición igual la vamos --> a ver acá en el en el producto service no aquí entró la petición aquí también --> cayó de hecho si no mal recuerdo se tendría que pintar de hecho aquí está --> otro hola porque volvió a caer en ese endpoint que estábamos probando --> entonces ahí aunque entró por el getaway lo redireccionó hacia este --> servicio de producto y entró al getaway primero porque si te fijas aquí entró --> por el 8084 va que es como le dijimos que entre la petición y por qué lo --> mapeo porque aquí nosotros le dijimos que agarrará todo lo que se --> encuentra en product service en la ruta cumple con este predicado es --> decir que cumple con products lo que sea --> entonces al tener ese products lo que sea que si te fijas eso se ve aquí en --> el en la url products lo que sea por eso es que está haciéndose ese mapeo --> va entonces a ver --> este mensaje listo va entonces este bueno esa es la parte de cómo cómo --> funciona el getaway va y entonces ya lo sé pues que teníamos nosotros --> expuestos desde digamos desde el microservicio directamente también ya --> podemos entrar desde la parte de su getaway va así es como --> como está ya mapeándose y esto es esa parte la tema del getaway no sé si --> ahí quedó alguna este alguna duda de cómo se configura o --> cómo se ocupa --> así sí es una --> exacto si son notaciones grandes que te pide la el framework o sea lo buscas --> en su documentación y te pide eso no te pide dar un id exacto la uri y el --> predicado bueno o sea tú no es que necesites un predicado le puedes decir --> directamente cómo mapearlo pero yo lo muestro de una forma así con este --> predicate porque así es más dinámico o sea aquí yo englobo todo lo que --> venga dentro de este pacto entonces es más engloba más es más general va --> así claro si si si si te fijas todos estos también coinciden con el name --> que les damos a cada microservicio y todo esto es porque eureka como están --> conectados con eureka así es como por medio del name saben quiénes --> entonces esto es más que nada el name que se le da en la propiedad a cada --> microservicio por ejemplo ese user service lo vas a encontrar en en el --> properties en su name acá lo tienes --> ahí está vale y además también este por ejemplo en el controlador ya que --> estamos aquí podemos revisarlo si te acuerdas aquí viene mapeado este map --> entonces este users es el que se está ocupando como ruta base para que --> el gateway sepa esto que todo lo que venga acá está está está mapeado --> con ese va lo mismo en productos mismo en órdenes --> si sino de que alguna otra duda o aporte --> va que va perfecto bien entonces entonces si no hay más --> vamos a continuar con el siguiente punto que es --> la parte de los clientes rest con fein si te fijas ha sido más como temas de --> descargar librerías no agregar librerías en los pumps --> atacar los archivos properties no los de configuración meterle ahí las --> configuraciones que requiere y en automático esa es la potencia de --> spring boot que toda la configuración la va a hacer en automático --> entonces estamos utilizando bastante bien el framework de spring boot y estamos --> usando estas ventajas que nos ofrece no entonces después viene la parte de --> los clientes rest con fein client que es una librería fein como tal es una --> librería no es un micro servicio entonces vamos a estar descargando esa --> librería en cada micro servicio que lo queramos ocupar en este caso por --> nuestra práctica que tenemos aquí este propuesta lo que les platicaba ayer no --> se va a activar el fein en el micro servicio de órdenes porque él sí --> necesita conocer hacia dónde --> el si necesita conocer antes de hacer un insert en las órdenes --> si necesita conocer usuarios y productos no para que yo pueda dar de --> orden entonces al hacer eso ya te está diciendo que si necesita conocer --> productos y usuarios pues necesita conectarse con ellos es para eso se --> ocupa esta librería fein los fein client nos va a permitir desde el --> micro servicio de órdenes ir a los otros dos micros y extraer --> información y en base a esa actuar con en nuestro en nuestro micro --> servicio que los mando a llamar entonces lo primero que hay que hacer es --> añadir la dependencia que es esta de open fein sale esto lo vamos a meter --> aquí en el micro servicio de órdenes vamos a modificar la clase men para --> habilitar los clientes fein que vamos a ir declarando si después vamos a --> agregar el fein el fein client se llaman así fein son clientes se --> llaman fein client de productos o sea vamos a hacer una un cliente que se --> comunique con el micro servicio de productos y si te fijas este este --> cliente es tan sencillo como crear una clase va a decirle que a que name no --> cómo se llama el micro servicio al que se va a conectar --> este a ver no no déjenme le pongo mío a esto porque me tiene harto --> entonces este con por medio de la propiedad name que hemos estado --> trabajando va que nos que le damos a cada micro servicio que eureka ya --> conoce todo esto lo que les platicaba por medio de este name con esta --> librería de fein client este yo voy a poder encontrar al micro --> servicio de producto y está está dando esta es la --> simplicidad que te ofrece la librería de fein tú le amas le dices cómo se va --> a llamar le dices las variables que quieres pasar como parámetro y la --> url del micro servicio donde va a apuntar en este caso este cliente --> está haciendo una petición al micro servicio de productos al endpoint que --> te trae un producto por id y le va a pasar como parámetro esta es a id o --> sea estaría mandando a llamar a este endpoint que hemos estado --> ocupando a este al de productos por id estaría desde órdenes estaría haciendo --> esta petición esta es la simplicidad que te ofrece el fein client y lo --> mismo para los usuarios no estamos haciéndole un get user por --> id por medio de fein client desde órdenes hacia usuarios va le --> estamos pasando la variable como parámetro y al micro servicio que se --> llama de esta forma esa es la parte de cómo funciona nuestro fein client --> y eso lo vamos a ver reflejado en este método de create order va lo que les --> decía cuando yo quiero dar de alta una orden primero necesito conocer si --> hay si el usuario que me están pidiendo existe y si hay productos --> entonces esto es lo que estaríamos haciendo en el en la programación del --> método de creación órdenes estaríamos esto lo vamos a revisar también la --> detalle ahorita pero aquí igual y se puede ilustrar lo que hago es instanciar --> en un DTO de usuarios de producto la llamada del cliente del fein client de --> cada uno de ellos no entonces lo que me llega por request en la orden --> ahorita vamos a ver cómo está compuesto ese ese request yo le digo --> y le mando el id de usuario y el de producto y con eso el cliente de fein --> client a cada uno de ellos va a responder si encuentra información en --> alguno de esos dos este más bien aquí si no la encuentra manda esta --> excepción que no existen los productos y en caso contrario pues los --> voy a los voy a llenar y voy a hacer la devolución de la de la orden --> va entonces este es como se estaría viendo vamos a ir vamos a ir ahora --> configurándonos paso a paso entonces para eso nos decía aquí la la --> presentación lo primero que hay que hacer es añadir la dependencia que es --> open fein en nuestro microservicio entonces en este caso se refería al --> microservicio de órdenes te fijas acá en orden voy a ir cerrando todo --> esto para que no nos haga ruido y lo vamos a ir abriendo conforme se ocupe --> aquí en el en el pom voy a utilizar la librería de open fein entonces si yo --> la busco aquí está y al hacer esto bajo la dependencia y ya está listo --> para que pueda ocupar las las librerías va el paso 1 en el paso 2 --> la clase main la tengo que este habilitar los clientes fein que yo --> que yo vaya a crear va entonces igual esta librería yo lo puedo importar --> porque ya la agregué al al maven no ya bajen las las dependencias y demás --> y luego con esto --> ya tendríamos este --> habilitado la parte de fein client ahora ya nada más habría que crearlos --> pues para eso si te fijas este microservicio de órdenes hay que crear --> un paquete nuevo que son los clients y dentro de esta carpeta o paquete vamos --> a crear dos clientes que es el de producto y el usuario --> tan sencillo como crear estas agregar estas líneas que creo que son --> bastante intuitivas vamos a crear por el cliente de producto lo que hago es --> decirle a qué microservicio se va lo puedo agarrar por medio del name le --> digo al de product service le digo que a qué url le tengo que pegar --> que es la que se llama products id va entonces esto se va a ir al --> controlador de productos a este endpoint que básicamente es el de --> product by id y paso este parámetro y la respuesta por eso les decía que --> micro servicio de órdenes ocupaba el dto de producto y el de usuario --> entonces este es el mapeo esto es lo que me va a devolver ese cliente un id --> un nombre y un precio que esto está mapeado pues con los clientes de con --> los dto de producto y el de cliente va es el mismo que tienes en dado de --> alta en esos microservicios entonces tú haciendo esto ya tienes un --> y finalmente nosotros nos vamos a la clase de los controladores aquí en el --> de orden y en el método post que es el de la creación de la orden si te --> fijas este también tiene el mismo ejemplo de traerla el example property --> de su config repo todo eso no como para que nos vayamos familiares --> y si te fijas aquí en el post no vamos a buscarlo --> en el post ahorita no le hagan caso al circuit breaker en el post este yo --> tengo el método de creación de orden me llega la petición el body --> de la petición para crear una orden me va a pedir básicamente el id --> del usuario el id del producto la cantidad y la fecha de la orden eso lo --> vamos a ir viendo ya también aquí en el postman si yo abriera la colección de --> órdenes para crear una este --> yo aquí tengo y esta es la petición va entonces voy a órdenes le voy a --> hacer un post para poder dar de alta una orden y en el body yo le voy a --> decir este al usuario dos le voy a pedir el producto id 2 y le voy a --> pedir tres no tres ese producto la cantidad y en esta fecha es el formato --> si yo al mandar esa petición me va a responder ya sea que si existe ese --> usuario y ese producto que si se acuerdan también tenemos los métodos --> para consultar el user por id el producto por id si esos existen este la --> orden se va a completar va entonces ahorita vamos a hacer el happy pad en --> donde si se inserta porque cuando no se inserta es cuando vamos a hacer la --> ilustración del circuit breaker no que es lo que les decía de que si --> algo falla este el circuit breaker va a estar ahí disponible para que --> eso eso no suceda no no se rompa el flujo entonces viendo el método si --> nosotros nos vamos a la programación aquí en el order service en la creación --> de la orden a lo que vimos ahí en la presentación primero vamos a --> verificar que exista ese usuario y ese producto que nos están pasando por la --> por el request es decir estos el id de ese usuario y ese producto lo vamos --> a validar que primero exista en los otros dos micros entonces para eso me --> hago uso por inyección de dependencia del cliente que acabo de --> crear esos clientes son estos no se les llaman clientes realmente son los --> clientes o sea estoy usando estoy importando estas librerías acá o --> bueno estos métodos estas clases por inyección y le estoy diciendo que --> aquí en el crear orden me lo traiga no lo estoy usando estoy diciendo --> tráeme un user tráeme un producto por medio de lo que llega en la --> petición de orden en el user id y en el producto id que es lo que --> llega acá estas estas dos propiedades entonces al hacer eso estos este --> DTO se van a llenar y si uno de ellos dos es nulo pues aquí me va a --> mandar una excepción va una excepción controlada en caso de que no la --> mande este a ver nada más un momento dos minutos por favor un segundo --> no me tardo --> esto ya una disculpa entonces este si aquí uno de estos dos estuviera vacío --> pues manda una excepción controlada y manda este mensaje de lo contrario la --> orden este se crearía y se guardaría va entonces vamos a hacer este happy --> pad en donde todo existe y si se puede dar de alta como para corroborar que --> todo esté bien entonces yo voy a mandar aquí mi usuario 2 porque primero --> vamos a consultarlos voy a ver si el producto 2 existe que de hecho ahí ya --> hice la petición varias veces existe ahora voy a checar en usuarios si --> existe lo puedo buscar por id o por un get all user no si yo le digo que --> me mande el 3 ahí lo veo le hago la petición y también existe entonces al --> momento de yo crear la orden es decir hacer el post de la orden mandándole --> el usuario 2 y el producto 2 con la cantidad 3 antes de eso quiero --> mostrarles el get all orders si se acuerdan de nuestro archivo de ml --> en órdenes también insertamos órdenes por por default entonces vamos --> a abrirlo nada más como para recordarlo vamos a abrir en en el sql en la de --> órdenes en la de manipulaciones los archivos de manipulación te fijas --> aquí también me dio de alta ciertas órdenes va igual ahí no di de alta --> el id simple sencillamente le dije que usuario que producto y con eso --> este me los fue me los fue dando de alta no entonces si yo hiciera un --> get all de esas órdenes me las va a responder me debe de responder tres --> órdenes que son las que existen ahí por default por así decirlo no eso se --> mapea como la orden con id 1 fue de una cantidad 2 --> para el usuario 1 el producto 1 ya en esta fecha esa es la relación que se --> entre orden producto y usual es esto y bueno entonces si yo diera de alta una --> nueva orden se me borró ok lo vuelvo a agarrar si entonces yo fuera a dar de --> alta una nueva orden yo la yo la envío no vamos a tener un nuevo --> identificador en las órdenes que es el 4 que de hecho aquí ya se dio de --> alta si yo hiciera que un get all orders otra vez aquí nada más nos --> devolvía tres ahora ya nos debe de devolver cuatro que es el último --> registro que cree va entonces este mismo ejercicio es el que hemos --> estado manejando con producto y con usuario que es el crud aquí aquí está --> el crud ahora de órdenes y este crud está un poquito más este --> elaborado porque conlleva esa relación entre producto y usual --> no es entonces este bueno esta esta es la parte de cómo se --> conecta así es como se ocupa el fein client no sé si hay alguna duda sobre --> sobre este sobre cómo funcionan los clientes los fein clients para que se --> ocupa para que es la librería --> en la codificación no sé algo --> adelante --> adelante --> para usar los digamos solos sin necesidad de sí --> en nuestro ejemplo sí pero en la parte teórica te decía como como el spring --> framework es eso es un framework modular puedes ocupar cualquiera de esos --> piezas por separado y no no va a tener problema --> ok --> ok si básicamente es con el con el con la propiedad name donde está ah bueno --> déjame ver el cliente de de en donde lo configuramos aquí verdad este ok --> estos clientes este simplemente nosotros mapeando esta esta --> configuración y habilitando en la clase main los --> cómo se llaman los los la la el fein client con eso ya podrías este --> utilizarlo esto dentro de nuestro ejercicio que tenemos eureka que tenemos --> este el el gateway va cuando tú no tienes esa parte si si tendrías que --> hacer uso de del dominio del microservicio donde estás apuntando --> o sea literal le puedes pasar la url así tal cual completa como viene como te --> la den y a esa url es a donde tendrías que apuntar aquí en el fein client hay --> una propiedad no me acuerdo cómo se especifica pero tú le puedes decir la --> url la url va entonces nosotros estamos haciendo que esa es una muy --> buena pregunta nosotros estamos haciendo configuración por medio de --> como les decía todo está bonito cuadrado por las propiedades de los --> pero también puedes hacer una configuración por medio de una uri va --> entonces no me acuerdo aquí cómo es la notación no era mi intención --> mostrar ese ejercicio pero creo que por ahí puedes definir una propiedad es --> cuestión de también meterlos en las librerías y setear ahí la uri no --> la url y ya te evitas directamente agregar el name --> ya te puedes ir a cualquier servidor --> así sí claro --> y --> correcto --> claro --> sí sí de hecho yo hice un mapeo simple para ilustrarlo porque si te fijas este --> es un get hacia producto por id pero yo también puedo traerle todos los --> productos sin pasarle un id se yo puede haber hecho aquí otro cliente o --> sea si te fijas estos clientes fein son el mapeo de los crud o de los --> métodos de los endpoints que exponen cada controlador en cada microservicio --> si te fijas este es el endpoint que le pega al get product by id pero yo --> también puedo tener este de get products no y decirle que se llame --> así y no le pasó nada porque no ocupa ningún parámetro y con eso ya --> estaría yo haciéndole una petición al get all products y este es --> el mismo mapeo que yo me voy al que si yo me fuera aquí al product service a --> donde está su clase controladora y aquí tengo su products get all products --> que creo que era este aquí le estaría pegando yo a este método --> ah bueno aquí tendría que ver si te fijas aquí tendrías que devolver una --> lista de SDTO entonces yo aquí tendría que llevármelo también aquí en --> el de order si yo puedo crear una colección de mi cliente fein con tantos --> métodos como yo ocupe relacionados a este servicio entonces yo con esto al --> mandarlo a llamar estaría obteniendo toda la lista de todos los productos --> está pegando a ese endpoint también yo podría hacer por medio de fein --> client el delete el update todo eso va en este caso se ilustra el uso del --> del id de bueno de este endpoint pero pero si puedes ocupar el método que a --> ti se te ocurre --> bien entonces bastante bien alguien más alguna duda pregunta inquietud --> sobre el uso de los fein clients --> bien entonces todo claro --> curioso que siempre acabamos el pomodoro al en el número 8 58 va entonces --> vamos a tomar el siguiente pomodoro que es el tercero este --> hasta ahorita hemos tomado dos verdad 1 2 3 va entonces en este --> este este pomodoro vamos a agarrar 25 minutos para para ir a despejarnos y --> regresando este es el que no tomamos ayer regresando este continuamos --> viendo la parte ahora de los circuit breakers vamos ahora a ver cómo --> cuando la petición vamos a forzarla por allá que truene y cuando esto --> falle este vamos a vamos a ver cómo cae en un fallback en un circuit --> breaker para que no no sé no se truene no sea el flujo siga vivo y con --> eso pues ya este la petición nos no se pierda va entonces es el --> siguiente tema en parte del circuit breaker y entonces nos vemos aquí a --> 12 25 tomando esta práctica del pomodoro va les parece bien --> vale entonces nos vemos ahorita 12 25 les les vuelvo aquí a hablar va --> listo --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> y --> bien ahorita lo lo repasamos entonces al momento de hacer la práctica --> ahí que quede de todos modos tengo la si se fijan yo voy siguiendo lo que va en la presentación --> entonces este --> seguramente ahorita vamos a terminar la presentación nos va a llegar la hora de --> de comida y regresando que ya sería los últimos dos horas la práctica es --> volver a reconstruir todo esto en sus ambientes no pero si se fijan ya es pura --> configuración como lo hemos estado viendo o sea yo ya les voy a dar todo funcional --> ya van a tener el user service funcionando el product service funcionando el --> order service y ya lo único que hay que hacer es configurarlos este los demás --> este productos no entonces bueno eso es lo que vamos a estar revisando --> ahorita y pues bueno entonces hay que apurarnos para la parte de --> del siguiente punto que creo que ya es el último que es la el seguimiento de --> la de los errores no entonces con esta parte cerramos la --> autenticación la seguridad con con el entre el gateway y y nuestro y nuestro --> servidor y clock --> y bueno que esto nos va a estar proporcionando los tokens y la --> autenticación va seguridad --> y bueno el último punto es la parte del seguimiento de microservicios para el --> descubrimiento de latencias ok entonces en este en este ejemplo --> bueno en este punto se está se propone utilizar o bueno se más bien se --> se propone abordar la librería es leut vale y nosotros tenemos como --> propuesta también ocupar sitkin que es un servidor en el cual convive muy de la --> mano con con esta librería con con es leut va --> entonces básicamente lo que hace es leut bueno nosotros la configuramos es que --> en todas las peticiones que nosotros le podemos llamar traza en toda la --> traza de la petición te va a generar un identificador un identificador más --> o menos como de este tipo no una cadena alfanumérica entonces ese --> identificador cuando ocurre un error tú puedes copiarlo y buscarlo directamente --> en sitkin o viceversa lo puedes buscar en sitkin encuentras el error y lo --> puedes buscar en los logs no reemplazan los logs simplemente es una --> forma es una forma diferente otra alterna de hacerlo no de buscar --> errores en los logs entonces sitkin es al igual que aquí clock un servicio --> parte es un servidor que vamos a estar instalando que ahorita no vamos a ver el --> paso a paso configurando también en las librerías y con eso vamos a --> poder hacer la demostración va entonces el primer paso como ya lo --> hemos estado trabajando vamos a agregar las dependencias en todos los micro --> servicios en donde queramos este agregar este seguimiento de errores o --> entonces yo lo puedo poner por ejemplo en la parte de productos --> puedo buscar en el micro servicio de productos usarios en el de órdenes --> incluso creo que también lo configuramos en el gateway y en todos --> esos microservicios tú puedes buscar la librería y la librería --> entonces yo me voy a ir a cala de producto y voy a ir cerrando otra vez --> todo esto ah bueno ahí le podemos cierran las otras --> entonces aquí yo le doy en maven si te fijas yo aquí encuentro las dos --> dependencias y si te fijas ya estas son las últimas entonces yo encuentro --> sitkin y encuentro zleut yo teniendo esto ya lo puedo instalar con --> maven se descargan las dependencias va después en el application --> yo tengo que configurar para que todas las todas las este --> los identificadores que se generen si entonces este --> para que se guarden aquí en la url perdón para que se configure con --> sitkin si si quien es un producto aparte que vamos a estar levantando --> y se va a levantar en este puerto localjoz 94 si ahorita vemos cómo se --> levanta y básicamente le vamos a decir con esta configuración a --> nuestros microservicios que todo lo que venga de zleut lo meta con --> una probabilidad de 1 esto quiere decir que en todas las peticiones --> siempre esté generándome esa traza en todas las trazas siempre --> esté aventando el identificador para que no haya no haya fallo va --> entonces siempre voy a estar agregando ese ese id con esa configuración --> y luego --> yo me voy aquí a la página para ver cómo se instala sitkin --> sitkin es más que un proyecto es un producto aparte --> quiero atrapiar luego los comandos que estoy en windows luego me --> cambió la máquina un rollo pero a ver a ver --> y se copiaron los caracteres de los lados ahí está entonces yo entro a sitkin --> va igual igual yo voy leyendo ahí toda la documentación se las dejo --> para que para que la puedan ir viendo con más detalle aquí está la --> documentación y este pues ahí te dice todo lo que si quien puede hacer --> incluso te grafica te hace varias cosas ahí interesantes entonces en el --> quick start nosotros podemos ver este cómo se instala por medio de --> por medio de java por medio de bueno del core por medio de cualquier una de --> estos tres métodos va yo en este caso elegí para ya no usar tanto el docker --> y variarle un poquito estoy utilizando el core de con java para hacer eso --> ahí por ahí puse una nota en la presentación que en un ambiente windows --> podemos usar algún cliente bash justo como el de el de git no el que --> tenemos ahí también abierto entonces voy a seguir las instrucciones y yo --> haciendo ejecutando estos dos comandos voy a poder instalar este si quien va --> es el primer comando que se ejecutaría es este core yo al hacerlo --> me va a empezar a bajar todas las dependencias y al final me va a decir --> que puedo ejecutar este comando para lanzar la petición y entonces este al --> momento de levantar eso nos va a dar ya la posibilidad de que yo pueda --> entrar a través de esta dirección así que va entonces vamos a ir haciéndolo --> aquí en la presentación me dice entonces que yo puedo generar el comando --> para este este para levantar el para descargar si entonces hago el core --> este aquí si te fijas ya lo ejecuto va y cuando empieza a ejecutar te digo --> que esto empieza a descargar un montón de paquetes y cuando ya termina te dice --> está este mensajito ahora puedes ejecutar este comando que es el mismo --> que te ponen acá ya vayan si punto ya ya lo ejecutas y al momento de hacer --> esto te empieza a levantar la instancia de si quien y te dice que está --> corriendo ya en el puerto 94 11 va en localhost 94 11 que de hecho es lo --> que te dice acá cuando tú entras aquí también te dice que aquí de hecho te --> dice no sin importar cómo tú quieras instalar o iniciar si quien vete al --> navegador 94 11 y vas a encontrar las las trazas entonces yo con eso ya y --> una vez que me sale ese mensaje yo me puedo meter aquí a mi cliente de --> si quien y si te fijas aquí en el 94 11 yo ya puedo entrar a la --> interfaz y esa es la interfaz de si quien ahí te dice buscar trazas yo aquí --> puedo configurar el idioma --> este viene el la configuración del idioma yo aquí le puedo decir que se --> vaya a --> a bueno cualquier idioma en este caso pues yo lo pongo en español bueno --> creo que es algo algún micro o quieren hacer alguna pregunta perdón --> sí bueno o quienes lo manejamos así al de hecho al revés pues nos vamos al al --> mandarín no no yo la verdad es que prefiero el español entonces este --> listo no ahí tenemos el la interfaz y y listo ahí yo puedo estar es que --> buscando filtros puedo filtrar y por nombre del servicio por lo que tú --> con con las instrucciones que me dicen acá no son todos los que va a reportar --> son todos los que si yo los configuro todos aquellos que configure son los --> que le van a reportar así que va con los que yo podría este entrar entonces --> si te fijas aquí yo tengo varios filtros puedo puedo preguntarle por --> nombre de servicio aquí tengo metidos si quien en estos tres en orden en --> puedo hacer búsqueda de trazas va o simplemente le puedo decir aquí que --> corra todo y me va a estar trayendo trazas yo aquí tengo ya porque son --> ejemplos de peticiones que ya hice incluso desde ayer y que ya nada más --> fui reviviendo si se acuerdan que hicimos ejemplos de del error no --> cuando hicimos el usuario y demás pues aquí como yo lo conecte pues --> ya lo trazo pero vamos a hacer uno desde cero para que se muestre este --> que digo que final se va a mapear de la misma forma no por ejemplo si --> nosotros trajeramos el identificador de usuario nada más que según yo sí --> lo va a reportar incluso llegando desde el que yo le digo que me traiga el --> usuario 4 que según yo no existía ahí nos va a devolver un autorizado --> bueno este es otro error este error no lo reporta porque esto no es un --> error como tal aquí simplemente el toque en este no está funcionando --> lo que yo puedo hacer más bien es en vez de pasarme por el gateway aquí le --> voy a decir que no se guarde le voy a decir directamente al micro --> servicio no le voy a pegar vamos a darle por ejemplo un get user my ID --> y le voy a poner el por ejemplo el 5 que es un usuario que no existe --> y al momento de hacerlo así ya me está dando un ahora sí este es un --> server que de hecho traigo otro ejemplo también aquí mapeado de hecho está --> en cualquiera de los tres vamos a agarrar otra vez el usuario por --> ejemplo y cuando le haces una petición no me acuerdo que en poin en que --> en poin lo puse a pues en el mismo de cuando tú haces un by ID aquí --> tendríamos que detenerlo y descomentar esta línea y si nosotros --> hiciéramos ese ejemplo cuando le pegáramos al --> en poin de obtener los usuarios por ID si yo descomento esta línea pues --> obviamente va a dar un problema de división entre cero ya viste puse ahí --> una línea que no la detecte la compilación sino que cuando esté --> corriendo va a mandar ese exception cuando yo le pegue este en poin y esa --> traza también la va a reportar va entonces podríamos también hacer ese --> ejemplo parando el micro comentando y descomentando esta línea en este --> caso pues lo voy a dejar así con este con este error de no encontrar al --> usuario en el 5 y tiene escasos segundos que yo corrí esto si yo le doy --> correr la traza aquí te dice que bueno tiene un minuto que lo corrió te --> dicen dónde se reportó en el microservicio de usuario y te está --> diciendo incluso yo le puedo decir a ver dime qué de qué se trata y aquí --> me está dando varias cosas y este es el este es el identificador que te --> devuelve la librería de sleuth si tú buscas esta traza por ejemplo acá en --> los logs este en los usuarios bueno yo aquí la de los logs pero si yo --> aquí le doy buscar ahí me va a encontrar la traza y si tú te fijas te --> va haciendo todo el seguimiento te va diciendo desde que hiciste la --> petición desde que se fue guardando al al este a la transacción y te --> está mostrando cómo se fue a la base de datos o sea te encuentra prácticamente --> ahí te encuentra todo ahí son 45 registros que encuentra relacionadas a --> la petición que tú este que tú lanzaste va entonces esto esta es la --> traza que les quería decir que encuentra esta otra librería que se --> llama sleuth a ver ahí dame una oportunidad porque esto se vuelve loco --> estoy haciendo scroll pero ya sé ya sé ya se controla solo a ver nada más --> déjamelo vuelvo a buscar ahí está entonces --> pues realmente la máquina la puse con el tope de memoria entonces este --> seguramente si ocupa varios pero pero bueno todo esto está como diseñado --> para que aguante estos procesos o sea el uso de los de varios microservicios --> pues no no le van a representar bastante más mucha carga entonces este --> si va entonces si te fijas esa esa es identificador lo vamos siguiendo vamos --> siguiendo y su historia ahí te va diciendo cómo llega a la base de --> datos a jpa y aquí ya te va diciendo no ya falló la petición la --> hasta que llega entonces tú puedes ir siguiendo la traza con ese con ese --> identificado y viceversa no imagínate que tú eres una persona que está --> revisando los blogs dame chance es que aquí no sé por qué se va el --> escrón y se va de más pero lo que quería mostrarles es esto no te --> fijas aquí te dice cómo va a si quien como reporta te dice cómo lo está --> reportando con qué traza tú puedes buscar como te decía viceversa no --> puedes encontrar esta traza la puedes poner la puedes copiar de aquí de tus --> blogs y imagínate que quieres más detalle porque dices no existe medio --> imposible te vas a si quien va y tú puedes hacer una búsqueda por traza --> es decir aquí le puedes decir dame la idea de traza yo lo copio y ahí --> también en automático te lleva al problema donde se generó aquí si te --> fijas aquí podrías ver la documentación de si quien pues ir viendo --> qué hace más con detalles pues todos los los la información que aquí te --> pinta no pero aquí creo que es bastante clara te estaba diciendo que fue una --> excepción de not found que de hecho es lo que hicimos no hicimos buscar --> un usuario que no existe en la base de datos nos manda el status code --> error que son 500 que si te fijas es el mismo que que reporta aquí --> 500 entonces esto es si quien va te dice incluso en donde fue un método del --> modelo vista controlador en un control te va diciendo toda esta parte no que --> que seguramente ya con más detalle con más práctica pues la vas a poder --> este entender de mejor forma va pero entonces esto es si quien no sé si --> queda si quien combinado con la traza de sleuth no sé si queda alguna --> duda alguna pregunta con con este componente --> está bueno no --> si si está está está bueno entonces este pues bueno esa es la --> configuración creo que no fue tan compleja tampoco es más que nada ir --> siguiendo y la la presentación y tenerla ahí la paciencia pero bueno --> entonces pues con eso terminaría básicamente todo el temario de lo que --> estábamos este --> revisando si después de esto hay otros dos ejercicios que hay que hacer --> uno es este me piden hacer estas preguntas entonces tendríamos que --> estarlas ahorita se las voy diciendo para que entre todos votemos para ver --> cómo le hacemos tengo que la verdad me descontrola un poquito del tema del --> de la diferencia del horario porque lo tenía mapeado más como de 8 a 4 --> ahorita se me se me va un poquito y la se me movió entonces este --> generalmente yo esto lo dejo al final pero también tenemos que hacer el --> tema de la práctica también se viene la hora de la comida y que más --> también se viene la evaluación de ustedes hacia mí entonces lo que --> podemos hacer es --> yo les iba a proponer si les parece hacemos esto de lo que va en la --> última media hora de aquí a las dos --> contestamos estas preguntas las mandamos por por correo las ponemos --> aquí en el chat y este tomamos después de dos a tres horas de la --> comida y en las últimas dos horas que son de 3 a 5 nos ponemos a hacer esta --> práctica la práctica básicamente es levantar todo lo que tenemos acá o sea --> vamos a bajar los repositorios y les vamos a ir configurando basándonos en --> las ramas de develop va entonces esta es la práctica nada más es --> replicar todo para que ustedes también lo tengan en su ambiente y esa --> práctica pues ya con esa práctica ya se van las dos horas --> este que más y ya en final los últimos cinco minutos les paso el enlace que es --> para que ustedes hagan la evaluación hacia mí va y digo eso es es como lo --> último no la esta evaluación es a retro y este incluso la pueden hacer --> terminando el la llamada no terminamos la llamada y ya hacen --> como ven les parece el flujo que que podemos seguir si --> perfecto va no hay alguna objeción nadie todos de acuerdo listo --> bueno entonces voy a dejar esta pantalla esta lámina a ver si se se ve según --> yo si se ve todo son tres preguntas la verdad es que son bastante sencillas --> creo yo básicamente es definir que es spring cloud sale luego vámonos a la --> pregunta dos que es mencionar un componente de spring cloud que sea parte --> del temario y otro que no se acuerdan que vimos ahí en el día de ayer una --> página en donde se veían varios este varios componentes unos estaban --> dentro del temario otros no es básicamente de ahí podemos sacar la --> respuesta y todo está en la presentación de hecho y el último --> punto que tal vez sería el más este elaborado hay que describir con --> nuestras propias palabras el flujo de spring cloud bus va con cafca es decir --> necesitamos entender cómo es que cafca funciona como un bus y viene a ser la --> actualización de variables desde el config repo hasta el microservicio en --> cuestión va entonces todo esto viene en las presentación y es lo que hemos --> estado revisando entonces cualquier duda que tengan la idea es más bien --> que si existe preguntas sobre esto pues lo podemos este aclarar si no queda --> claro algo lo podamos volver a repasar va como ven entonces ésta la voy a --> dejar así en no no es cierto es que me fui hasta acá --> vamos a dejar aquí presentó en no si quieres en el chat ahí nada más --> ponme 1.1 tu respuesta 2.1 tu respuesta 3.1 tu respuesta y como --> se mapea el mensaje con tu usuario ya con eso yo lo va entonces de aquí a las --> dos voy a poner la alarma si terminan antes pues ya se pueden ir a la hora de --> descanso no a la hora de la comida y ya nos veríamos a las a las tres --> bueno quienes van acabando por favor lo ponen ahí en el chat --> dale dale no te preocupes sin problema ahora suerte hasta luego --> entonces para todos los demás no hay tema está clara la actividad quieren que --> repasemos algo o todo bien listo va entonces este voy a poner mío mi --> micrófono y este estar aquí al pendiente va --> pongo mío y vuelvo a poner la presentación --> ok mira este lo que hay que hacer es este lo siguiente vamos a en esta --> lámina que veo que puse que es la de las preguntas --> tenemos que contestar estas tres preguntas la forma de contestar es en --> el chat del grupo ahí me pones 1.1 tu respuesta 2.1 tu respuesta 3.1 tu --> respuesta va y ya con como el mensaje se liga con tu usuario pues ya yo con eso --> que ha hecho la respuesta y listo son 30 minutos si terminas antes ya nada --> más dejas ahí el mensaje y ya te puedes ir a la hora de la comida de --> 2 a 3 y ya de 3 a 5 que es hasta donde terminar vamos a seguir con la --> práctica de ambientar todo esto que que vimos de este es de hecho todo --> todo lo vimos en el curso viene aquí en la presentación si alguien tiene --> alguna duda sin problemas lo podemos repasar otra vez y listo --> pero si si todo bien va va que va perfecto no no no ahora sí que tú --> respondes a como las encuentras a como te sientas como como era la --> la práctica cuando hacías el examen no en la respondías primero a --> las que te sentías como con más confianza y le dejabas al último las --> más complejas no las más laboriosas entonces no no hay bronca tú no --> respondes como como como se te como como se te venga va listo --> va pues ya varios han contestado --> y entonces quedan todavía seis minutos los que ya contestaron ya sin --> problemas se pueden ir a la pues a la hora de la comida sería de --> de 2 a 3 va entonces nos volvemos a ver aquí en las tres --> y continuamos con lo de la práctica y los que falten pues ahí todavía hay --> tiempo para para mandar ahí las respuestas --> alguien se le está complicando las preguntas a nadie va que va entonces --> voy a poner el y nos vemos a las tres va de 2 a 3 tomemos la hora y --> nos volvemos a conectar aquí a las tres perfecto provecho