¿Cómo resolver el problema del acceso concurrente y a gran escala al sitio web?
La degradación elegante es un medio para que un sitio web cierre proactivamente algunas funciones y libere algunos recursos del sistema para hacer frente a un pico repentino de acceso y garantizar el acceso normal a las funciones principales del sitio web. La promoción anual Double Eleven de Taobao experimentará repentinamente un pico de visitas poco convencional. Los ingenieros de Taobao desactivarán algunas funciones no principales cada año, como evaluación, confirmación de recepción, etc., para garantizar las funciones de transacción normales.
El sitio web realiza una degradación automática y elegante en la computación móvil, que es el estado ideal de la arquitectura flexible del sitio web: el sistema de monitoreo monitorea el funcionamiento de todos los servidores en tiempo real y determina la carga de acceso a la aplicación según el monitoreo. parámetros. Si se descubre que la carga de algunas aplicaciones es demasiado alta y la carga de algunas aplicaciones es demasiado baja, algunos servidores para aplicaciones de baja carga se desinstalarán adecuadamente y algunos servidores para aplicaciones de alta carga se reinstalarán y comenzarán a equilibrarse. la carga general de la aplicación. De esta manera, la carga general de la aplicación se equilibra. Si la carga de todas las aplicaciones es alta y la presión de carga continúa aumentando, se cerrarán automáticamente algunas funciones no importantes para garantizar el funcionamiento normal de las funciones principales.
Se proporcionan algunos para su referencia:
1. Las páginas del sitio web son estáticas. La página estática es .html (.htm, etc.), que no requiere que el servidor web vuelva a cargar los elementos de análisis. Solo debe generarse una vez y descargarse directamente al cliente cada vez en el futuro, lo cual es mucho más. eficiente.
2. Separe el servidor web, el servidor de base de datos, el servidor de imágenes y de archivos del sitio web. Al dividir la profesionalidad del servidor, se puede mejorar la velocidad de acceso al sitio web. Porque al descargar imágenes y archivos, ya sea IIS, Apache u otros servidores, habrá mucha presión.
3. Configure un servidor de caché de datos dedicado. Colocar una gran cantidad de datos en el área de datos de la caché puede guardar los datos en menos tiempo durante el acceso y reducir la sobrecarga de conexión al operar directamente la base de datos.
4. Clúster de bases de datos, hash de tablas de bases de datos. Cuando los sitios web grandes enfrentan una gran cantidad de accesos, se producirán cuellos de botella en la base de datos. En este momento, una base de datos pronto no podrá satisfacer la aplicación, por lo que es necesario utilizar grupos de bases de datos o hash de tablas de bases de datos para distribuir la presión.
5. Los sitios web grandes suelen utilizar la duplicación para mejorar el rendimiento y la seguridad de los datos. La tecnología de duplicación puede resolver las diferencias en las velocidades de acceso entre diferentes proveedores de acceso a la red y usuarios regionales. Por ejemplo, la diferencia entre ChinaNet y EduNet ha llevado a muchos sitios web a establecer sitios duplicados. Redes educativas. Los datos se actualizan periódicamente o en tiempo real.
6. Equilibrio de carga. El equilibrio de carga será una solución de alto nivel para resolver el acceso de alta carga y la gran cantidad de solicitudes simultáneas para sitios web grandes.
7. Lo último: tecnología de aceleración CDN. ¿Qué es una CDN? El nombre completo de CDN es Content Delivery Network. Su propósito es agregar una nueva capa de arquitectura de red a Internet existente y publicar contenido del sitio web en el "borde" de la red más cercano a los usuarios, para que los usuarios puedan obtener el contenido que necesitan cerca y mejorar la velocidad de respuesta para que los usuarios accedan al sitio web. . CDN se diferencia de la duplicación porque es más inteligente que la duplicación o ¡puede hacerlo! CDN se diferencia de la duplicación porque es más inteligente que la duplicación, o se puede hacer una analogía: CDN = duplicación más inteligente + almacenamiento en caché + desvío de tráfico.
Se puede implementar un sitio web pequeño utilizando la página estática HTML más simple, junto con algunas imágenes para lograr un efecto de embellecimiento. Todas las páginas se almacenan en un directorio. Dicho sitio web tiene requisitos de rendimiento y arquitectura del sistema. simple. Con el enriquecimiento continuo de los negocios en Internet, las tecnologías relacionadas con los sitios web se han subdividido en aspectos muy finos después de años de desarrollo. Especialmente para los sitios web grandes, las tecnologías utilizadas son muy amplias y van desde hardware hasta software, lenguajes de programación, bases de datos y campos altamente exigentes. como WebServer y firewalls ya no son comparables a los sitios web estáticos HTML simples originales. No es comparable al sitio web estático HTML simple original. Los sitios web grandes, como los portales, enfrentan una gran cantidad de visitas de usuarios y una gran cantidad de solicitudes concurrentes. Las ideas de soluciones básicas se centran en los siguientes aspectos: uso de servidores de alto rendimiento, bases de datos de alto rendimiento, lenguajes de programación de alta eficiencia y alto rendimiento. Contenedores web. Estas ideas de solución suponen en cierta medida una mayor inversión.
1. Estatización HTML De hecho, todo el mundo sabe que la más eficiente y menos consumida es la página HTML puramente estática, por lo que intentamos utilizar páginas estáticas para las páginas de nuestro sitio web. método. Pero para los sitios web con mucho contenido y actualizaciones frecuentes, es imposible para nosotros implementarlos todos manualmente uno por uno, por lo que ha surgido nuestro sistema CMS de publicación de información común, como los canales de noticias de varios portales que visitamos con frecuencia, e incluso sus otros canales Se administra e implementa a través del sistema de publicación de información. El sistema de publicación de información puede realizar la entrada de información más simple y generar automáticamente páginas estáticas. También tiene funciones como administración de canales, administración de permisos y rastreo automático. sitio web, que tenga un CMS eficiente y manejable es fundamental. Además de los portales y los sitios web de publicación de información, para los sitios web comunitarios con altos requisitos de interactividad, hacerlos lo más estáticos posible también es un medio necesario para mejorar el rendimiento. Las publicaciones y artículos en la comunidad deben volverse estáticos en tiempo real y luego volver a publicarse. Estático cuando se actualiza. La transformación también es una estrategia ampliamente utilizada. Por ejemplo, Hodgepodge de Mopu usa esta estrategia, al igual que las comunidades NetEase. Al mismo tiempo, html static también es un medio para utilizar estrategias de almacenamiento en caché. Para aplicaciones que utilizan con frecuencia consultas de la base de datos del sistema pero tienen muy pequeñas actualizaciones de contenido, puede considerar el uso de html static. Por ejemplo, la información de configuración pública en el foro puede administrarse en segundo plano y almacenarse en la base de datos en los foros principales. Esta parte de la información en realidad requiere una gran cantidad de llamadas al programa front-end, pero la frecuencia de actualización es muy pequeña. Puede considerar esta parte de la información. Parte del contenido se vuelve estático cuando se actualiza en segundo plano, evitando así una gran cantidad de solicitudes de acceso a la base de datos.
2. Separe el servidor de imágenes. Como todos sabemos, para el servidor web, ya sea Apache, IIS u otros contenedores, las imágenes consumen la mayor cantidad de recursos, por lo que es necesario separar las imágenes. Sí, esta es básicamente una estrategia adoptada por sitios web grandes. Todos tienen servidores de imágenes independientes o incluso múltiples. Una arquitectura de este tipo puede reducir la presión sobre el sistema del servidor que proporciona solicitudes de acceso a la página y garantizar que el sistema no falle debido a problemas de imagen. En el servidor de aplicaciones y el servidor de imágenes, se pueden realizar diferentes optimizaciones de configuración. Por ejemplo, Apache puede admitir la menor cantidad posible al configurar ContentType y usar LoadModule lo menos posible para garantizar un mayor consumo del sistema y una mayor eficiencia de ejecución.
3. Clúster de bases de datos, hash de tablas de bases de datos. Los sitios web grandes tienen aplicaciones complejas. Ante una gran cantidad de accesos, el cuello de botella de la base de datos pronto se hará evidente. base de datos Pronto no será suficiente para la aplicación, por lo que necesitamos usar agrupación de bases de datos o hash de tablas de biblioteca. En términos de clústeres de bases de datos, muchas bases de datos tienen sus propias soluciones. Oracle, Sybase, etc. tienen buenas soluciones. MySQL Master/Slave de uso común también tiene soluciones similares. ¿Qué tipo de base de datos utiliza? Haz que suceda. El grupo de bases de datos mencionado anteriormente estará limitado por el tipo de base de datos utilizada debido a su arquitectura, costo, escalabilidad, etc., por lo que debemos considerar mejorar la arquitectura del sistema desde la perspectiva de las aplicaciones y las tablas de la base de datos.