Pico solución de alta concurrencia de

En primer lugar, ¿cuál es alta concurrencia

 

Alta concurrencia (alta concurrencia) es uno de los factores del sistema de Internet distribuido diseño de la arquitectura debe ser considerado, por lo general significa que pueden manejar simultáneamente muchas solicitudes simultáneas a través del sistema de garantía del diseño. Algunas métricas de concurrencia relacionada con altos comúnmente utilizados son el tiempo de respuesta (tiempo de respuesta), rendimiento (throughput), la tasa de consulta por QPS (Consulta por segundo), el número de usuarios simultáneos.

Tiempo de respuesta : sistema de tiempo de respuesta a las solicitudes. Por ejemplo, un sistema para el procesamiento de HTTP solicita necesidades a 200 ms, el tiempo de respuesta del sistema es de 200 ms.

Rendimiento : el número de peticiones procesadas por unidad de tiempo.

QPS : en respuesta a peticiones por segundo. En el ámbito de Internet, este indicador y el rendimiento distinción no es tan clara.

usuarios simultáneos : el número de usuarios, mientras que transportan el uso normal de las funciones del sistema. Por ejemplo, un sistema de comunicación instantánea, y representa el número de usuarios simultáneos de la cantidad sistema en línea en cierta medida.

En segundo lugar, ¿cuál es el pico

escenas pico por lo general llevan a cabo una serie de actividades en el sitio web de negocios de electricidad o de los votos de fiesta encuentros de agarre en la página web 12306. Desde hace algún sitio web del proveedor de electricidad escasa o especiales, el sitio web de General Electric será ventas limitado a la hora señalada, debido a la naturaleza especial de estos productos, atraerá a muchos clientes vienen a comprar, y lo hará al mismo tiempo en el punto acordado en el tiempo páginas pico punta.

Tal escenario es muy característico de escenarios de alta concurrencia, si no es razonable la gestión del tráfico y el control, el impacto de la desenfrenada indulgencia sistema de flujo grande, que dará lugar a una serie de problemas, tales como el número de recursos de conexión disponibles se han agotado, la capacidad de caché distribuida es estalle, la reducción de rendimiento de base de datos, en última instancia, hacer que el sistema para producir un efecto avalancha.

En general, la práctica de los sitios de Internet a gran escala suelen estar separados por la expansión, el movimiento, el almacenamiento en caché, cinco tipos de degradación del servicio y la limitación de medios convencionales para proteger el funcionamiento estable del sistema.

En tercer lugar, la forma de resolver el pico de alta concurrente

1. limitando

Antes de discutir por qué limitar nuestro primer chat en vivo limitar esas escenas se puede ver en todas partes.

Tales como las horas pico, estaciones de metro afluencia de gran número de personas, puede causar congestión severa, que acababa de pasar la mayor parte del tiempo de unos cinco minutos de la sala de la estación al sitio, pero se vio obligado a tomar 30 minutos o más para ser limitante en el control suavemente en la plataforma.

Pico solución de alta concurrencia de

 

Pico solución de alta concurrencia de

 

Después de las dos imágenes de arriba de la pantalla de un escenario de metro lleno de gente, si todas las personas todo el influjo del sitio, hará que más gente no puede conseguir en el tren, así que tome el control, podemos hacer que la gente a través de la primera planta subterránea del suelo y duplicar esperando en la cola, para reducir la presión del sitio, para asegurar que cada pasajero puede finalmente sin problemas en el tren.

En el sistema de proveedor de electricidad pico, habrá una afluencia masiva de usuarios al mismo tiempo, ya que sólo una pequeña parte del usuario para el éxito pico, por lo que la mayor parte de las restricciones de tráfico, permitiendo que sólo una pequeña parte del flujo en el servicio de back-end.

La limitación del servidor se puede utilizar para limitar el número de conexiones de espera y el tiempo de espera, un pequeño número de versión de tiempo de los usuarios, para que más usuarios en una falsa cola estado. Por ejemplo Tomcat configuración:

