Objetivos de la arquitectura del proyecto de Internet a gran escala
Proyectos tradicionales y proyectos de Internet
Proyectos tradicionales : un sistema oa de empresa, sistema de recursos humanos, sistema de registro
Proyectos de Internet : Tmall, Baidu, jd
artículos tradicionales | proyecto internet | |
---|---|---|
Usar grupos | empleados corporativos | Todos los internautas |
concurrencia | 1-miles | millones de billones |
Tolerancia del producto | alta tolerancia | tolerancia casi cero |
seguridad | alta seguridad | Vulnerable |
Función | función sencilla | función compleja |
renovar | actualización lenta | actualiza rapido |
Del cuadro comparativo, se puede ver que los proyectos de Internet deben:
Alta concurrencia, respuesta rápida, buena estabilidad, buena experiencia de usuario
Medir las métricas de rendimiento del sitio web
Tiempo de respuesta : se refiere al tiempo total que lleva ejecutar una solicitud desde el principio hasta recibir los datos de respuesta al final.
Concurrencia : se refiere a la cantidad de solicitudes que el sistema puede manejar al mismo tiempo.
-
El número de conexiones simultáneas : se refiere a que el cliente inicia una solicitud al servidor y establece una conexión TCP. El número total de conexiones TCP al servidor por segundo
-
Número de solicitudes : también conocido como QPS (Query Per Second) se refiere a cuántas solicitudes por segundo
-
Usuarios simultáneos : cuántos usuarios por unidad de tiempo
Rendimiento : se refiere a la cantidad de solicitudes que el sistema puede manejar por unidad de tiempo.
Alto rendimiento : proporciona una experiencia de acceso rápido.
Alta disponibilidad : siempre se puede acceder a los servicios del sitio web con normalidad.
Escalable : aumentar/disminuir, aumentar/disminuir la potencia de procesamiento a través del hardware.
Alta escalabilidad : bajo acoplamiento entre sistemas, fácil de agregar/eliminar nuevas funciones/módulos agregando/eliminando.
Seguridad : proporcione estrategias como el acceso seguro al sitio web, el cifrado de datos y el almacenamiento seguro.
clúster y distribuido
Tecnologías requeridas para proyectos de Internet a gran escala: clúster y distribuido
grupo
Muchas "personas" trabajan juntas para hacer lo mismo. Por ejemplo, un restaurante necesita cortar verduras, preparar verduras, lavar platos y servir platos; originalmente un chef era responsable de todo el trabajo y luego reclutó nuevos chefs, nuevos chefs También está haciendo todo el trabajo y compartiendo la presión del chef original. El nuevo chef y el chef original son grupos
repartido
Muchas "personas" hacen cosas diferentes juntas. Estas cosas diferentes se suman a una gran cosa. El chef original ya no es responsable de cortar las verduras, lavar los platos y servir los platos, sino que recluta a tres personas para que sean responsables respectivamente, de modo que cada persona solo pueda concentrarse en hacer una cosa y la eficiencia será muy alta.
Clúster + distribuido (escalable)
Si el restaurante tiene muchos pedidos, entonces podemos reclutar dos equipos de chef y dividir los pedidos en dos partes. Los dos equipos de chef son equivalentes a grupos, y cada equipo cocina de manera distribuida. Este tipo de equipos adicionales. La escalabilidad se logra de una manera forma
Historia del desarrollo de la arquitectura
arquitectura monolítica
Ponga todos los módulos de un programa en un servidor, y se puede realizar una arquitectura única de varias máquinas formando un grupo de servidores polimórficos.
Ventajas: desarrollo e implementación convenientes, adecuado para pequeños proyectos
defecto:
- Inicio lento del proyecto
- Poca fiabilidad: se rompe un módulo y se rompe todo el proyecto
- pobre escalabilidad
- pobre escalabilidad
- bajo rendimiento
arquitectura vertical
La arquitectura vertical se refiere a la división de múltiples módulos en una arquitectura monolítica en múltiples proyectos independientes. Forma múltiples arquitecturas monolíticas independientes.
En comparación con la arquitectura monolítica, básicamente está optimizada, pero la arquitectura vertical también tiene sus propias deficiencias:
Cada aplicación no interactúa entre sí, como la página de inicio de sesión, la página de información personal, etc. Las funciones requeridas por cada módulo deben agregarse a cada aplicación, lo que resulta en funciones más repetitivas.
arquitectura distribuida
Sobre la base de la arquitectura vertical, los módulos repetidos se extraen para formar un módulo independiente y convertirse en un proveedor de servicios
RPC: la forma en que los consumidores llaman a los proveedores de servicios
Desventajas de la arquitectura distribuida:
Una vez que cambia el proveedor de servicios, todos los consumidores deben cambiar
arquitectura SOA
Los consumidores y los proveedores no se comunican directamente, sino que interactúan entre sí a través del bus de servicios.
ESB: Enterprise Service Bus, Service Broker. Proporciona principalmente un servicio para la interacción entre servicios. ESB incluye funciones como: balanceo de carga, control de flujo, procesamiento de encriptación, monitoreo de servicios, manejo de excepciones, monitoreo de emergencia, etc.
arquitectura de microservicios
La arquitectura de microservicios es la sublimación de SOA. Uno de los puntos clave enfatizados por la arquitectura de microservicios es que "el negocio necesita ser completamente dividido en componentes y atendido". El sistema comercial único original se dividirá en múltiples aplicaciones pequeñas. Estas pequeñas aplicaciones completan la interacción y la integración a través de los servicios.
Dubbo es un producto de la era SOA y SpringCloud es un producto de la era de los microservicios