Colocación de streams¶
Los streams los reparte por los streamers el layouter, un subsistema de central. Usted añade streamers y crea streams, y él decide qué máquina captura el stream, cuál guarda una copia de su archivo, cuál lo sirve a los espectadores. La decisión se recalcula ante cada cambio, y si una máquina falla, sus streams se mudan solos a las que siguen vivas.
Una decisión del layouter se llama asignación y une un stream, un streamer y un rol — lo que esa máquina hace para el stream. Por cada asignación central arma la config de servidor del stream y la entrega al streamer, y por eso los ajustes de los streams se editan en central y no en las máquinas.
La colocación se gobierna con tres ajustes. Los namespaces dividen el clúster en partes que no se cruzan. Las etiquetas fijan requisitos y preferencias. Los límites acotan cuánto toma una sola máquina.
Cómo se reparten los streams¶
Qué hace el layouter¶
- Asigna roles y recalcula asignaciones. La ejecución arranca cuando cambia la entrada — se unió un streamer, se creó un stream, se editaron ajustes. No hay calendario y no hay nada que lanzar a mano.
- Tiene en cuenta las capacidades del streamer. Un stream con codificación en GPU se asigna solo a un streamer con tarjetas. Un stream con archivo necesita un streamer con discos de archivo.
- Vigila la carga. Entre los streamers aptos se elige el menos cargado, por procesador, red y ocupación del archivo. Un streamer sobrecargado se alivia mudando streams fuera de él.
- No muda streams sin causa. Mientras la entrada no cambia, las asignaciones se quedan como están. Que una máquina vecina esté poco cargada no es motivo para mudar nada.
Roles de asignación¶
Los roles no se eligen ni se activan por separado. Se derivan de lo que ya está configurado: el stream tiene fuente, así que hace falta ingest; al stream se le fijó un número de copias de respaldo del archivo, así que aparecen copias; el clúster tiene streamers edge, así que aparece la entrega edge. Conocerlos sirve para leer la tabla de asignaciones en la pestaña Layout del stream.
ingest — el rol principal, lo tiene todo stream en funcionamiento. El streamer recibe la fuente del stream, la transcodifica y graba el archivo cuando están configurados. Un stream tiene un streamer de ingest. Aquí es donde se comprueban los requisitos del stream hacia la máquina, por eso la mayoría de los motivos de rechazo pertenecen a este rol.
edge — el stream se sirve a los espectadores desde un streamer edge. El rol se asigna a cada stream en cada edge apto y no hay nada que activar aparte. Ese stream no captura fuente ni graba archivo, recibe el resultado terminado del streamer de ingest.
dvr backup — el archivo se graba no solo en el streamer de ingest sino en varios más. Cuántas copias mantener lo fija el campo Copias de respaldo DVR en la pestaña Layout.
dvr parts — aparece cuando un stream se mudó a otro streamer y en el anterior quedó archivo grabado. La asignación permite servir ese archivo más antiguo desde la máquina anterior, así el espectador lo ve en la línea de tiempo común y las mudanzas no pierden archivo.
Tolerancia a fallos¶
Los estados del streamer están descritos en el registro, y el layouter reacciona a ellos así.
- Señal perdida. Las asignaciones se congelan — no se retiran, no se crean, y la máquina no recibe streams nuevos. Un corte breve no muda streams, y en cuanto vuelve el enlace la máquina sigue llevando los mismos.
- Offline. Los streams se mudan a máquinas vivas en cuanto se encuentran aptas.
La entrega edge es la excepción. Se mantiene con cualquier estado de conexión, porque el edge levanta el stream cuando lo pide un espectador, y no tiene sentido retirar la asignación por el silencio. Un streamer sacado del clúster pierde todas sus asignaciones.
Cómo influir en la colocación¶
Los ajustes del streamer viven en la pestaña Clúster de su página.

El stream tiene su propio namespace y sus propias etiquetas, y se fijan en la pestaña Layout de su página — el mismo sitio donde se ven sus asignaciones.

Namespaces¶
El namespace es una frontera estricta. Un stream se asigna solo a streamers con el mismo namespace, y no hay excepciones entre namespaces. El valor vacío también es un namespace, así que un stream sin él se asigna solo a streamers sin él.
Así se divide un clúster en partes que no se cruzan — por inquilino o por sitio, por ejemplo. El namespace del streamer se fija en la pestaña Clúster, el del stream en la pestaña Layout.
Etiquetas¶
La etiqueta es una marca libre que usted pone al streamer y al stream. Qué significa lo decide usted: el layouter solo compara etiquetas cuando elige máquina. Así entra en la colocación una condición que el sistema no puede conocer. Con una etiqueta se puede prohibir la colocación igual que con un namespace, pero actúa con más flexibilidad y dentro de un mismo namespace, y la condición se fija a cada stream por separado.
Las etiquetas del streamer se fijan en la pestaña Clúster, las del stream en la pestaña Layout. La forma de escribirla decide qué significa. La palabra fast de abajo es solo un ejemplo, en su lugar puede ir cualquier palabra suya.
fast— propiedad. Así se marca una máquina o un stream sin exigir nada.required_fast— requisito. Un stream que la lleva se asigna solo a un streamer que también tenga la etiquetafast. La regla funciona en ambos sentidos — un streamer conrequired_fasttoma solo streams con esa etiqueta.preferred_fast— preferencia. En igualdad de condiciones gana el streamer con la etiquetafast, pero su ausencia no impide la asignación.
Se compara la palabra en sí, no la forma de escribirla. El requisito required_fast lo satisface cualquiera de las tres formas del otro lado — fast, required_fast o preferred_fast. La preferencia preferred_fast se cuenta igual.
Límites y carga¶
La carga del streamer se mide por la máquina entera — todo su procesador y todo su tráfico, incluida la entrega a espectadores, las transferencias entre streamers y los procesos ajenos. Los roles de asignación no afectan a la medición.
Tres campos en la pestaña Clúster fijan los topes.
- Límite de streams — cuántos streams puede llevar la máquina. Cero la deja en el clúster, pero vacía.
- Límite de red, kbit/s — el tope de tráfico de la máquina. Por encima el layouter no añade streams, y al superarse alivia la máquina.
- Límite de DVR, % — la ocupación de los discos de archivo con la que el streamer cuenta como lleno.
Los topes restringen las asignaciones de ingest y de copias de respaldo del archivo. La entrega edge y dvr parts no quedan restringidas por ellos — esos roles se asignan sin importar la carga de la máquina.
Qué sigue¶
Qué decidió el layouter y por qué un stream acabó donde acabó lo muestra Estado de la colocación.