Highload es donde no lo espera. Aventura 20 minutos

Hola a todos. Mi nombre es Zhenya, soy un desarrollador de pila completa en el equipo de publicidad de VKontakte.





En este artículo, le contaré sobre el espacio de alta carga en la cuenta de publicidad de VKontakte. Cualquier desarrollador puede enfrentarse a una situación similar en su proyecto. El material será útil no solo para aquellos que están involucrados en el backend, sino también para todos los especialistas en TI que se esfuerzan por hacer que sus productos sean rápidos y tolerantes a fallas. Alerta de spoiler: no habrá código en el artículo.





Ahora me dedico principalmente al desarrollo de un gabinete publicitario móvil, pero de vez en cuando tengo que resolver diversas tareas. Uno de ellos es mostrar una vista previa de 30 x 30 píxeles de su anuncio en la tabla de anuncios.





Parece, ¿qué hay de malo en eso? Agregué un campo adicional a la solicitud a la base de datos, envié el enlace resultante a la imagen al frente y lo rendericé en la columna. Parece simple: 30 líneas de código y 20 minutos, incluido un viaje para tomar una taza de café.





¡Entonces vamos!





Paso 1. Obtener la imagen

. : , , , , , , , , — .





. , , . , -. , , . , .





2.

, , , , , . , 30 × 30 . — . . : , . .





3.

1 000 . — . - id . memcached. memcached. , .





4.

: , .





5.

, . , , 1 000 , . . , . — . 20.





6.

: 1 000 , 20 . , 20 . , , 50 . .





: , 20 memcached, .





: ? : - . — , . , . .





7. , ?

. , 100% , . , . : , .





8.

- ? , , memcached .





, ? , , , . . . .





9.

. .





10.

, , -.





11.

: , , . ! , , .





12.

.





, ... .








All Articles