Microservicios con Spring Boot y Spring Cloud

Los rápidos avances en la entrega y virtualización de software basado en la nube han hecho que muchos desarrolladores cuestionen las capacidades de un enfoque de “BigServer” para implementar aplicaciones web. Spring Boot es una pila de tecnología que se basa en el popular Spring Framework para permitir aplicaciones basadas en Spring como archivos jar independientes que alojan sus propios servidores web. Este enfoque funciona muy bien con la automatización de la implementación y el escalado rápido.

Las aplicaciones altamente distribuidas y basadas en la nube se enfrentan a desafíos adicionales para admitir un entorno dinámico, especialmente en lo que respecta a la configuración, el descubrimiento de servicios, la resistencia y la supervisión del servicio. Spring Cloud adopta y amplía el popular conjunto de herramientas en la nube de código abierto publicado por Netflix (Eureka, Hystrix, Ribbon, etc.).

¡En FTI ofrecemos el mejor curso en profundidad de spring! Este curso de capacitación de dominio de microservicios con Spring Cloud y Spring Boot presenta Spring Boot, Spring Cloud y la suite Netflix OSS como una forma de implementar aplicaciones web y servicios RESTful altamente resilientes y escalables.

Objetivos:

En esta capacitación de dominio de microservicios con Spring Cloud y Spring Boot, los asistentes aprenderán cómo:

  • Crear proyectos de Spring Boot
  • Use bases de datos y JPA en Spring Boot
  • Cree servicios RESTful con Spring Boot
  • Implemente servicios que utilicen Netflix Eureka, Hystrix y Ribbon para crear servicios resilientes y escalables

Dirigido a:

Desarrolladores Back End con conocimientos de Java.

Temario

Capítulo 1. Introducción a Spring Framework

  • ¿Qué es Spring Framework?
  • Filosofías de spring
  • ¿Por qué Spring?
  • Módulos de resorte
  • Requisitos y entornos compatibles
  • Usar Spring con servidores
  • Papel del contenedor de spring
  • Ejemplo de spring
  • Evitar la dependencia en spring
  • Proyectos / marcos de spring adicionales
  • Resumen

Capítulo 2. Configuración de la anotación de spring

  • Contenedores de spring
  • Definición de Spring Bean basada en anotaciones
  • Escaneo de componentes de anotación
  • Definición del alcance del componente mediante anotaciones
  • JSR-330 @ Anotación con nombre
  • JSR-330 @Scope
  • Inyección de dependencia basada en anotaciones
  • Wiring Bean usando @Inject
  • @Autowired – Constructor
  • @Autowired – Campo
  • @Autowired – método
  • @Autowired – Colección
  • @Autowired – Mapas
  • @Autowired & @Qualifier con constructores, campos y métodos
  • @ Calificadores personalizados y con conexión automática
  • @Autowired & Simple Custom Qualifier Field
  • @ Método de calificador personalizado automático y simple
  • @Autowired y CustomAutowireConfigurer
  • Validación de inyección de dependencia
  • @Recurso
  • @PostConstruct y @PreDestroy
  • Resumen

Capítulo 3. Configuración de Spring Framework

  • Clases de configuración de Java
  • Definición de clases @Configuration
  • Cargando @ clases de configuración
  • Modularización de clases de configuración
  • Métodos de calificación @Bean
  • Problemas con el alcance del prototipo
  • Configuración con Spring Expression Language
  • Resolución de mensajes de texto
  • Conversión de propiedad de spring
  • Interfaz Spring Converter
  • Usar convertidores personalizados
  • Editores de propiedades de spring
  • Registro de editores de propiedades personalizados
  • Resumen

Capítulo 4. Introducción a Spring Boot

  • ¿Qué es Spring Boot?
  • Características principales de Spring Boot
  • Spring Boot en la PaaS
  • Comprensión de las anotaciones de Java
  • Anotaciones de Spring MVC
  • Ejemplo de servicio web RESTful basado en Spring MVC
  • Spring Booting su servicio web RESTful
  • Ejemplo de aplicación de Spring Boot Skeletal
  • Conversión de una aplicación Spring Boot en un archivo WAR
  • Configuración externalizada
  • Entrantes
  • El archivo ‘pom.xml’
  • Complemento Spring Boot Maven
  • CÓMO: Crear una aplicación Spring Boot
  • Resumen

Capítulo 5. Spring MVC

  • Spring MVC
  • Módulos web de Spring
  • Componentes Spring MVC
  • DispatcherServlet
  • Motores de plantilla
  • Ejemplo de Spring Boot MVC
  • Asignación de solicitudes de Spring MVC
  • @RequestMapping avanzado
  • Asignaciones de solicitudes compuestas
  • Controladores de anotación Spring MVC
  • Parámetros del método del controlador del controlador
  • Tipos de retorno del método del controlador del controlador
  • Ver resolución
  • Consideraciones de Spring Boot
  • Resumen

