一 、 Nube de primavera
1. ¿Qué es la arquitectura de microservicios?
La arquitectura de microservicio consiste en dividir el programa de aplicación único en múltiples
Aplicaciones , estas múltiples aplicaciones se convierten en microservicios.
servicios, cada microservicio se ejecuta en su propio proceso, y
Comunicarse mediante mecanismos ligeros.
Estos servicios se dividen en torno a capacidades empresariales y automáticamente
mecanismo de implementación para implementar de forma independiente, estos servicios pueden hacer
Utilice diferentes lenguajes de programación y diferentes bases de datos para garantizar
Gestión centralizada mínima
2. ¿Por qué necesitas aprender Spring Cloud?
springcloud se basa en el elegante y simple SpringBoot
Jie combina los excelentes marcos de servicios del mercado, a través de
Reempaquetado y protección mediante estilo SpringBoot
Principios complejos de configuración e implementación.
springcloud funciona de inmediato , solo se necesita un frasco
¡Solo depende de ello!
La mayoría de los submódulos de springcloud atacan directamente los puntos débiles,Al igual que la solución entre dominios resuelta por zuul, la solución de equilibrio de carga resuelta por fegin
Equilibrio, mecanismo de fusible de hystrix, etc.
3. ¿Qué es Spring Cloud?
SpringCloud es una colección ordenada de una serie de marcos .
Utiliza la conveniencia de desarrollo de SpringBoot para inteligentemente
Simplifica el desarrollo de infraestructura de sistemas distribuidos como
Registro de descubrimiento de servicios, centro de configuración, enrutamiento inteligente,
Bus de mensajes, equilibrio de carga, disyuntor, monitoreo de datos
El control, etc., puede utilizar el estilo de desarrollo SpringBoot.
Inicio e implementación con un solo clic
SpringCloud no reinventa la rueda, sólo
Es un producto relativamente maduro y práctico desarrollado por varias empresas.
Combinado con el marco de servicio de prueba real, a través de Spring
El reempaquetado estilo bota protege la configuración compleja
y principios de implementación, y finalmente dejar un conjunto de reglas simples.
Desarrollo de sistemas distribuidos que sean fáciles de entender, implementar y mantener.
kit de pelo
4. ¿Cuáles son las ventajas y desventajas de Spring Cloud?
ventaja:
① El grado de acoplamiento es relativamente bajo y no afectará el desarrollo de otros módulos.
② Para
reducir el costo del equipo, se puede desarrollar en paralelo , sinPresta atención a cómo se desarrollan otras personas, primero presta atención a tu propio desarrollo.
Fa
③ La configuración es relativamente simple y se puede realizar básicamente con anotaciones.No es necesario utilizar demasiados archivos de configuración
④ Los microservicios son multiplataforma y se pueden utilizar en cualquier idioma.Desarrollo
⑤ Cada microservicio puede tener su propia base de datos independienteTambién hay una base de datos pública
⑥ para escribir directamente el código back-end sin prestar atención a cómo funciona el front-end.Desarrollo, simplemente escriba su propio código de back-end directamente y luego
Después de exponer la interfaz, la comunicación del servicio se realiza a través del componente.
defecto:
① La implementación es más problemática, lo que trae ciertos problemas a los ingenieros de operación y mantenimiento.
② La gestión de datos es más problemática
porque los microservicios puedenUtilice una base de datos para cada microservicio
③ Las pruebas de integración del sistema son engorrosas
④ El monitoreo del rendimiento es engorroso (es mejor desarrollar una base de datos grandesistema de monitoreo de pantalla)
5. ¿Cuál es la diferencia entre SpringBoot y SpringCloud?
SpringBoot se centra en el desarrollo rápido y conveniente de individuos
El microservicio general
SpringCloud es una coordinación e integración de microservicios globales.marco de gestión, será desarrollado por SpringBoot
Integre y administre microservicios individuales para cada microservicio.
Provisión entre servicios, gestión de configuración, descubrimiento de servicios, desconexión.
Enrutadores, enrutadores, microagentes, buses de eventos, bloqueos globales,
Servicios integrados como campañas de toma de decisiones, sesiones distribuidas, etc.
SpringBoot se puede utilizar de forma independiente sin SpringCloudUtilice el proyecto de desarrollo, pero SpringCloud es inseparable
SpringBoot, que pertenece a la relación de dependencia SpringBoot
Concéntrese en desarrollar un único microservicio individual de forma rápida y cómoda,
SpringCloud se centra en el marco de gobernanza de servicios globales
6. ¿En qué consiste Spring Cloud?
SpringCloud Eureka : registro y descubrimiento de servicios
SpringCloud Zuul : puerta de enlace de servicios
SpringCloud Ribbon : equilibrio de carga
del cliente SpringCloud Feign : servicios web declarativosCliente
SpringCloud Hystrix : disyuntor
SpringCloud Config : gestión de configuración unificada
distribuida y más de 20 marcos, código abierto actualizado
7. ¿Qué problemas enfrentamos al usar SpringBoot para desarrollar microservicios distribuidos?
Complejidad asociada con los sistemas distribuidos : estos gastos generales incluyen
Problemas de red, sobrecarga de latencia, problemas de ancho de banda, problemas de seguridad
Service
Discovery : la herramienta Service Discovery administra procesos en un clústery cómo los servicios se encuentran y se comunican entre sí. implica un
directorio de servicios, registrar servicios en el directorio y luego poder
Capacidad para encontrar servicios en este directorio y conectarse a ellos
Redundancia : problemas de redundancia en sistemas distribuidos
Equilibrio de carga: el equilibrio de carga mejora en múltiples recursos informáticoscargas de trabajo como computadoras, grupos de computadoras,
enlace de red, unidad central de procesamiento o unidad de disco
Rendimiento distribuido : problemas de rendimiento debido a diversos gastos generales operativospregunta
8. ¿Cuál es la diferencia entre SpringCloud y Dubbo?
Método de llamada de servicio: dubbo es RPC
springcloud es el centro de registro de Rest Api : dubbo es el cuidador del zoológicospringcloud es
la puerta de enlace del servicio eureka/zookeeper: dubbo en sí no está implementado, solo a través deOtra integración de tecnología de terceros;
springcloud tiene una puerta de enlace de enrutamiento Zuul,
Como servidor de enrutamiento, el consumidor
Distribución de solicitudes, springcloud admite interrupción de circuitos
El archivo de configuración está perfectamente integrado con git,
admite control de versiones y el bus de transacciones implementa la configuración.Actualización del archivo de configuración y autoensamblaje del servicio, etc.
Una serie de elementos de arquitectura de microservicios.
dos, eureka
9. ¿Qué significa registro y descubrimiento de servicios? ¿Cómo lo implementa Spring Cloud?
Cuando iniciamos un proyecto, normalmente lo hacemos en propiedades.
Haz toda la configuración en el archivo, con más y más.
Desarrollo e implementación de servicios, agregando y modificando estos cambios de propiedades.
más complejo , algunos servicios pueden estar inactivos y algunos
Estas ubicaciones están sujetas a cambios; cambiar las propiedades manualmente puede
puede causar problemas
En este caso se puede realizar el registro y descubrimiento del servicio Eureka.
La ayuda se proporciona a continuación, ya que todos los servicios están en Eureka.
Regístrese en el servidor y llame al servidor Eureka.
completa la búsqueda , por lo que no es necesario procesar ninguna
cambio y procesamiento
10. ¿Qué es Eureka?
Eureka como función de registro de servicios de SpringCloud
Servidor de funciones, es el centro de registro de servicios, en el sistema.
Otros servicios utilizan
el cliente de Eureka para conectarlo a EurekaServicio y mantener el latido del corazón, para que los trabajadores
Los miembros pueden monitorear cada uno a través del Servicio Eureka
¿Los microservicios funcionan correctamente?
11. ¿Cómo logra Eureka una alta disponibilidad?
Agrupe, registre varios Eureka y luego coloque Spring
Los servicios en la nube se registran entre sí, clientes de Eureka
Al obtener información acceder a ella en el orden de Eureka
12. ¿Cuál es el modo de autoprotección de Eureka?
De forma predeterminada, si el Servicio Eureka está en un
El latido de un microservicio no se recibe dentro de un período de tiempo determinado.
El Servicio Eureka entrará en modo de autoprotección,
En este modo, Eureka Service protegerá el servicio.
La información del registro no se elimina en el registro.
Datos, cuando se restablece la falla de la red, Eureka Servic
El nodo saldrá automáticamente del modo de autoprotección.
13. ¿Qué hace DiscoveryClient?
El registro se puede obtener en el centro de registro según el alias del servicio.
Información del servidor registrado
14. Tanto Eureka como ZooKeeper pueden proporcionar funciones de registro y descubrimiento de servicios. ¿Por favor dígame la diferencia entre los dos?
Si el servicio de nodo en ZooKeeper no funciona, se elegirá .
Los servicios de registro quedaron paralizados durante las elecciones, aunque la mayoría
Eventualmente se recuperará, pero no estará disponible durante las elecciones.
El ejemplo es cambiar el microservicio para hacer un clúster, y debe haber uno
El maestro y otros son esclavos de
Eureka, cada nodo tiene una relación igualitaria y el servidor se cuelgaNo importa , mientras haya un Eureka.
Para garantizar que el servicio esté disponible y los datos estén actualizados, si
Los datos consultados no están actualizados porque
Causado por el modo de autoprotección de Eureka.
Eureka es esencialmente un proyecto ,
ZooKeeper es solo un proceso
. Eureka puede manejar muy bien las fallas de la red.hacer que algunos nodos pierdan contacto, en lugar de
ZooKeeper también paraliza todo el sistema de registro
ZooKeeper garantiza CP,
Eureka garantiza AP
CAP: C: Consistencia>Consistencia;Compensaciones: (consistencia fuerte, consistencia monótona, sesión uno
Consistencia, consistencia eventual, consistencia débil)
A: Disponibilidad>Disponibilidad;
P: Tolerancia de partición > Tolerancia de partición;
3. Zuul
15. ¿Qué es una puerta de enlace?
La puerta de enlace equivale a la entrada de una arquitectura de servicio de red , por lo que
Una solicitud de red debe reenviarse a un servidor específico a través de la puerta de enlace.
servicio
16. ¿Cuál es la función de la puerta de enlace?
Gestión unificada de solicitudes de microservicios, control de autoridad, equilibrio de carga.
Saldo, reenvío de rutas, monitoreo, lista negra de control de seguridad y
Lista blanca, etc.
17. ¿Qué es SpringCloud Zuul (puerta de enlace de servicio)?
Zuul es una solución madura para SpringCloud
Según el esquema, será diferente según la ruta de la solicitud, la puerta de enlace
Ubicará las solicitudes de microservicio y proxy especificadas en diferentes
La misma interfaz de microservicio, oculta el microservicio desde el exterior.
dirección de interfaz real
Tres conceptos importantes:
Tabla de enrutamiento dinámico : Zuul admite enrutamiento Eureka, manual
Ambos admiten el posicionamiento de enrutamiento de actualización automática : según la ruta de solicitud, Zuul tiene la suya propia
Un conjunto de reglas de servicio de ubicación y expresiones de enrutamiento que coinciden con
el proxy inverso : solicitud del cliente a la puerta de enlace de enrutamiento, puerta de enlaceDespués de la aceptación, envíe una solicitud al objetivo y obtenga una respuesta.
luego al cliente
Se puede utilizar con Eureka, Ribbon, Hystrix y otros componentes.
Usados juntos, los escenarios de aplicación de Zuul:
Exposición externa, verificación de permisos, agregación de servicios, auditoría de registros, etc.
18. ¿Cuál es la diferencia entre una puerta de enlace y un filtro?
La puerta de enlace es para analizar y filtrar todas las solicitudes de servicio,
Los filtros son para servicios individuales .
19. ¿Cuáles son los marcos de puerta de enlace más utilizados?
Nginx, Zuul, puerta de enlace
20. ¿Cuál es la diferencia entre Zuul y Nginx?
Zuul está implementado en lenguaje java y sirve principalmente a java.
Proporcionar servicios de puerta de enlace , especialmente en arquitectura de microservicios.
Operación más flexible de la puerta de enlace
Nginx está implementado en lenguaje C y su rendimiento es superior al de Zuul.
Sin embargo, para implementar operaciones personalizadas se requiere estar familiarizado con el lenguaje lua, que
tiene altos requisitos para los programadores. Puede usar Nginx como Zuul.grupo
21. ¿Ahora que Nginx puede implementar una puerta de enlace? ¿Por qué todavía necesitas usar el marco Zuul?
Zuul es la puerta de entrada para la integración de SpringCloud, utilizando
Escrito en lenguaje Java, puede soportar SpringCloud
ofrecer servicios más flexibles
22. ¿Cómo diseñar un conjunto de interfaces API?
Teniendo en cuenta la clasificación de la interfaz API, la interfaz API se puede dividir en
Interfaz API abierta e interfaz API de intranet, intranet
La interfaz API se utiliza en la red de área local para proporcionar servidores internos.
Servicio , interfaz API abierta para unidades de cooperación externas.
Proporcione llamadas de interfaz , debe seguir el permiso Oauth2.0
Protocolo de autenticación, pero también es necesario considerar la seguridad, idempotente
problemas sexuales
23. ¿Qué métodos se utilizan habitualmente en ZuulFilter?
Run() : la lógica empresarial específica del filtro.
shouldFilter() : determina si el filtro es válido.
filterOrder() : orden de ejecución del filtro
filterType() : posición de intercepción del filtro.
24. ¿Cómo implementar el enrutamiento y reenvío dinámico de la puerta de enlace Zuul?
Interceptar solicitudes a través de la configuración de ruta , a través de ServiceId
Vaya al centro de configuración para obtener la lista de servicios reenviados , en Zuul
Utilice Ribbon para lograr el equilibrio y reenvío de carga local
25. ¿Cómo construye la puerta de enlace Zuul un clúster?
Utilice el upstream de Nginx para configurar el conjunto de servicios Zuul
Grupo, intercepte la solicitud por ubicación y reenvíela a
En sentido ascendente , el mecanismo de sondeo se utiliza de forma predeterminada para los clústeres Zuul.
Enviar petición
4. Cinta
26. ¿Cuál es el significado de equilibrio de carga?
La agrupación consiste en asignar una tarea a varias personas.
Si quieres fabricar 1000 productos, te costará 10 por persona.
Dios, le pedí a 10 personas que lo hicieran por un día, este es el set.
Grupo, el equilibrio de carga se utiliza para controlar el clúster , él
Deja que la persona que hace más trabaje lentamente haga el resto, y deja que lo haga lentamente.
A la persona que tiene menos trabajo se le pide que aumente la cantidad y le deje hacer más.
En informática, el equilibrio de carga se puede mejorar entre computadoras,
grupos de computadoras, enlaces de red, unidades centrales de procesamiento o
Análisis de carga de trabajo de múltiples recursos informáticos, como unidades de disco.
paño
El equilibrio de carga está diseñado para optimizar el uso de recursos y maximizar el rendimiento.
volumen, minimizar el tiempo de respuesta y evitar cualquier recurso único
sobrecarga , utilizando múltiples componentes para el equilibrio de carga sin
Sí, los componentes individuales pueden ser redundantes para mejorar la confiabilidad.
y disponibilidad
El equilibrio de carga generalmente implica software o hardware especializado, como
Proceso de servidor de conmutador multicapa o sistema de nombres de dominio
27. ¿Qué es la cinta?
Ribbon es un proyecto de código abierto lanzado por Netflix, principalmente
La función es proporcionar al software del cliente un algoritmo de equilibrio de carga.
El componente del cliente Ribbon proporciona una serie de configuraciones perfectas.Elementos como tiempo de espera de conexión, reintento, etc.
En pocas palabras, aparece en el archivo de configuración.
En algunas máquinas, Ribbon le ayudará automáticamente
Una regla (como sondeo simple, conexión aleatoria, etc.) para conectarse
En estas máquinas, también podemos usar fácilmente Ribbon para implementar
Ahora un algoritmo de equilibrio de carga personalizado (algo similar a Nginx)
28. La diferencia entre Nginx y Ribbon
Nginx es un proxy inverso y puede lograr el equilibrio de carga al mismo tiempo .
nginx intercepta las solicitudes de los clientes utilizando la raíz de la estrategia de equilibrio de carga
Reenviar según la configuración ascendente equivale a solicitar
Reenvío a través del servidor nginx
Ribbon es el equilibrio de carga del cliente , que lee la información del servidor de destino desde el centro de registro
y luego el cliente adopta la estrategia de sondeo.Un pequeño acceso directo al servicio , todo el proceso se opera en el lado del cliente.
29. Principio de implementación subyacente de la cinta
Ribbon usa DiscoveryClient para leer desde el registro
Obtenga la información del servicio de destino, cuente las mismas solicitudes de interfaz,
Utilice el algoritmo de porcentaje restante para obtener el índice del clúster de servicios de destino.
Devuelve la información del servicio de destino obtenida
con la anotación @LoadBalanced para permitir la carga del cliente.balanceo de carga
5. Hystrix
30. ¿Qué es un disyuntor?
Cuando un servicio llama a otro servicio por motivos de red o
Si hay un problema por sus propios motivos, la persona que llama esperará a ser llamada.
Respuestas del encuestado
Cuando más solicitudes de servicio a estos recursos resultan en más solicitudesRuega esperar, se produce un efecto en cadena (efecto avalancha)
El disyuntor tiene tres estados.
Estado abierto: alcanzar un cierto número de veces dentro de un período de tiempo no puede
Llamado y monitoreado muchas veces sin signos de recuperación,
El disyuntor está completamente abierto, por lo que la siguiente solicitud será
No se solicitará el servicio
Estado semiabierto: Hay señales de recuperación en un corto periodo de tiempo , y el disyuntor se activará.Envía parte de la solicitud al servicio y llámalo normalmente.
Cuando el disyuntor está cerrado
Estado cerrado: Cuando el servicio está siempre en estado normal y puede serllamado a menudo
31. ¿Qué es Hystrix?
En un sistema distribuido, definitivamente dependeremos de varios servicios,
Entonces estos servicios definitivamente fallarán, solo
Provocará una avalancha, Hystrix es una de esas herramientas,
Arma anti-avalancha , tiene degradación de servicio, espoleta de servicio,
Algunas tecnologías para prevenir avalanchas como el aislamiento y monitoreo de servicios
Hystrix tiene cuatro métodos anti-avalanchas:
Degradación del servicio : llame al método local si falla la llamada a la interfaz
Devuelve un fusible
de servicio vacío : si la llamada de la interfaz falla, ingresará a la interfaz de llamadaUn método de fusible definido de antemano,
Devuelve información de error Aislamiento
del servicio : aísla la interacción entre servicios Monitoreo del servicio : cuando se invoca un servicio, elIndicadores en ejecución como el recuento y el número de solicitudes exitosas.
grabado _
32. ¿Hablar del efecto avalancha de servicios?
El efecto avalancha es que en proyectos de Internet a gran escala, cuando un servicio
Cuando un servicio deja de funcionar, otros servicios que llaman a este servicio también
Habrá tiempos de inactividad, llamadas entre microservicios de grandes proyectos.
son interoperables, lo que irá ampliando paulatinamente la indisponibilidad del servicio
grandes entre sí, de modo que el servicio de todo el proyecto
El servicio falla.
Las razones del efecto avalancha son las siguientes:
① Hay un error en el código de un único servicio.
②El servicio falla debido al aumento en las visitas solicitadas
(como los sobres rojos en los grandes centros comerciales y la función de púas).
③ La falla del hardware del servidor también provocará que algunos servicios fallen.
disponible.
33. En microservicios, ¿cómo proteger los servicios?
Generalmente utilice el marco Hystrix para lograr el aislamiento del servicio.
Evitar el efecto avalancha de los servicios, para lograr la protección.
El efecto del servicio.
En los microservicios, los altos accesos simultáneos a bases de datos conducen al servidor.
El hilo del servicio está bloqueado, por lo que un solo servicio está inactivo y el servicio no está disponible.
El uso se extenderá a otros servicios, lo que provocará que el servicio general sea catastrófico.
Consecuencias: el uso de degradaciones de servicios puede asignar efectivamente diferentes servicios
Asigne recursos y envíe un mensaje amigable una vez que el servicio no esté disponible.
No ocupa otros recursos del servicio, evitando así una única caída del servicio.
El bloqueo provoca la indisponibilidad del servicio general.
34. ¿Cuál es la causa del efecto de avalancha de servicio?
Porque Tomcat tiene solo un grupo de subprocesos por defecto
Mantener todas las solicitudes enviadas por el cliente, en este momento un cierto
Cuando se accede mucho a la interfaz en un momento determinado, ocupará Tomcat
Todos los subprocesos en el grupo de subprocesos, otras solicitudes están en espera
Estado, no se puede conectar a la interfaz de servicio.
35. ¿Hablar sobre degradación del servicio, disyuntor y aislamiento del servicio?
Degradación del servicio: cuando el cliente solicita al servidor,
Evitar que el cliente espere todo el tiempo y no procese
Código de lógica empresarial, devolver directamente a un amigo
Un buen recordatorio para el cliente
Fusible de servicio: uno más directo basado en la degradación del servicioModo de protección, cuando se encuentra en un rango de tiempo estadístico.
El número de errores de solicitud dentro del rango alcanza el valor establecido
(requestVolumeThreshold) o el actual
La tasa de error de solicitud de las solicitudes alcanza el umbral de tasa de error establecido
valor (porcentaje de umbral de error)
Encienda el disyuntor y las solicitudes posteriores van directamente
método alternativo,
inténtelo después de configurar el tiempo (sleepWindowInMillisegundos)Pruebe el aislamiento del servicio de recuperación : Hystrix abre un servicio separado
para servicios aisladosUn grupo de subprocesos independiente , por lo que en el caso de alta concurrencia
No afectará a otros servicios y el aislamiento del servicio tiene
El grupo de subprocesos y el semáforo se implementan de dos maneras, una
Generalmente utilice el método del grupo de subprocesos.
36. ¿Cómo se logra la capa inferior de degradación del servicio?
Hystrix implementa la función de degradación del servicio reescribiendo
El método getFallback() en HystrixCommand,
Cuando ocurre la ejecución del método de ejecución o construcción de Hystrix
Cuando ocurre un error, ejecute el método getFallback() en su lugar
6. fingir
37. ¿Qué es fingir?
Feign es un cliente de servicio web declarativo , que permite
Es más fácil escribir un cliente de servicio web.
Él define el método de servicio que debemos llamar como un método abstracto.El método se puede guardar localmente y no es necesario crearlo usted mismo.
Solicitud HTTP, simplemente llame a la interfaz directamente , pero debe
Tenga en cuenta que el método de llamada debe ser coherente con la firma del método abstracto local.
Todo consistente
38. ¿Cuántas interfaces de llamadas tiene SpringCloud?
Fingir
descansoPlantilla
39. ¿Cuál es la diferencia entre los servicios de llamadas Ribbon y Feign?
El método de llamada es el mismo: la cinta debe ser construida por nosotros mismos.
Solicitud HTTP, simular solicitud HTTP y pasar Resto
La plantilla se envía a otros servicios, los pasos son bastante engorrosos ;
mientras que Feign se basa en RibbonUna mejora, en forma de interfaz, necesitaremos
El método de servicio llamado se define como un método abstracto y se guarda en este
No es necesario que cree una solicitud Http usted mismo
Sí, simplemente llama a la interfaz directamente, pero presta atención.
El método de llamada debe tener exactamente la misma firma que el método abstracto nativo.
A
7. autobús
40. ¿Qué es Spring Cloud Bus?
SpringCloud Bus es como un ejecutor distribuido .
Configuración para aplicaciones SpringBoot extendidas
archivos , pero también se puede utilizar para la comunicación entre aplicaciones
El canal
SpringCloud Bus no puede completar la comunicación por sí solo, necesitaCooperar con MQ para admitir
Spring Cloud Bus es generalmente cooperar con Spring
Cloud Config también se debe utilizar para la actualización en tiempo real de SpringCloud Config en el centro de configuración.Utilice el bus de mensajes SpringCloud Bus
Ocho, configuración
41. ¿Qué es la configuración de Spring Cloud?
SpringCloud Config es un externo
La configuración externa proporciona soporte para servidores y clientes, que puede ser convenientemente
Centralice cómodamente la configuración en cada entorno de microservicios
gestión de estilo
Spring Cloud Config se divide en Config Server y
Configurar cliente dos partes
Config Server es responsable de leer los archivos de configuración y
Exponer la interfaz Http API, configurar el cliente a través de
Llame a la interfaz de Config Server para leer el archivo de configuración
piezas
42. ¿Qué marcos tiene el centro de configuración distribuida?
Apolo, cuidador del zoológico, configuración de springcloud
43. ¿Cuál es la función del centro de configuración distribuida?
Cambie dinámicamente la información de configuración del proyecto sin volver a implementar
proyecto
44. ¿Puede Spring Cloud Config lograr una actualización en tiempo real?
Actualización en tiempo real de la configuración de SpringCloud usando Spring
Bus de mensajes de Cloud Bus
Nueve, puerta de enlace
45. ¿Qué es Spring Cloud Gateway?
SpringCloud Gateway 是 SpringCloud 官
Marco de puerta de enlace de segunda generación de Fang , que reemplaza la puerta de enlace de Zuul
Las funciones comunes de la puerta de enlace incluyen reenvío de rutas, verificación de permisos,
Utilice un bean RouteLocatorBuilder para el control del límite actual y otras funcionesPara crear una ruta, excepto crear una ruta RouteLocator
Builder le permite agregar varios predicados y
filtros, el significado de la afirmación de predicados , como su nombre indica
Es decir, de acuerdo con las reglas de solicitud específicas, el específico
ruta al proceso , los filtros son varios filtros para
Realizar diversos juicios y modificaciones a la solicitud.
46. ¿Proyecto principal de SpringCloud?
Los subproyectos de Spring Cloud se pueden dividir aproximadamente en dos categorías:
Uno es la "SpringBootización" del marco maduro existente.
La encapsulación y la abstracción son también los proyectos más numerosos;
La segunda categoría es la base para desarrollar una parte del sistema distribuido.
La implementación de instalaciones, como juegos SpringCloud Stream.
Juega el papel de Kafka, ActiveMQ
(1) Configuración de Spring Cloud
Config es una herramienta de gestión de configuración centralizada que puede gestionar los archivos de configuración de todos los microservicios y un unificadoGestión de configuración externa, utilizando Git para almacenar la configuración de forma predeterminada,
Admite actualización, cifrado y descifrado de la configuración del cliente
funcionar
(2) Spring Cloud Netflix (énfasis, estos componentes son los más utilizados)
Integración de componentes de código abierto OSS de Netflix , incluidos Eureka,
Hystrix, Ribbon, Feign, Zuul y otros componentes principales
Eureka: componentes de gobernanza de servicios, incluidas anotaciones del lado del servidor
El mecanismo de descubrimiento de servicios del centro de libros y el cliente;
Ribbon: el componente de llamada de servicio del equilibrio de carga, conUna variedad de estrategias de llamadas de equilibrio de carga;
Hystrix: componentes de servicio tolerantes a fallas, que implementa el modelo de disyuntormodo para prever errores y retrasos en los servicios dependientes
Proporciona tolerancia a fallos;
Feign: declarativo basado en Ribbon y HystrixComponente de llamada de servicio;
Zuul: componente de puerta de enlace API, que proporciona enrutamiento yfunción de filtro
(3) Autobús de la nube de primavera
Un bus de mensajes para propagar cambios de estado del clúster , utilizando
Un intermediario de mensajes ligero vincula nodos en un sistema distribuido,
Se puede utilizar para actualizar dinámicamente la información de configuración del servicio en el clúster; en
términos simples, el archivo de configuración se modifica y envía una vez.Solicitud, todos los clientes volverán a leer el archivo de configuración y
deberán utilizar el complemento intermedio MQ
(4) Cónsul de la nube de primavera
Consul es una herramienta de código abierto lanzada por HashiCorp.
Descubrimiento y configuración de servicios para sistemas distribuidos.
Con otros esquemas de registro y descubrimiento de servicios distribuidos,
La solución de Consul es más "integral" y cuenta con anotaciones de servicio integradas
marco de registro y descubrimiento, implementación de protocolo de consenso distribuido, salud
Cheque, almacenamiento de clave/valor, soluciones de centros de datos múltiples,
No es necesario depender de otras herramientas (como ZooKeeper, etc.)
También es más fácil de usar.
Cónsul está escrito en Go, por lo que, naturalmente, es
Portabilidad (compatible con Linux, Windows y MacOS X);
El paquete de instalación contiene solo un archivo ejecutable para una fácil implementación.
Funciona a la perfección con contenedores livianos como Docker
(5) Seguridad en la nube de Spring
Kit de herramientas de seguridad, puede cargar el proxy Zuul.
Equilibre la adquisición de recursos de tokens SSO desde los servicios front-end hasta los servicios back-end
Retransmitir tokens entre servidores de origen, permitiendo a los clientes Feign
El lado se comporta como OAuth2RestTemplate (obtener token
tarjetas, etc.) configurar el proxy descendente en el proxy Zuul
Autenticación
Spring Cloud Security proporciona un conjunto de primitivas,para crear aplicaciones y servicios seguros y operar
Fácil de operar, se puede realizar una gran cantidad de configuraciones externamente (o centralmente)
El modelo declarativo de configuración facilita la configuración remota.
sistema de componentes, generalmente con un servicio central de gestión de identidades
También es muy fácil de implementar en una plataforma de servicios como Cloud Foundry.
Taichung, basado en Spring Boot y Spring
Security OAuth2, puede crear rápidamenteConstruir sistemas que implementen patrones comunes, como el inicio de sesión único,
Retransmisión de tokens e intercambio de tokens
(6) Detective de la nube de primavera
En los microservicios, los servicios suelen dividirse según módulos de negocio,
En el proyecto, el front-end inicia una solicitud y el back-end puede abarcar varios
llamadas de servicio para completar la solicitud
Si el sistema se hace cada vez más grande, las llamadas entre servicios y
La relación llamada se volverá muy complicada. Si una solicitud
La solicitud debe realizarse a través de varios servicios, uno de los cuales es
Se cuelga debido a un retraso en la red y otras razones, entonces en este momento
Necesitamos analizar qué servicio específico tiene un problema.
parecerá difícil
La función de seguimiento de enlaces del servicio Spring Cloud Sleuth es
Puede ayudarnos a encontrar rápidamente la fuente de errores y monitorear
Controlar y analizar el rendimiento en cada enlace de solicitud, etc.
(7) Corriente de nubes de primavera
Marco de microservicio ligero impulsado por eventos, que puede utilizar de forma sencilla
Un único modelo declarativo para enviar y recibir mensajes, principalmente
Implementado como Apache, Kafka y RabbitMQ
(8) Tarea de nube de primavera
El objetivo de Spring Cloud Task es proporcionar SpringBoot
La aplicación proporciona funcionalidad para crear microservicios de corta duración.
En SpringCloud Task, podemos de manera flexible
Ejecute cualquier tarea de forma dinámica, asigne recursos según demanda y
Una vez completada la tarea, el resultado de la recuperación
Tasks es parte de Spring Cloud Data FlowUn proyecto básico que permite a los usuarios convertir casi cualquier Spring
La aplicación de inicio se ejecuta como una tarea de corta duración
(9) Guardián del zoológico de Spring Cloud
SpringCloud admite tres métodos de registro Eureka,
Cónsul (escrito en lenguaje go), cuidador del zoológico
Spring Cloud Zookeeper está basado en ApacheComponente de gobernanza de servicios de Zookeeper
(10) Puerta de enlace de la nube de primavera
Spring Cloud Gateway es oficial de Spring según
Proyecto Spring 5.0, Spring Boot 2.0 y
Gateway desarrollado por Reactor y otras tecnologías, Spring Cloud
Gateway tiene como objetivo proporcionar servicios simples y eficientes.
Método de gestión de enrutamiento API eficiente y unificado,
Spring Cloud Gateway como Spring CloudPuerta de entrada al ecosistema, con el objetivo de sustituir a Netflix
Zuul, que no sólo proporciona un método de enrutamiento unificado, sino también
También proporciona las funciones básicas de la puerta de enlace basada en la cadena Filer.
Funciones tales como: seguridad, puntos de monitoreo/enterramiento, limitación de corriente, etc.
(11) Nube de primavera OpenFeign
Feign es un cliente de servicios web declarativo que
Hace que sea más fácil escribir clientes de servicios web,
Para usar Feign, podemos llamar al servidor.
El método se define como un método abstracto y se guarda localmente para agregar un poco
Las anotaciones están bien, no es necesario que crees Http tú mismo.
Por favor, llame directamente a la interfaz, pero preste atención.
El método de llamada debe tener exactamente la misma firma que el método abstracto nativo.
A
Spring Cloud es una colección de subproyectos
Proyecto integral, cada subproyecto tiene un ritmo de lanzamiento diferente.
Para gestionar la versión de Spring Cloud y cada subproyecto
Dependencias, publica un manifiesto que incluye el
La versión del subproyecto correspondiente a una versión de Spring Cloud.
Para evitar el número de versión de Spring Cloud y la versión del subproyecto
Este número es confuso, la versión Spring Cloud usa el nombre
En lugar de números de versión, estas versiones llevan el nombre de
Los nombres de las estaciones del metro de Londres, en orden alfabético.
Para corresponder a la secuencia temporal de la versión, por ejemplo, Ángel es el primero
versión, Brixton es la segunda versión, cuando Spring
El contenido publicado en la nube se acumula hasta un punto crítico o un
Una vez resuelto el ERROR principal, aparece un "servicio
"Versión de lanzamientos", denominada versión SRX, como
Greenwich.SR2 es lanzado por Spring CloudLa segunda versión SRX de la versión de Greenwich.
Actualmente la última versión de Spring Cloud es Hoxton