NGINX はクラウドネイティブに進化し、すべて OpenNJetで実現
構成の同期
前回の記事では、OpenNJet が高可用性構成を実装する方法を紹介しましたが、この記事では、高可用性モードでのクラスター構成の同期機能を紹介します。OpenNJet には多くの動的構成モジュールがあり、これらの動的構成は、HAモジュールを使用してアクティブ ノードとスタンバイ ノード間で同期できます。
マスター ノードは動的構成インターフェイス (宣言型APIまたは命令型API ) を通じて構成を動的に更新し、バックアップノードはこれらの構成を適時に同期できます。マスター ノードがダウンすると、バックアップノードが構成を動的に更新し、マスター ノードが復旧した後、更新された構成を適切なタイミングで同期できます。最終的には、アクティブ ノードとスタンバイ ノードの両方が互いの構成の最新の同期を確保できることが保証されます。
テスト
設定手順
次のテスト シナリオはすべて、 1 つのマスター ノードと 1 つのバックアップノードを使用してテストされます。
マスターノード: 192.168.40.136
ブローカーのプロセス構成は次のとおりです
C++
#配置主节点监听端口和ip
listener 1883 192.168.40.136
#配置本地socket地址,用于本地worker进程通信
listener 0 /root/bug/njet1.0/data/mosquitto.sock
log_dest file logs/mosquitto.log
log_type debug
log_type information
log_type error
log_type warning
log_type notice
allow_anonymous true
persistence true
autosave_on_changes true
autosave_interval 1
persistence_location /root/bug/njet1.0/data/
バックアップノード: 192.168.40.91
ブローカーのプロセス構成は次のとおりです。
C++
#配置backup节点监听端口和ip
listener 1883 192.168.40.91
#配置本地socket地址,用于本地worker进程通信
listener 0 /root/bug/njet1.0/data/mosquitto.sock
#配置需要连接的主节点地址信息
connection bridge-backup
address 192.168.40.136:1883
#topic主题过滤掉get相关接口请求
topic /dyn/# both 0
topic /ins/# both 0
log_dest file logs/mosquitto.log
log_type debug
log_type information
log_type error
log_type warning
log_type notice
allow_anonymous true
persistence true
autosave_on_changes true
autosave_interval 1
persistence_location /root/bug/njet1.0/data/
命令型 APIメッセージの同期
マスターノード更新メッセージ、バックアップノード同期メッセージ
ロケーション /clb をメイン ノードに追加し、バックアップノードが同時に追加されるかどうかを確認します。
動的ロケーションインターフェースを介してメインノードにロケーションを追加します。
他のモジュールのgetインターフェイスを介してクエリを実行すると、マスター ノードの場所がすでに存在していることがわかります。
バックアップノードから確認すると、その場所も存在し、同期が成功していることがわかります。
バックアップノード更新メッセージ、マスターノード同期メッセージ
ロケーション /clb2 をバックアップノードに追加し、メイン ノードが同時に追加されるかどうかを確認します。
動的ロケーション・インターフェースを介してバックアップ・ノードにロケーションを追加します。
他のモジュールのgetインターフェイスを介してクエリを実行すると、バックアップノードの場所がすでに存在していることがわかります。
マスター ノードから確認すると、その場所も存在し、同期が成功していることがわかります。
宣言型 APIメッセージの同期
マスターノード更新メッセージ、バックアップノード同期メッセージ
/clb の場所にある制限接続数を変更して確認します。
マスターノード変更前:conn数は100
マスターノードの値を200に変更します。
バックアップノードの値を確認すると、すでに200になっており、同期が成功したことを示しています。
バックアップノード更新メッセージ、マスターノード同期メッセージ
/clb の場所にある制限接続数を変更して確認します。
バックアップポイントを300に変更します
ホスト ポイントも300であることを確認すると、同期は成功しています。
マスター ノードは終了しますが、リロード後もバックアップノード構成は消えません。
マスター ノードを停止し、バックアップノードの構成を確認します。
バックアップノードを観察します。まだ300です。
バックアップノードの値を400に変更し、バックアップノードをリロードして再度取得すると、値がまだ400 であることがわかります。
マスター ノードが再参加すると、バックアップノードのメッセージが同期されます。
マスター ノードを起動し、マスター ノードの構成がバックアップノードの動的構成を同期するかどうかを確認します。
マスターノードを再起動します。
マスター ノードの値を確認すると、すでに400になっており、同期が成功したことを示しています。
既知の問題点
位置情報が動的に削除されたメッセージなどの必須APIがある場合、同期は失敗します。
Broadcom は、既存の VMware パートナー プログラム Deepin-IDE バージョン アップデートの終了を発表し 、新しい外観に なりました。WAVE SUMMIT は第 10 回を迎えます。Wen Xinyiyan が最新の情報を公開します。 周宏儀: 紅夢ネイティブは間違いなく成功するだろう GTA 5 の完全なソースコードが公開された ライナス: クリスマスイブにはコードを読まないつもりだ Java ツールセットの新バージョン Hutool-5.8.24をリリースする来年。一緒 にフリオンについて文句を言いましょう。商業探査: ボートは通過しました。万中山、v4.9.1.15 Apple、オープンソースのマルチモーダル大規模言語モデルをリリース フェレット ヤクルト会社、95G データが漏洩したことを確認OpenNJetは、NGINX1.19の基本フォークをベースに独自に進化したもので、高性能、安定性、拡張が容易という特徴を持ち、動的構成や管理機能の難しさなどNGINXの長年の課題を解決しています。仕事。 メールグループ公式サイト