Capítulo 6. Descripción general de la integración de la base de datos Spring Boot

  • Soporte DAO en spring
  • Módulos de acceso a datos de Spring
  • Módulo Spring JDBC
  • Módulo ORM de spring
  • DataAccessException
  • @Repository Annotation
  • Usar fuentes de datos
  • Plantillas DAO
  • Plantillas DAO y devoluciones de llamada
  • Soporte de herramientas ORM en Spring
  • Resumen

Capítulo 7. Uso de Spring con JPA o Hibernate

  • Spring JPA
  • Beneficios de usar Spring con ORM
  • Spring @Repositorio
  • Usando JPA con Spring
  • Configurar Spring Boot JPA EntityManagerFactory
  • Aplicación Código JPA
  • Uso de ORM de spring “clásico”
  • Spring JpaTemplate
  • Spring Jpa
  • Funciones de conveniencia de JpaTemplate
  • Consideraciones de Spring Boot
  • Repositorios Spring Data JPA
  • Resumen

Capítulo 8. Introducción a MongoDB

  • MongoDB
  • Funciones de MongoDB
  • Logotipo de MongoDB
  • Posicionamiento de MongoDB
  • Aplicaciones de MongoDB
  • Modelo de datos de MongoDB
  • Limitaciones de MongoDB
  • Casos de uso de MongoDB
  • Lenguaje de consulta MongoDB (QL)
  • Las operaciones CRUD
  • Método
  • Un ejemplo de MongoDB QL
  • Inserciones de datos
  • MongoDB frente a Apache CouchDB
  • Resumen
  • Capítulo 9. Trabajar con datos en MongoDB
  • Lectura de datos en MongoDB
  • La interfaz de consulta
  • La sintaxis de la consulta es específica del controlador
  • Proyecciones
  • Operadores de consulta y proyección
  • Comparación de selección de consultas de MongoDB con SQL
  • Cursores
  • Caducidad del cursor
  • Escribir datos en MongoDB
  • Un ejemplo de operación de inserción
  • La operación de actualización
  • Un ejemplo de operación de actualización
  • Un ejemplo de operación de eliminación
  • Limitar los datos de devolución
  • Clasificación de datos
  • Agregando datos
  • Etapas de agregación
  • Acumuladores
  • Un ejemplo de una tubería de agregación
  • Mapa reducido
  • Resumen

Capítulo 9. Trabajar con datos en MongoDB

  • Lectura de datos en MongoDB
  • La interfaz de consulta
  • La sintaxis de la consulta es específica del controlador
  • Proyecciones
  • Operadores de consulta y proyección
  • Comparación de selección de consultas de MongoDB con SQL
  • Cursores
  • Caducidad del cursor
  • Escribir datos en MongoDB
  • Un ejemplo de operación de inserción
  • La operación de actualización
  • Un ejemplo de operación de actualización
  • Un ejemplo de operación de eliminación
  • Limitar los datos de devolución
  • Clasificación de datos
  • Agregando datos
  • Etapas de agregación
  • Acumuladores
  • Un ejemplo de una tubería de agregación
  • Mapa reducido
  • Resumen

Capítulo 10. Spring Data con MongoDB

  • ¿Por qué MongoDB?
  • MongoDB en Spring Boot
  • Pom.xml
  • Propiedades de la aplicación
  • MongoRepository
  • Métodos de consulta personalizados
  • Palabras clave de consulta admitidas
  • Consultas complejas
  • Crear JavaBean para el tipo de datos
  • Usando el repositorio
  • Resumen

Capítulo 11. Servicios REST de Spring

  • Muchos tipos de servicios
  • Entendiendo REST
  • Servicios RESTful
  • Ejemplos de recursos REST
  • DESCANSO vs JABÓN
  • Servicios REST con Spring MVC
  • Spring MVC @RequestMapping con REST
  • Trabajar con el cuerpo de la solicitud y el cuerpo de la respuesta
  • @RestController Anotación
  • Implementación de servicios JAX-RS y Spring
  • Anotaciones JAX-RS
  • Clientes Java que utilizan RestTemplate
  • Métodos RestTemplate
  • Resumen

Capítulo 12. Spring Security

  • Protección de aplicaciones web con Spring Security 3.0
  • Spring Security 3.0
  • Autenticacion y autorizacion
  • Seguridad programática vs declarativa
  • Obtener Spring Security de Maven
  • Configuración de seguridad de spring
  • Ejemplo de configuración de seguridad de Spring
  • Gerente de autenticación
  • Uso de la autenticación de usuario de la base de datos
  • Autenticación LDAP
  • Resumen

Capítulo 13. Spring JMS

  • Spring JMS
  • JmsTemplate
  • Conexión y destino
  • Configuración de JmsTemplate
  • Gestión de transacciones
  • Ejemplo de configuración de transacción
  • Ejemplo de productor
  • Ejemplo de consumidor
  • Conversión de mensajes
  • Contenedores de escucha de mensajes
  • Ejemplo de receptor asíncrono de POJO basado en mensajes
  • Configuración del receptor asíncrono de POJO basado en mensajes
  • Consideraciones de Spring Boot
  • Resumen

