Haz que MediaService sea correcto en más de una vaina, y ejecuta dos

FeatureMediaService
Se descapó
4 de septiembre de 2026 a las 20:20 UTC
Autor
Kamo
Compromit
6ef1e59

MediaService sólo ha corrido una sola réplica, por lo que un despliegue de él fue un corte de chat total y una OOM era la misma. No pudo ejecutar dos, por razones que estaban todas en el código: 1. EL BROKER STOMP IS IN-HEAP. enableSimpleBroker significa convertAndSend llega sólo a los WebSockets conectado a la vaina haciendo la llamada. Trece controladores de relevos ya manejaban esto correctamente suscribirse a NATS con un despachador sencillo (sin grupo de colas, por lo que cada cápsula recibe cada mensaje) y volver a publicar localmente. Trece otros sitios de llamadas no hicieron indicadores de mecografía, presencia, insigniques no leídos, subvenciones de respuesta, oferta/respuesta/ICE, notificaciones de chat entrante y cada uno habría entregado a aproximadamente la mitad de su público previsto. StompFanout generaliza el patrón que esos relevos ya utilizan: publicar el destino, la carga útil en un tema NATS básico, cada cápsula lo transmite en su propio bróker. Core NATS, no JetStream, porque se trata de eventos de momento en vivo sin valor reproducido y sin transmisión que cubra el tema. Debido a que el núcleo NATS también entrega al editor, envíe () NO escriba localmente, también que Entregaría dos veces aquí. Con NATS abajo cae de nuevo a un enviado local, que es lo que el la plataforma lo hizo antes. 2. EL CONSUMER PER-CONVERSACION ES UN DURABLE EXCLUSIVE. ChatSessionSubscriptionManager nombró su JetStream duradero después de la sesión de chat GUID, y un consumidor de empuje duradero admite exactamente uno Suscriptor. El segundo vínculo de la cápsula fue rechazado [SUB-90012] y todos los miembros cuyo enchufe aterrizó no había nada, ni mensajes, ni recibos de lectura, sin eventos de miembros-añadidos, sin error. Ahora un consumidor efímero: sin nombre para colisionar, uno por cápsula, cosechado por el servidor. El reinicio que se elimina inventó un nuevo nombre duradero en la colisión. Funviró, y filechó un consumidor permanente del lado del servidor por colisión que nada borró nunca. 3. CINCO MÁS DURABLES FIXED-NAME, que necesitan tratamiento opuesto dependiendo del trabajo. La conversión y los relés VOIP STOMP pasaron por JetStream en lugar de un despachador de núcleo, por lo que tenían lo mismo bug de exclusividad, ahora efímero, ya que cada vaina debe recibir. El notificante de chat-email, social consumidor y reconversión de marketing debe correr exactamente la ONCE, por lo que se quedan con la suya duradero y unirse a un grupo de entrega, lo que también significa que un sobreviviente recoge el trabajo cuando una vaina muere. Se requieren sesiones de pegajosas en la ruta de los medios, no opcionales: estos clientes STOMP utilizan SockJS, cuya caída xhr-streaming/xhr-polling es varias solicitudes de HTTP parado de una conexión En contra de la sesión dice que vive en la memoria de una vaina. Round-robin lo rompe. Ver ingressroute.yaml. réplicas 1 - 2. Pasan 367 pruebas.

Todos los cambios

Como lo que ves enviaste?

Cada una de estas actualizaciones aterriza en su espacio de trabajo automáticamente. Empieza gratis y verlo crecer semana tras semana.

Arranzar gratis para siempreVer Precios