Une application web Elixir typique aura généralement un backend postgresql, avec des requêtes Ecto
couplées à la logique API.Fils de base de données par requête utilisant Ecto
Cependant depuis cowboy
crée un processus enfant GenServer
(contenant la logique d'application) par demande, cela aura pour effet de produire n fils de psql pour n requêtes simultanées, même avec la mise en commun cowboy
/poolboy
fournit?
Ensuite, passer à un scénario où plusieurs instances de l'application existent (par exemple un cluster de conteneur docker) cela n'ajoutera pas un facteur supplémentaire au nombre total de threads de base de données existants?
Merci - calcul du nombre maximum de threads de la base de données de l'application sur ** ** Les instances de l'application doivent alors être ** n ** * 'pool_size' – category
Oui, c'est vrai. Chaque instance de l'application ouvrira les connexions 'pool_size'. – Dogbert
N'est-ce pas un problème? Je veux dire, si le nombre d'instances augmente de façon incontrôlable, alors les threads n * pool_size pourraient simplement tuer la DB sous une forte charge, que faites-vous dans ce cas dans le monde Elixir? –