Nginxを使用して1台のサーバにHAProxyを適用


エージェントの理論を学んだら、すぐに実践を応用するとき

プライベートトーク


まず私に与えた条件は1台のサーバーなので、1台のサーバーをください.ううう
他のポスターも探しました.
2台のサーバであれば、1台のサーバにnginxを設定し、残りの1台はそのままnohupまたはdockerで開きます
もっと良い環境なら、残りの1台にもnginxを設置し、ルータに分岐すると、本当に最高ですが.l 3スイッチも高いですか?あとこんな話も….入手が難しいだけでなく...それよりもアマゾンの負荷バランスが効率的です.呜呜...

2台のサーバ

java -jar app1.jar \
--server.servlet.context-path=/api \
--server.address=127.0.0.1 \
--server.port=8080

java -jar app2.jar \
--server.servlet.context-path=/api \
--server.address=127.0.0.1 \
--server.port=8081

このように2つ開きますが、外部のPostmanやこのようなものでテストして渋滞の問題が発生した場合、サーバー.addressを修理すればいいです.

Nginx設定


nginx configを変更する必要があります.既存のリバースエージェントの半分なので、リバースエージェントと同じに設定します.
サーバーセクション
location /api {
proxy_pass http://localhost:8080;
proxy_http_version 1.1;
proxy_set_header Connection "";
include /etc/nginx/proxy_params;
}

ではhttp://localhost/apiはこのように入ってくると直接8080に変えます
今から上流へ行きましょう.
upstream backend {
server localhost:8080;
server localhost:8081;
}

先ほど設定したプロキシパス部分を上流部分に適用します.
#proxy_pass http://localhost:8080;
proxy_pass http://backend;

そんなふうに変わる
そして、nginx設定が変更されたので、nginxは再開
sudo service nginx restart

パフォーマンスの比較


そしてjmeterで負荷テストを行い、before afterを比較します!
jmeterで負荷テストを行う方法は、次のとおりです.
ふかしけんここで確認
プロジェクトのテーマはスパッタなので.
10号サイクルCNT 1900名が1秒実施されたとき、以下のような状況が発生した.
1秒あたりのレンダリング数

作業スレッド数

ちえんじかん

2100人が10ループcnt 1秒を呼び出すと,起動したスレッド数から2100にとどまり終了する.

これでは、実際に2100人を収容するのは難しい.
テストしてみましょう
1900人が10番サイクルcntで1秒運転した時
作るたびに負荷図がいろいろになります.アマゾンec 2サーバーで
1秒あたりのレンダリング数

request failedが表示されますが、最初の分機が接続できないのではなく、2番目の接続かもしれません.
作業スレッド数

1200にボトルネックがありますが、ec 2サーバはあまりよくないようです.
ちえんじかん

一秒テストしたせいか、最後に飛び出してしまうことが多いです.
さっきec 2サーバーが一時停止したうちに...积み重ねたものが飞び散ったようだ.
最後に最も重要なスレッドグループです
2500人が10番サイクルcntで1秒運転した場合

2800名の時

3000名で失敗

およそ2800名くらい収容できます.
導入前

導入後

実際,1台で負荷バランスをとっているため,それほど効率は見られなかった.