Preguntas de la entrevista de Java: artículos de SpringCloud

一 、 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 , sin

    Presta 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 independiente

    Tambié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 pueden

    Utilice 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 grande

    sistema 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 SpringCloud

Utilice 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 declarativos

                                Cliente
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úster

y 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áticos

cargas 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 operativos

                 pregunta

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ógico

                springcloud es
la puerta de enlace del servicio eureka/zookeeper: dubbo en sí no está implementado, solo a través de

                Otra 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 Eureka

Servicio 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 cuelga

No 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 enlace

Despué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 solicitudes

Ruega 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 ser

                llamado 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 llamada

                  Un 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, el

Indicadores 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 servicio

               Modo 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 aislados

               Un 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 Ribbon

Una 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, necesita

Cooperar 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 funciones

Para 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 unificado

Gestió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, con

               Una variedad de estrategias de llamadas de equilibrio de carga;
Hystrix: componentes de servicio tolerantes a fallas, que implementa el modelo de disyuntor

               modo para prever errores y retrasos en los servicios dependientes

               Proporciona tolerancia a fallos;
Feign: declarativo basado en Ribbon y Hystrix

             Componente de llamada de servicio;
Zuul: componente de puerta de enlace API, que proporciona enrutamiento y

          funció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ápidamente

Construir 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 Flow

Un 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 Apache

Componente 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 Cloud

Puerta 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 Cloud

La segunda versión SRX de la versión de Greenwich.

Actualmente la última versión de Spring Cloud es Hoxton

Supongo que te gusta

Origin blog.csdn.net/m0_72041293/article/details/132394715
Recomendado
Clasificación