一般的なElixir Webアプリケーションには通常、APIロジックと組み合わせたEcto
クエリを持つpostgresqlバックエンドがあります。Ectoを使用した要求ごとのデータベーススレッド
しかしcowboy
が要求ごと(アプリのロジックを含む)子GenServer
プロセスを作成するので、これはプールcowboy
/poolboy
を提供しさえして、nは同時要求のためののn psqlのスレッドを生成する効果を持っているのだろうか?
次に、アプリケーションの複数のインスタンスが存在するシナリオ(たとえば、ドッカーコンテナクラスター)に移動すると、既存のデータベーススレッドの総数に余分な要素が追加されませんか?
ありがとうございます**アプリケーションデータベースのスレッド数は最大** ** ** appインスタンスは** n ** * 'pool_size'です。 – category
はい、そうです。アプリケーションの各インスタンスは 'pool_size'接続を開きます。 – Dogbert
これは問題ではありませんか?つまり、インスタンスの数が制御不能になった場合、n * pool_sizeスレッドは重い負荷のもとでDBを殺すことができます。その場合、Elixirの世界では何をしますか? –