Preguntas de la entrevista

1. ¿Cómo resolver la alta concurrencia del sitio web y el alto tráfico?

1) página HTML estática

  La frecuencia de acceso es alta pero los cambios de contenido son pequeños. Utilice la solución estática HTML del sitio web para optimizar la velocidad de acceso. También es una estrategia utilizada para publicar estáticamente publicaciones y artículos en la comunidad en tiempo real y volver a estátizarlos cuando hay actualizaciones.

Ventajas:

  •   Reduzca la carga sobre el servidor.
  •   Acelere la velocidad de apertura de la página, las páginas estáticas no necesitan acceder a la base de datos, la velocidad de apertura mejora significativamente en comparación con las páginas dinámicas;
  •   Muchos motores de búsqueda priorizarán la inclusión de páginas estáticas, no solo se incluirán rápidamente, sino que también se incluirán, lo cual es fácil de encontrar por los motores de búsqueda;
  •   Las páginas estáticas HTML no se verán afectadas por las vulnerabilidades relacionadas con el programa, reduciendo los ataques y mejorando la seguridad.

2) Separación del servidor de imágenes y el servidor de aplicaciones

  Ahora se usan muchas imágenes en muchos sitios web, y las imágenes son el volumen de datos principal en la transmisión de la página web, y también el factor principal que afecta el rendimiento de los sitios web. Por lo tanto, muchos sitios web separarán el almacenamiento de imágenes del sitio web y construirán uno o más servidores para almacenar las imágenes, colocarán las imágenes en un directorio virtual y las imágenes de la página web usarán una dirección URL para señalar las imágenes en estos servidores , El rendimiento del sitio web mejorará significativamente.

Ventajas:

  •   Comparta la carga de E / S de los servicios de imagen que consumen recursos separados del servidor web para mejorar el rendimiento y la estabilidad del servidor.
  •   Capacidad para optimizar el servidor de imágenes: configure específicamente una solución de almacenamiento en caché específica para el servicio de imágenes, reduzca los costos de ancho de banda y aumente la velocidad de acceso.
  •   Mejore la escalabilidad del sitio web: al aumentar el servidor de imágenes, mejore el rendimiento de la imagen.

3) caché

  Intente utilizar la memoria caché, incluida la memoria caché del usuario, la memoria caché de información, etc., gaste más memoria en la memoria caché, puede reducir considerablemente la interacción con la base de datos y mejorar el rendimiento.

  Si podemos reducir el acceso frecuente a la base de datos, definitivamente beneficiará enormemente al sistema. Por ejemplo, un producto busca un sistema de negocio de ideas. Si se busca con frecuencia el producto de una determinada palabra clave, se puede considerar que esta parte de la lista de productos está almacenada en la memoria caché (en la memoria), de modo que en lugar de acceder a la base de datos cada vez, el rendimiento aumenta considerablemente.

4) espejo

  La duplicación es un tipo de redundancia: una copia de los datos en un disco existe exactamente igual en otro disco que una duplicación.

5) equilibrio de carga

  En el escenario de alto acceso concurrente al sitio web, use la tecnología de equilibrio de carga (servidor de equilibrio de carga) para construir un clúster de servidores compuesto por múltiples servidores para una aplicación, y distribuya solicitudes de acceso concurrente a múltiples servidores para su procesamiento a fin de evitar la presión de carga en un solo servidor debido a la carga Respuesta demasiado grande y lenta, para que las solicitudes de los usuarios tengan mejores características de retraso de respuesta.

6) control de concurrencia

  Bloqueo, como bloqueo optimista y bloqueo pesimista

7) Cola de mensajes

  Cola uno por uno por mq, lo mismo que 12306.

2. Sistema de reserva, solo hay un boleto de tren para un tren, suponiendo que 1w personas abran el sitio web 12306 para reservar boletos al mismo tiempo, ¿cómo resolver el problema de concurrencia? (Puede extenderse a cualquier problema de lectura y escritura concurrente para ser considerado en cualquier sitio web altamente concurrente)

  No solo para garantizar que 1w personas puedan ver el boleto al mismo tiempo (la legibilidad de los datos), sino también para garantizar que solo una persona pueda finalmente comprar el boleto (exclusividad de los datos).

  Utilice mecanismos de control de acceso concurrentes a nivel de base de datos. El bloqueo optimista puede resolver este problema. El bloqueo optimista significa que sin bloquear la tabla, el uso del control comercial para resolver problemas de concurrencia, a fin de garantizar la legibilidad concurrente de los datos y garantizar la exclusividad de los datos guardados, garantizar el rendimiento y resolver el problema de datos sucios causados ​​por la concurrencia . El bloqueo optimista se implementa en hibernación.

  Un ejemplo típico es cuando dos operadores bancarios operan la misma cuenta al mismo tiempo. Por ejemplo, los operadores A y B leen simultáneamente una cuenta con un saldo de 1,000 yuanes, el operador A agrega 100 yuanes a la cuenta y el operador B deduce simultáneamente 50 yuanes para la cuenta. A envía primero, luego B envía. Finalmente, el saldo real de la cuenta es 1000-50 = 950 yuan, y el libro único debe ser 1000 + 100-50 = 1050. Este es el problema de concurrencia de una sola línea. ¿Cómo solucionarlo? Puedes usar un candado.

 

Supongo que te gusta

Origin www.cnblogs.com/HuiH/p/12707009.html
Recomendado
Clasificación