Innanzitutto, sono pienamente consapevole della configurazione Discourse consigliata, ma purtroppo al momento è al di fuori del mio controllo.
Veniamo al problema. Il mio cliente aveva sviluppato un frontend React personalizzato che utilizza Discourse come backend. Ho ereditato il progetto in uno stato disastroso, e gli sviluppatori precedenti avevano tentato di forzare ActionCable all’interno di Discourse. Dato che Discourse utilizza già Message Bus per le funzionalità in tempo reale, ho pensato che dovremmo provare a usare quello.
Abbiamo avuto successo in locale. Message Bus “funziona semplicemente” e siamo stati in grado di iscriverci a tutti i canali predefiniti di Message Bus di Discourse, oltre a crearne di nostri.
Il problema che stiamo riscontrando si presenta nei nostri ambienti remoti. Stiamo distribuendo su istanze AWS EC2 poste dietro un ALB, costruendo l’ambiente noi stessi. Avrei voluto seguire la strada di Docker, ma il cliente non aveva semplicemente il budget per dedicare tempo a cambiare le cose in questa fase del progetto ![]()
Il sintomo principale è che Message Bus ha una latenza terribile. Nulla è davvero in tempo reale, ma sappiamo che la configurazione di Message Bus è corretta perché funziona benissimo in locale, quindi deve esserci qualcos’altro.
Sto praticamente utilizzando la configurazione nginx predefinita di Discourse. Inizialmente pensavo che questo fosse il problema, dato che mancava la configurazione nginx per Message Bus, ma dopo averla aggiunta non sembra aver risolto i problemi che stiamo riscontrando.
Dopo aver esaminato la scheda di rete in Chrome, è chiaro che c’è un problema: le nostre richieste /poll rimangono in attesa per 25 secondi e poi scaricano i contenuti in pochi millisecondi. So che dovrebbe essere il contrario, come quando lo eseguo in locale o come avviene su meta.
Sono consapevole che potrebbe trattarsi anche di un problema legato ad AWS ALB, ma sono letteralmente senza idee su da dove iniziare. Mi chiedevo se @sam avesse qualche idea su quale possa essere il problema o se potesse indicarmi la direzione giusta.
Come sempre, ogni aiuto è molto apprezzato!