1<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxThreads="800" acceptCount="1000"/>

Los dos últimos parámetros tienen el siguiente significado:

la maxThreads : número máximo de hilos Tomcat se inicia, es decir, el número de tareas de procesamiento simultáneas, el valor predeterminado 200 es  acceptCount a : cuando el número de hilos tomcat comenzó cuando el número máximo de solicitudes aceptadas en cola, el valor por defecto es 100  cómo estos dos valores a partir de papel, consulte los siguientes tres casos

Caso 1: se recibe una petición, entonces el número de hilos no alcanza el maxThreads arrancar Tomcat, Tomcat se iniciará un hilo para manejar esta solicitud.

Caso 2: se recibe una petición, entonces el número de hilos ha llegado a las maxThreads arrancar Tomcat, Tomcat esta petición en una cola esperará subprocesos inactivos.

Caso 3: se recibe una petición, entonces el número de hilos ha llegado a las maxThreads Tomcat empezar, el número de solicitudes en cola de la espera llegó

acceptCount, esta vez directamente Tomcat rechazar la petición, conexión de retorno se negó

2. páginas estáticas

En primer lugar, podemos utilizar Freemarker la página es estática, lo que permite a los usuarios reducir la interacción entre el servidor back-end. Esto reducirá la presión sobre el servidor, si las condiciones lo permiten podemos utilizar CDN aceleración.

principio Freemarker en la siguiente figura, plantillas + datos puede generar páginas estáticas por Freemarker.

Pico solución de alta concurrencia de

 

 

CDN es una estación de origen hasta el nodo de distribución de contenido más cercana al usuario, por lo que el usuario puede obtener convenientemente contenido deseado, mejorar la velocidad de respuesta y la tasa de éxito de acceso del usuario. Por ejemplo, la siguiente figura: los usuarios de Internet de Beijing tendrán automáticamente el acceso a los recursos más cercano y servidor más rápido.

Pico solución de alta concurrencia de

 

3. La introducción de Redis

La limitación estática y están diseñados para reducir la presión en el servidor back-end, pero la petición del usuario final o un servidor caerán, a fin de incrementar la experiencia del usuario, también hay que acelerar la velocidad en consecuencia. La interacción entre el código de back-end se reducirá y bases de datos de velocidad correspondiente, por lo que podemos utilizar Redis para leer datos a alta velocidad.

Redis es un muy buen nivel de memoria de base de datos NoSQL, leer y velocidad de escritura de hasta 5W / s solo hilo. Así que podemos utilizar Redis en muchos casos para resolver el problema de la lectura de alta velocidad.

En determinadas poblaciones de sobreventa, poder atacar al principio, la cantidad total del inventario almacenado en Redis, siempre que el usuario a comprar, el uso del método de tipo cadena decr a menos uno, menos un éxito si, como el lo suficientemente considerada exitosa a agarrar, y la información del usuario y del producto en orden de entrada Redis, cuando el extremo finalmente se rompió, y luego nos puso juntos Redis almacena información de orden en la base de datos.

Código de referencia:

1	# 设置总的待抢购数量为1000000
2	set amount 1000000;
3	# 抢购 数量减一
4	decr amount 5
6	# 把用户信息存入到抢购成功的集合中,由商品ID命名来区分
7	lpush 用户ID 商品ID

IV Resumen

Puede ser resuelto por las cuestiones anteriores tres esquemas de pico en la mayoría de los escenarios, por supuesto, habrá más inesperada situación bajo alta concurrencia, entonces podemos probar más orientación para su negocio, programación de recursos, para encontrar el más adecuado solución propia.

Publicado 682 artículos originales · ganado elogios 1391 · Vistas 1.71 millones +

Supongo que te gusta

Origin blog.csdn.net/itcast_cn/article/details/104865801
Recomendado
Clasificación