Capítulo 14. Microservicios

  • ¿Qué es un “microservicio”?
  • Una analogía útil
  • SOA – Relación de microservicios
  • ESB – Relación de microservicios
  • Diseños monolíticos tradicionales y su función
  • Desventajas de los monolitos
  • Pasar de un monolito heredado
  • Al mudarse de un monolito heredado
  • Las fuerzas impulsoras detrás de los microservicios
  • ¿Cómo pueden ayudarlo los microservicios?
  • La arquitectura de microservicios
  • Microservicios de utilidad en AWS
  • Interconectividad de microservicios
  • Consideración de interoperabilidad de intercambio de datos
  • Administrar microservicios
  • Implementación de microservicios
  • Incrustar bases de datos en Java
  • Plataformas y marcos de aplicaciones orientados a microservicios
  • Resumen

Capítulo 15. Spring Cloud Config

  • El servidor de configuración de Spring Cloud
  • Por qué es importante la gestión de la configuración
  • Desafíos de la gestión de la configuración en microservicios
  • Separación de la configuración del código
  • Servicio de configuración
  • Cómo funciona el servicio de configuración
  • Archivo de propiedades del servidor de configuración de la nube
  • Integración de Git
  • Propiedades
  • Cliente de configuración
  • Archivo de configuración de cliente de muestra
  • Aplicación de cliente de muestra
  • Actualizaciones dinámicas de propiedades: servidor
  • Actualización dinámica de propiedad: cliente
  • Actualización dinámica de propiedad: ejecutar
  • Resumen

Capítulo 16. Descubrimiento de servicios con Netflix Eureka

  • Descubrimiento de servicios en microservicios
  • Equilibrio de carga en microservicios
  • Netflix Eureka
  • Arquitectura Eureka
  • Comunicaciones en Eureka
  • Retraso de tiempo
  • Implementación de Eureka
  • Fallo de comunicación entre pares entre servidores
  • Configuración del servidor Eureka
  • Cliente / Servicio Eureka
  • Propiedades del cliente de Eureka
  • Interfaz Spring Cloud DiscoveryClient
  • ServiceInstance JSON
  • Interfaz ServiceInstance
  • ¿Qué pasa con los servicios?
  • Eureka y el ecosistema de AWS
  • Resumen

Capítulo 17. Equilibrio de carga con la cinta de Netflix

  • Equilibrio de carga en microservicios
  • Cinta de Netflix
  • Equilibrio de carga del lado del servidor
  • Balance de carga del lado del cliente
  • Arquitectura
  • Reglas de equilibrio de carga
  • RoundRobinRegla
  • AvailabilityFilteringRule
  • WeightedResponseTimeRule
  • RandomRule
  • Regla de evitación de zona
  • Interfaz de IP (conmutación por error)
  • Usando cinta
  • Configuración de YAML
  • Clase de configuración
  • Clase de cliente
  • Implementación de la clase de cliente
  • Integración con Eureka (Service Discovery)
  • Uso de Ribbon en la nube de Amazon AWS
  • Resumen

Capítulo 18. Endurecimiento de aplicaciones con Netflix Hystrix

  • Netflix Hystrix
  • Criterios de diseño
  • Principios de diseño (continuación)
  • Fallos en cascada
  • Patrón de mamparo
  • Patrón de disyuntor
  • Agrupación de subprocesos
  • Solicitar almacenamiento en caché
  • Solicitud colapsada
  • Fallar rapido
  • Retroceder
  • Usando Hystrix
  • Configuración del disyuntor
  • Configuración alternativa
  • Configuración del colapsador
  • Controlador y manejador de descanso
  • Servicio de colapsador (parte 1)
  • Cómo funciona el colapsador
  • Monitor Hystrix
  • Habilitar monitoreo
  • Turbina
  • El monitor
  • Detalles del monitor
  • Resumen

Capítulo 19. Componentes de Edge con Netflix Zuul

  • Zuul es el guardián
  • Gestión de solicitudes
  • Filtros
  • Arquitectura de filtro
  • Propiedades de filtro
  • tipo de filtro()
  • filterOrder ()
  • shouldFilter ()
  • Correr()
  • Cancelar petición
  • Carga dinámica del filtro
  • Comunicaciones de filtro
  • Enrutamiento con Eureka y Ribbon
  • Resumen

Capítulo 20. Rastreo distribuido con Zipkin

  • Zipkin
  • Características de Zipkin
  • Arquitectura
  • El coleccionista
  • Almacenamiento
  • API
  • Consola GUI
  • Página de inicio de la consola Zipkin
  • Ver una traza
  • Detalles de seguimiento
  • Dependencias
  • Detalles de dependencia
  • Zipkin en Spring Boot
  • Configuración Zipkin