Eine typische Elixir-Webanwendung hat normalerweise ein Postgresql-Backend mit Ecto
Abfragen, die mit der API-Logik gekoppelt sind.Datenbank-Threads pro Anfrage mit Ecto
jedoch seit cowboy
erstellt ein Kind GenServer
Prozess pro Anfrage (die App Logik enthält), wird dies zur Folge haben, n psql Gewinde für n gleichzeitige Anforderungen produzieren, auch mit dem Pooling cowboy
/poolboy
bietet?
Wenn Sie dann zu einem Szenario wechseln, in dem mehrere Instanzen der Anwendung vorhanden sind (z. B. ein Dockercontainercluster), wird dadurch kein zusätzlicher Faktor zur Gesamtzahl der vorhandenen Datenbank-Threads hinzugefügt.
Danke - Berechnung bis max Anzahl der App Db-Threads über ** n ** App-Instanzen sollten dann nur sein ** n ** * 'pool_size' – category
Ja, das ist richtig. Jede Instanz der App öffnet 'pool_size'-Verbindungen. – Dogbert
Ist das nicht ein Problem? Ich meine, wenn die Anzahl der Instanzen unkontrollierbar anwächst, könnten n * pool_size-Threads einfach die DB unter schwerer Last töten, was machst du dann in der Elixir-Welt? –