Arquitectura del Sistema de YouTube

En una, y compartir las ideas de optimización 12306 arquitectura, la actual cuota de la paz arquitectura de YouTube, la lectura de este artículo usted aprenderá principios de lo que es la arquitectura de YouTube, con el fin de mejorar su confianza en el diseño de la arquitectura del sitio.

YouTube arquitectura del sitio Tucao un (a)
YouTube como un sitio web de videos de tráfico en mil millones de niveles múltiples, su personal de mantenimiento del sitio tiene pocos, cómo estos técnicos se han diseñado una arquitectura de YouTube, que tiene una capacidad tan poderosa compresión de la misma, entonces mirar hacia abajo.

Los puntos fundamentales de técnica
1) Apache: Sitio del servidor
2) Python: aplicación Web se utiliza principalmente Python abotonada
3) Linux (SuSE): Sistema Operativo (autor: ¿Por qué elegir SuSe es)
4) Mysql: Base de datos
5) psyco (autor: psyco es una extensión del lenguaje C y Python)
6) lighttpd: no hay un servidor de vídeo con Apache, eligiendo en su lugar utilizar el lighttpd

los puntos de servicio Web
1) de equilibrio de carga Uso NetScalar y almacenamiento en caché de contenido estático (autor: NetScalar es una solución de aplicación Web optimizado, que se utiliza comúnmente en la aceleración de aplicaciones Web, equilibrio de carga, características de seguridad Web, etc.)
2) el uso modo mod_fast_cgi Apache (autor: fastcgi modelo CGI es un residente del proceso, sobre todo para resolver el "tenedor y ejecutar" modelo de modelo de CGI tradicional se critica)
3) consiste en un servicio de Python responsable de dirigir las solicitudes web (escritor: Nginx no ha llegado a ser muy popular en ese momento )
cálculos complejos 4) intensivo de la CPU, el uso psyco para obtener (I utiliza lenguaje C: Python esto es realmente la selección tecnología adecuada que)
5) capa de la página web de almacenamiento en caché hacer
6) hacen el almacenamiento en caché de datos capa de datos
7) para algunos datos, calculada de antemano, y la formación de una caché local, pero sin aplicación a gran escala de esta optimización

la efectividad del servicio Web
1) puede ser horizontal mediante la adición de extensiones de servidor
2) Seleccionar Python, debido a su alta eficiencia en el desarrollo, la era de Internet, la iteración rápida y la capacidad de emitida con frecuencia, ya sabes (I: ¿Por qué no elegir PHP)
3 ) Python eficiencia del código no es el cuello de botella, el cuello de botella en las solicitudes de servicios web RPC (autor: significado, cuellos de botella en aplicaciones web o de back-end)
de control de tiempo 4) la respuesta en menos de 100 ms (autor: no revisada)

los puntos de servicio de vídeo
1) cada una de vídeo almacenados en más de una máquina, pero en un pequeño grupo A beneficio de la agrupación de almacenamiento es: alto rendimiento de lectura B: alta disponibilidad C: copia de seguridad de datos en línea (Autor: aquella época, réplica del vídeo es la tecnología más avanzada)
2) uso como un video lighttpd servidor web, lighttpd tiene la ventaja de un Apache demasiado B: no hay modo de epoll C: cómo el modelo de proceso, sin embargo, YouTube espera manejar más conexiones simultáneas
3) en el vídeo popular en CDN
4) los populares de vídeo, en este caso PV es inferior al 20 vídeo, el uso de la tecnología para xxoo Optimizar (autor: este lugar no entiende, el original es "contenido menos populares utiliza servidores de YouTube en varios colo sitios "este" colo "no entendieron lo que significa, si se sabe, por favor mensaje a mí)
5) debido a la naturaleza especial del video, reducir al mínimo entre el servidor y los dispositivos de usuario final, tales como routers y switches
6) con discos SATA Búsqueda aleatoria optimización

Vídeo punto de vista previa
1) con una vista previa de almacenamiento solo grupo (autor: aciertas, la vista previa es la existencia) en el sistema de archivos
2) el uso de calamar como un front-end Apache (autor: calamar es un contra populares servidor Web al agente, a menudo utilizado para la aceleración de acceso a archivos estáticos, entendida como una barra de servicio de caché)
3) listo para usar en el futuro para hacer la vista previa de almacenamiento BigTable

puntos de base de datos
1) usando la base de datos MySQL, por supuesto, sólo es usado para almacenar metadatos
2) y otros sitios como YouTube, aplicaciones a través de un único maestro-esclavo, el proceso de segmentación de nivel
3) hardware de la máquina servidor primario mejores condiciones , utilizando multi-proceso varias instancias patrón; casi máquina utilizando condición hardware del servidor, utilizando el patrón singleton
4) separadas de lectura y escritura

Lecciones aprendidas
1) insistido en que la victoria, soluciones innovadoras para resolver problemas a corto plazo de los riesgos, hay que tener cuidado. siempre ha insistido, debe ser capaz de encontrar soluciones a largo plazo
2) para encontrar grandes contradicciones y los recursos de enfoque a la dirección
3) cooperación selectiva, no tenga miedo de externalizar una parte clave del proyecto, como por ejemplo de YouTube CDN
4) el mantener la simplicidad de TI, a partir de ideas simples, no hay mucho que decir
5) los datos se separan, de dos niveles
6) optimización iteración cuello de botella, incluyendo la capa de software, que opera capa del sistema, capa de hardware
7) es la piedra angular de un equipo exitoso

Publicados 136 artículos originales · ganado elogios 6 · vistas 1517

Supongo que te gusta

Origin blog.csdn.net/weixin_42073629/article/details/104603326
Recomendado
Clasificación