Verwendung von OpenNJet HA Copilot zur Erzielung einer Hochverfügbarkeitsbereitstellung (2)

17309005:

NGINX entwickelt sich zu Cloud Native weiter, alles in  OpenNJet 


Konfigurationssynchronisierung

Im vorherigen Artikel wurde vorgestellt , wie OpenNJet die Hochverfügbarkeitskonfiguration implementiert. In diesem Artikel wird die Funktion der Clusterkonfigurationssynchronisierung im Hochverfügbarkeitsmodus vorgestellt. OpenNJet verfügt über viele dynamische Konfigurationsmodule. Diese dynamischen Konfigurationen können mithilfe unseres HA- Moduls zwischen den aktiven und Standby-Knoten synchronisiert werden .

Der Masterknoten aktualisiert die Konfiguration dynamisch über die dynamische Konfigurationsschnittstelle (deklarative API oder imperative API ), und dann kann der Backup- Knoten diese Konfigurationen rechtzeitig synchronisieren. Wenn der Masterknoten ausfällt, aktualisiert der Backup- Knoten die Konfiguration dynamisch. Nachdem der Masterknoten wieder hochgefahren ist, kann die aktualisierte Konfiguration rechtzeitig synchronisiert werden. Letztendlich ist gewährleistet, dass sowohl der aktive als auch der Standby-Knoten die aktuelle Synchronisierung ihrer Konfigurationen untereinander gewährleisten können.

prüfen

 Konfigurationsanleitung

Die folgenden Testszenarien werden alle mit einem Master-Knoten und einem Backup- Knoten getestet .

Masterknoten: 192.168.40.136

Die Konfiguration des Broker-Prozesses ist wie folgt

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/

 Backup- Knoten: 192.168.40.91

Die Konfiguration des Broker-Prozesses ist wie folgt:

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/

Imperative API- Nachrichtensynchronisierung 

Master-Knoten-Aktualisierungsnachricht, Backup- Knoten-Synchronisierungsnachricht

Fügen Sie dem Hauptknoten einen Standort /clb hinzu und beobachten Sie , ob gleichzeitig der Sicherungsknoten hinzugefügt wird.

Fügen Sie über die dynamische Standortschnittstelle einen Standort zum Hauptknoten hinzu

Durch Abfragen über die Get- Schnittstelle anderer Module können Sie feststellen, dass der Standort des Masterknotens bereits vorhanden ist.

Überprüfen Sie den Sicherungsknoten und stellen Sie fest, dass der Speicherort ebenfalls vorhanden ist und die Synchronisierung erfolgreich ist.

 Backup- Knoten-Update-Nachricht, Master-Knoten-Synchronisierungsnachricht

Fügen Sie einen Standort /clb2 zum Backup- Knoten hinzu und beobachten Sie, ob gleichzeitig der Hauptknoten hinzugefügt wird.

Fügen Sie über die dynamische Standortschnittstelle einen Standort zum Sicherungsknoten hinzu

Durch Abfragen über die Get- Schnittstelle anderer Module können Sie feststellen, dass der Speicherort des Sicherungsknotens bereits vorhanden ist.

Überprüfen Sie vom Masterknoten aus, ob der Standort ebenfalls vorhanden ist und die Synchronisierung erfolgreich ist.

Deklarative API- Nachrichtensynchronisierung

Master-Knoten-Aktualisierungsnachricht, Backup- Knoten-Synchronisierungsnachricht

 

Überprüfen Sie dies , indem Sie die Anzahl der maximalen Verbindungen unter Standort /clb ändern

Bevor der Masterknoten geändert wird: Die Anzahl der Verbindungen beträgt 100

Ändern Sie den Wert des Masterknotens auf 200

Beobachten Sie den Wert des Sicherungsknotens und stellen Sie fest, dass er bereits 200 beträgt , was darauf hinweist, dass die Synchronisierung erfolgreich war.

Backup- Knoten-Update-Nachricht, Master-Knoten-Synchronisierungsnachricht

Überprüfen Sie dies , indem Sie die Anzahl der maximalen Verbindungen unter Standort /clb ändern

Ändern Sie den Sicherungspunkt auf 300

Beobachten Sie den Hostpunkt, der ebenfalls 300 ist , und die Synchronisierung ist erfolgreich.

Der Master-Knoten wird beendet und die Backup- Knotenkonfiguration verschwindet nach dem Neuladen nicht.

Stoppen Sie den Masterknoten und beobachten Sie die Konfiguration des Backup- Knotens.

Beobachten Sie den Backup- Knoten, er ist immer noch 300

Ändern Sie den Wert des Sicherungsknotens auf 400 , laden Sie dann den Sicherungsknoten neu , rufen Sie ihn erneut ab und stellen Sie fest , dass der Wert immer noch 400 beträgt.

Wenn der Master-Knoten wieder beitritt, werden die Nachrichten des Backup- Knotens synchronisiert.

Starten Sie den Masterknoten und beobachten Sie, ob die Masterknotenkonfiguration die dynamische Konfiguration des Backup- Knotens synchronisiert.

Starten Sie den Masterknoten neu.

Beobachten Sie den Wert des Masterknotens. Er beträgt bereits 400 , was darauf hinweist, dass die Synchronisierung erfolgreich war.

Bekannte Probleme

      Wenn zwingende APIs vorhanden sind, wie z. B. der Standort dynamisch gelöschter Nachrichten, schlägt die Synchronisierung fehl.

OpenNJet basierte zunächst auf dem Basiszweig von NGINX1.19 und entwickelte sich unabhängig davon. Es zeichnet sich durch hohe Leistung, Stabilität und einfache Erweiterung aus. Es löst auch die seit langem bestehenden Probleme von NGINX, wie z. B. Schwierigkeiten bei der dynamischen Konfiguration und die Auswirkungen auf Verwaltungsfunktionen Geschäft.  Offizielle Website der Mail-Gruppe 

Broadcom kündigte die Beendigung des bestehenden VMware-Partnerprogramms Deepin-IDE-Versionsupdate, ein neues Erscheinungsbild, an. WAVE SUMMIT feiert seine 10. Ausgabe. Wen Xinyiyan wird die neueste Enthüllung haben! Zhou Hongyi: Der gebürtige Hongmeng wird auf jeden Fall Erfolg haben. Der komplette Quellcode von GTA 5 wurde öffentlich durchgesickert. Linus: Ich werde den Code an Heiligabend nicht lesen. Ich werde eine neue Version des Java-Tool-Sets Hutool-5.8.24 veröffentlichen nächstes Jahr. Lasst uns gemeinsam über Furion klagen. Kommerzielle Erkundung: Das Boot ist vorbei. Wan Zhongshan, v4.9.1.15 Apple veröffentlicht Open-Source-Multimodal-Großsprachenmodell Ferret Yakult Company bestätigt, dass 95 G-Daten durchgesickert sind
{{o.name}}
{{m.name}}

Ich denke du magst

Origin my.oschina.net/u/6606114/blog/10315642
Empfohlen
Rangfolge