Red de conocimiento informático - Conocimiento del nombre de dominio - Procesamiento simultáneo

Procesamiento simultáneo

Un sitio web pequeño, como un sitio web personal, se puede implementar utilizando la página estática HTML más simple, con algunas imágenes para lograr un efecto de embellecimiento. Todas las páginas se almacenan en un directorio. Para el sistema, la arquitectura y los requisitos de rendimiento son muy simples. Con el enriquecimiento continuo de los negocios de 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 aún más complicadas. Tiene una gama muy amplia de aplicaciones, desde hardware hasta software, lenguajes de programación, bases de datos, servidores web, firewalls y otros campos. Ya no es comparable al sitio web estático HTML simple original.

Sitios web grandes, como portales. Ante una gran cantidad de acceso de usuarios y altas solicitudes concurrentes, las soluciones básicas se centran en los siguientes enlaces: uso de servidores de alto rendimiento, bases de datos de alto rendimiento, lenguajes de programación de alta eficiencia y contenedores web de alto rendimiento. Pero aparte de estos aspectos, no existe una solución fundamental para los problemas de alta carga y alta concurrencia que enfrentan los sitios web grandes.

Las diversas ideas de soluciones proporcionadas anteriormente también significan una mayor inversión hasta cierto punto, y dichas ideas de soluciones tienen cuellos de botella y no tienen una buena escalabilidad. A continuación, comenzaré con bajo costo, alto rendimiento y déjame hablar de ello. Algunas de mis experiencias desde la perspectiva de la alta escalabilidad. De hecho, todo el mundo sabe que la más eficiente y menos consumida es una página HTML puramente estática, por lo que hacemos todo lo posible para utilizar páginas estáticas para las páginas de nuestro sitio web. Este método más simple es en realidad el más efectivo. Sin embargo, para los sitios web con una gran cantidad de contenido y actualizaciones frecuentes, no podemos implementarlos todos manualmente uno por uno, por lo que apareció nuestro sistema de publicación de información CMS común, como los canales de noticias de varios portales que visitamos con frecuencia, e incluso sus otros. canales, todo a través de Es administrado e implementado por el 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 puede tener funciones como administración de canales, administración de permisos y rastreo automático. sitio web grande, tiene un conjunto eficiente de , un CMS manejable es esencial.

Además de los portales y los sitios web de publicación de información, para los sitios web de tipo comunitario con altos requisitos de interactividad, ser lo más estáticos posible también es un medio necesario para mejorar el rendimiento en el que se pueden procesar las publicaciones y artículos de la comunidad. La estatización y la reestatización en tiempo real cuando hay actualizaciones también son estrategias ampliamente utilizadas. La mezcolanza de Mop utiliza esta estrategia, al igual que la comunidad NetEase, etc.

Al mismo tiempo, la estatización HTML también es un medio utilizado por algunas estrategias de almacenamiento en caché. Para las aplicaciones en el sistema que utilizan con frecuencia consultas de bases de datos pero tienen actualizaciones de contenido muy pequeñas, puede considerar usar la estática HTML, como. en los foros. Información de configuración pública. Esta información puede ser administrada por los foros principales actuales y almacenada en la base de datos. De hecho, el programa front-end llama a una gran cantidad de esta información, pero la frecuencia de actualización es muy pequeña. Puede considerar hacer que esta parte del contenido sea estática al actualizar el fondo, evitando así una gran cantidad de solicitudes de acceso a la base de datos. Los sitios web grandes tienen aplicaciones complejas, y estas aplicaciones deben usar bases de datos. Cuando se enfrentan a una gran cantidad de accesos, pronto aparecerá el cuello de botella de la base de datos. En este momento, una base de datos pronto no podrá satisfacer la aplicación, por lo que debemos hacerlo. Utilice un hash de tabla de biblioteca o clúster.

En términos de clústeres de bases de datos, muchas bases de datos tienen sus propias soluciones. Oracle, Sybase, etc. tienen buenas soluciones. El maestro/esclavo comúnmente utilizado proporcionado por MySQL también es una solución similar. usas?DB, solo consulta la solución correspondiente para implementarlo.

El grupo de bases de datos mencionado anteriormente estará limitado por el tipo de base de datos en términos de arquitectura, costo y escalabilidad, por lo que debemos considerar mejorar la arquitectura del sistema desde la perspectiva de la aplicación. solución más utilizada y eficaz. Instalamos módulos comerciales y de aplicación o funcionales en la aplicación para separar la base de datos. Diferentes módulos corresponden a diferentes bases de datos o tablas, y luego usamos ciertas estrategias para realizar hashes de bases de datos más pequeños en una determinada página o función, como la tabla de usuario. tabla según ID de usuario, que puede mejorar el rendimiento del sistema a bajo costo y tener buena escalabilidad.

