Red de conocimiento informático - Consumibles informáticos - Conceptos y diferencias entre clustering, distribución y microservicios

Conceptos y diferencias entre clustering, distribución y microservicios

Reimpreso de: /qq_37788067/article/details/79250623

Concepto:

El clúster es una forma física y la distribución es una forma de trabajar.

1. Distribuido: una empresa se divide en múltiples subnegocios y se implementa en diferentes servidores

2. Clúster: la misma empresa se implementa en múltiples servidores

Distribución se refiere a distribuir diferentes negocios en diferentes lugares. La agrupación en clústeres se refiere a reunir varios servidores para implementar el mismo negocio.

Cada nodo de la distribución puede ser un clúster. Y un clúster no está necesariamente distribuido.

Por ejemplo: tome Sina.com, si hay más personas visitándolo, puede crear un clúster, colocar un servidor de respuesta en el frente y varios servidores en la parte posterior para completar el mismo negocio. hay un acceso comercial, el servidor de respuesta verá. Al servidor que no esté muy cargado se le asignará la tarea.

Distribuido, entendido en un sentido estricto, es similar a un clúster, pero su organización es relativamente flexible. A diferencia de un clúster, tiene una estructura organizativa. Si un servidor colapsa, otros servidores pueden mejorar.

Cada nodo distribuido completa diferentes servicios. Si un nodo colapsa, el servicio será inaccesible.

En pocas palabras, la distribución mejora la eficiencia al acortar el tiempo de ejecución de una sola tarea, mientras que la agrupación en clústeres mejora la eficiencia al aumentar la cantidad de tareas ejecutadas por unidad de tiempo.

Por ejemplo: si una tarea consta de 10 subtareas y cada subtarea tarda 1 hora en ejecutarse individualmente, entonces la tarea tardará 10 horas en ejecutarse en un servidor.

Adopte una solución distribuida y proporcione 10 servidores. Cada servidor solo es responsable de procesar una subtarea, independientemente de las dependencias entre subtareas. Solo toma una hora completar esta tarea. (Un representante típico de este modelo de trabajo es el modelo de computación distribuida Map/Reduce de Hadoop)

La solución de clúster también proporciona 10 servidores, cada uno de los cuales puede manejar esta tarea de forma independiente. Supongamos que llegan 10 tareas al mismo tiempo, 10 servidores funcionarán al mismo tiempo y 1 hora después, se completarán 10 tareas al mismo tiempo, de esta manera, en general, ¡una tarea se completará en 1 hora!

Un buen diseño debe ser una combinación de distribuido y agrupado, distribuido primero y luego agrupado. La implementación específica es dividir el negocio en muchos subnegocios y luego implementar clústeres para cada subnegocio, de modo que. que si cada subnegocio algo sale mal, todo el sistema no se verá afectado en absoluto.

Además, existe otro concepto similar al distribuido y es el de los microservicios.

Los microservicios son un estilo arquitectónico en el que una aplicación de software grande y compleja consta de uno o más microservicios. Cada microservicio en el sistema se puede implementar de forma independiente y cada microservicio está débilmente acoplado. Cada microservicio solo se enfoca en completar una tarea y completarla bien. En todos los casos, cada tarea representa una capacidad de pequeña empresa.

El modo de clúster consiste en implementar el mismo conjunto de servicios en diferentes servidores para acceso externo para lograr el equilibrio de carga de los servicios. La forma de distinguir un clúster se basa en si los servicios de varios servidores implementados son los mismos.

Nota: El modo de clúster requiere compartir sesión para garantizar que el servicio no finalice debido a una falla al obtener una sesión durante el cambio entre diferentes servidores.

En general, configure la implementación del contenedor de carga de Nginx: el almacenamiento en caché de recursos estáticos y el uso compartido de sesiones se pueden implementar de manera incidental. Nginx admite 5000 concurrencias.

La respuesta es sí. Microservicio significa dividir el módulo en una unidad de servicio independiente para realizar la interacción de datos a través de interfaces.

El diseño de los microservicios no debe afectar el negocio del sistema existente debido a actualizaciones y errores de un determinado módulo. La sutil diferencia entre microservicios y distribuidos es que la aplicación de microservicios no necesariamente está dispersa en varios servidores, también puede ser el mismo servidor.