[モニタリング] nginx は Sentinel を統合し、インターフェイスの融合、電流制限、劣化などを実現します。

Nginx での Sentinel のダッシュボード アドレスやアプリケーション名などのパラメーターの構成は、OpenResty および Lua スクリプトを通じて実現できます。具体的な手順は次のとおりです。

OpenRestyをインストールします。OpenResty をインストールするには、公式ドキュメントを参照してください。

Nginx設定ファイルにLuaスクリプトを導入します。例えば:

http {
    lua_package_path "/path/to/lua/?.lua;;";
    lua_shared_dict sentinel 1m;

    init_worker_by_lua_block {
        local redis = require "resty.redis"
        local sentinel = require "resty.sentinel"
        sentinel.init({dashboard_addr = "http://localhost:8080", app = "my-app"})
        ngx.timer.every(5, function() sentinel.update_rules() end)
    }
}

ここでは、lua_package_pathにLuaスクリプトのパスを追加し、共有メモリ領域のsentinelを定義し、init_worker_by_lua_blockでSentinelを初期化し、ダッシュボードのアドレスやアプリケーション名などのパラメータを設定しています。同時に、Sentinel ルールを 5 秒ごとに更新するタイマーが定義されます。

スロットリングや機能低下の制御が必要なインターフェイスでは、Lua スクリプトを使用します。例えば:

location /api {
    access_by_lua_block {
        local sentinel = require "resty.sentinel"
        if sentinel.pass("my-api", ngx.var.remote_addr) then
            return
        else
            ngx.exit(503)
        end
    }
}

ここでは、Lua スクリプトを使用して、フロー制限制御のために Sentinel のインターフェイスを呼び出します。インターフェイスがフロー制限ルールを通過した場合、リクエストは解放され、そうでない場合は、503 エラー コードが返されます。

つまり、Nginx で Sentinel のダッシュボード アドレスやアプリケーション名などのパラメーターを構成することは、OpenResty および Lua スクリプトを通じて実現でき、Lua スクリプトと組み合わせて、電流制限または劣化制御が必要なインターフェイスで電流制限および劣化制御を実装できます。

おすすめ

転載: blog.csdn.net/qq_38428623/article/details/130065612