El foro de Sohu adopta dicha estructura, que separa los usuarios, configuraciones, publicaciones y otra información del foro en una base de datos, y luego codifica la base de datos y las tablas de publicaciones y usuarios según secciones e ID. Finalmente, se puede configurar simplemente en la configuración. archivo. Esto permite que el sistema agregue una base de datos de bajo costo en cualquier momento para complementar el rendimiento del sistema. Cualquiera que trabaje en tecnología se ha topado con el término caché y se utiliza en muchos lugares. El almacenamiento en caché en la arquitectura y el desarrollo de sitios web también es muy importante. Aquí primero hablamos de los dos cachés más básicos. El almacenamiento en caché avanzado y distribuido se describe más adelante.

En cuanto al almacenamiento en caché arquitectónico, cualquiera que esté familiarizado con Apache sabrá que Apache proporciona su propio módulo de almacenamiento en caché y también puede utilizar el módulo Squid adicional para el almacenamiento en caché. Ambos métodos pueden mejorar eficazmente la capacidad de respuesta de Access. .

Para el almacenamiento en caché en el desarrollo de programas de sitios web, Memory Cache proporcionado en Linux es una interfaz de almacenamiento en caché de uso común que se puede utilizar en el desarrollo web. Por ejemplo, cuando se desarrolla en Java, puede llamar a MemoryCache para almacenar en caché y comunicar algo. datos ***Compartir, algunas comunidades grandes utilizan esta arquitectura. Además, cuando se utiliza el desarrollo de lenguajes web, cada lenguaje básicamente tiene su propio módulo y método de caché. PHP tiene el módulo de caché de Pear, y Java tiene aún más. No estoy muy familiarizado con .net, pero creo que debe estar ahí. El equilibrio de carga será la solución definitiva para que los sitios web grandes resuelvan el acceso con alta carga y una gran cantidad de solicitudes simultáneas.

La tecnología de equilibrio de carga se ha desarrollado durante muchos años y hay muchos proveedores de servicios profesionales y productos para elegir. Personalmente he encontrado algunas soluciones, y dos de ellas pueden usarse como referencia.

1. Conmutación de cuatro capas por software

Después de que todos conocieron el principio del conmutador de cuatro capas por hardware, surgió esta solución. El principio de implementación de la solución es el mismo, pero el rendimiento es ligeramente peor. Sin embargo, todavía es fácil soportar cierta presión. Algunas personas dicen que el método de implementación del software es en realidad más flexible y que la potencia de procesamiento depende completamente de su familiaridad con la configuración.

Podemos utilizar el LVS comúnmente utilizado en Linux para resolver la conmutación de software de cuatro capas. LVS es un servidor virtual de Linux. Proporciona una solución de respuesta ante desastres en tiempo real basada en la línea de latidos para mejorar la solidez. del sistema y al mismo tiempo Proporciona funciones de administración y configuración VIP virtuales flexibles, que pueden cumplir con múltiples requisitos de aplicaciones al mismo tiempo, lo cual es esencial para los sistemas distribuidos.

Una estrategia típica de equilibrio de carga es construir un clúster Squid basado en conmutación de cuatro capas de software o hardware. Esta idea es adoptada por muchos sitios web grandes, incluidos los motores de búsqueda. Esta arquitectura es de bajo costo y alta. Gracias a su rendimiento y gran escalabilidad, es muy fácil agregar o eliminar nodos a la arquitectura en cualquier momento. Voy a ordenar esta estructura en detalle y discutirla con usted.

Para sitios web grandes, cada uno de los métodos mencionados anteriormente se puede utilizar al mismo tiempo. Lo presentaré de una manera relativamente simple. Aún es necesario que todos se familiaricen gradualmente con muchos detalles en el proceso de implementación específico. Y comprenda. A veces, una pequeña configuración de parámetros de Squid o de Apache tendrá un gran impacto en el rendimiento del sistema.

2. Conmutación de hardware de cuatro capas

La conmutación de capa 4 utiliza la información del encabezado de los paquetes de información de la tercera y cuarta capa para identificar el flujo de negocios según el intervalo de aplicación. y convertir todo el segmento de intervalo. Los flujos de negocios se asignan a los servidores de aplicaciones apropiados para su procesamiento. La función de conmutación de la cuarta capa es como una IP virtual que apunta al servidor físico. Los servicios que transmite obedecen a una variedad de protocolos, incluidos HTTP, FTP, NFS, Telnet u otros protocolos. Estos servicios requieren complejos algoritmos de equilibrio de carga basados ​​en servidores físicos. En el mundo IP, el tipo de servicio está determinado por la dirección del puerto TCP o UDP del terminal. El rango de aplicación en la conmutación de capa 4 está determinado por las direcciones IP de origen y del terminal, los puertos TCP y UDP.

En el campo de los productos de conmutación de cuatro capas de hardware, hay algunos productos bien conocidos para elegir, como Alteon, F5, etc. Estos productos son caros, pero valen la pena y pueden Proporcionan un excelente rendimiento y flexibilidad de gestión. Yahoo China utilizó tres o cuatro Alteons para manejar casi 2.000 servidores.