Ist die Middleware sofort einsatzbereit? Warum Middleware-Adapter entwickeln?

Dieser Artikel wurde von der Huawei Cloud Community geteilt. „ Ist Middleware sofort verfügbar?“ Warum Middleware-Adapter entwickeln? ", Autor: Zhang Jian.

In vielen Systemen gibt es Middleware

In einem System wird es mehr oder weniger Middleware geben, es wird immer eine Datenbank und andere wie Nachrichtenwarteschlangen, Caches und Big-Data-Komponenten geben. Selbst für Systeme, die auf öffentlichen Clouds basieren, stellen öffentliche Cloud-Anbieter nur weit verbreitete Middleware bereit. Wenn Ihr System viele Komponenten enthält, die nicht so weit verbreitet sind, können Sie diese nur selbst warten, z. B. ZooKeeper, Etcd, Pulsar, Prometheus, Lvs Warten

Was ist ein Middleware-Adapter?

Unter Middleware-Adapter versteht man die gemeinsame Ausführung mit der Middleware (dieselbe physische Maschine oder derselbe Container), wodurch die Middleware mit vorhandenen Komponenten im kommerziellen System verbunden werden kann und letztendlich sichergestellt wird, dass die Middleware den Standards für die kommerzielle Nutzung im System entspricht. Viele Exporteure wie Prometheus sind Adpater, die Middleware mit dem bestehenden Überwachungssystem (Prometheus) verbinden.

Warum nicht den Middleware-Quellcode ändern und direkt integrieren?

Es kann viele Gründe geben, hier liste ich einige auf

Quellcode ist leicht zu ändern, aber schwierig zu warten

Oft handelt es sich nicht um eine allgemeine Anforderung der Community und sie kann nicht in das Community-Backbone integriert werden. Für jedes weitere Middleware-Versions-Upgrade muss der Quellcode erneut geändert werden. Umfangreiches Refactoring des Versionscodes in der Community, einige wissen nicht einmal, wie man ihn ändert. Und die Qualifikationsanforderungen an F&E-Personal sind hoch.

Der Quellcode unterscheidet sich vom Technologie-Stack des Teams und ist schwer zu ändern.

Dies ist am häufigsten der Fall, da das Java-Team die in Erlang geschriebene Rabbitmq verwaltet

Für die Anbindung an andere Systeme sind sprachliche Anforderungen erforderlich

Auf das XX-Überwachungssystem kann nur mit der X-Sprache zugegriffen werden, die Middleware ist jedoch in der Y-Sprache geschrieben. Was soll ich tun? Die Fähigkeiten des Adapters werden reflektiert.

Warum kann Middleware in kommerziellen Systemen nicht „out of the box“ verwendet werden?

In kommerziellen Systemen weist eine neu eingeführte Middleware häufig die folgenden Leistungsanforderungen auf, die für native Middleware nur schwer zu erfüllen sind.

  • Anpassung an das ursprüngliche Überwachungssystem
  • Anpassung an das Original-Alarmsystem
  • Anpassung an das ursprüngliche Zertifikatssystem
  • Anpassung an das ursprüngliche Backup-System (wenn die Middleware zustandsbehaftet ist)
  • Anpassung an das ursprüngliche Disaster-Recovery-System (wenn die Middleware zustandsbehaftet ist)
  • Automatisierungsfunktionen (Anpassungsbereitstellung, Kontoerstellung, Erstellung von Berechtigungsrichtlinien)
  • Kapselt eine Schnittstellenschicht, wenn sie der Außenwelt ausgesetzt wird
  • Serviceerkennung für Anwendungen und Middleware

Manchmal erweitern Unternehmen auch die Fähigkeiten der Middleware basierend auf Geschäftsanforderungen. Dieser Teil der Anforderungen ist relativ individuell und kann hier nicht besprochen werden.

Lassen Sie uns die oben aufgeführten Leistungsanforderungen einzeln besprechen. Jede Funktion, die der Adapter erreichen kann, kann auch durch Ändern der Middleware erreicht werden. Aus den im vorherigen Abschnitt aufgeführten Gründen haben wir uns jedoch entschieden, keine aufdringlichen Änderungen an der Middleware vorzunehmen.

Anpassung an das ursprüngliche Überwachungssystem

Das Überwachungssystem erhält Daten häufig in zwei Modi: Push und Pull. Wenn die Middleware das Andocken an das Überwachungssystem nicht nativ unterstützt. Wir können den Adapter zunächst Überwachungsdaten von der Middleware abrufen lassen und ihn dann mit dem Überwachungssystem verbinden.

Anpassung an das Original-Alarmsystem

Wenn in der Middleware ein nicht behebbarer Fehler auftritt, beispielsweise ein Fehler beim Schreiben einer Transaktionsdatei oder ein Fehler beim Betrieb von ZooKeeper-Metadaten, können Sie mithilfe des Adapters ermitteln, ob der oben genannte nicht behebbare Fehler in der Middleware aufgetreten ist, und eine Schnittstelle mit dem herstellen Alarmanlage, um einen Alarm auszulösen.

Anpassung an das ursprüngliche Zertifikatssystem

Dies ist ebenfalls von entscheidender Bedeutung. Nach meinem Verständnis von Open-Source-Middleware haben fast keine Projekte dynamische Zertifikatsrotationslösungen implementiert, und Zertifikate unterstützen grundsätzlich keine Änderungen. Ein hervorragendes kommerzielles System muss die Zertifikatsrotation unterstützen. Leider handelt es sich dabei um die Schlüsselprozesse des TLS-Handshakes. Der Adapter kann in diesen Prozess nicht eingreifen und nur aufdringliche Änderungen an der Middleware vornehmen.

Anpassung an das ursprüngliche Backup-System

Regelmäßige Sicherung der Middleware durch Adapter, Sicherung gemäß den Richtlinien des Konfigurationscenters, automatisches Hochladen von Sicherungsdateien auf den Dateiserver usw.

Anpassung an das ursprüngliche Disaster-Recovery-System

Dies hängt von der Middleware ab. Wenn eine Middleware wie Pulsar die überregionale Notfallwiederherstellung nativ unterstützt, konfigurieren wir sie möglicherweise einfach. Für andere, wie MySQL und Mongo, müssen wir möglicherweise einen Adapter für die Datensynchronisierung verwenden. Zu diesem Zeitpunkt hat der Adapter jedoch größere Verantwortlichkeiten, einschließlich der Funktionen zur Notfallwiederherstellung.

Automatisierungsfähigkeit

Automatisierte Bereitstellung

Wenn beispielsweise ZooKeeper, Kafka und Filebeat installiert sind, müssen sie die Konfigurationsdatei ausfüllen. Wir können den Adapter die Konfiguration automatisch generieren oder aktualisieren lassen.

Erstellen und aktualisieren Sie Konten und Richtlinien

Wie bei Kubernetes, MySQL und Mongo können wir den Adapter während der Installation automatisch erstellen oder aktualisieren

Kapselt eine Schnittstellenschicht, wenn sie der Außenwelt ausgesetzt wird

Gekapselte Schnittstellen werden von Middleware-Anbietern häufig aus verschiedenen Gründen verwendet, z. B. weil die ursprüngliche Schnittstellenkapazität der Middleware zu groß ist, die ursprüngliche Schnittstelle der Middleware keine Berechtigungskontrolle hat und die ursprüngliche Schnittstelle der Middleware sich nicht an die erwarteten Berechtigungen anpasst Rahmen usw. Wir können die Adapterkapselung verwenden, um eine neue Schnittstellenschicht zu implementieren, die der Außenwelt zugänglich ist.

Serviceerkennung für Anwendungen und Middleware

Middleware zur Anwendungserkennung

Die Verbindung zwischen der Anwendung und der Middleware bedeutet lediglich, wie die IP abgerufen wird. Wenn sie auf Basis von Kubernetes bereitgestellt wird, wird nicht empfohlen, die IP zu konfigurieren. Es ist am besten, den Domänennamen zu konfigurieren, da sich die IP im Laufe des Lebens ändert Zyklus des Behälters. Erstens erstellt Ihre Anwendung den Client nicht neu, da ein Middleware-Container neu gestartet wird. Oftmals stellt sie durch eine einfache erneute Verbindung eine Verbindung zum neuen Middleware-Container her, um weiterarbeiten zu können. Zweitens wird unser Betriebs- und Wartungspersonal nicht darauf achten, ob sich die Container-IP ständig ändert, um sie zu konfigurieren. Die folgende Abbildung ist ein Beispiel. Die Konfiguration des Domänennamens ist besser als die IP-Konfiguration.

cke_150.png

Ab sofort benötigen wir nur noch eine statische Konfiguration, damit sich die Anwendung mit der Middleware verbinden kann. Am besten kann diese Konfiguration geändert werden, sodass wir auch die Fähigkeit zur Blaugrün- und Graustufenveröffentlichung erben können.

Entdeckung von Middleware bis hin zu Geschäftsprogrammen

Dieser Modus wird häufig für Lastausgleichs-Middleware wie Lvs und Nginx verwendet, um die Backend-Liste automatisch zu verwalten. Mit dem Adapter können wir die Instanzinformationen des Backend-Dienstes vom Registrierungszentrum abrufen und in Echtzeit aktualisieren.

Zusammenfassen

In kommerziellen Systemen ist Middleware nicht so einsatzbereit wie gedacht. In diesem Artikel werden einige Funktionen beschrieben, die Middleware haben muss, wenn sie in kommerzielle Systeme integriert wird. In Szenarien, in denen Sie technisch nicht in der Lage sind, aufdringliche Änderungen an der Middleware vorzunehmen oder keine aufdringlichen Änderungen an der Middleware vornehmen möchten. Es wäre eine bessere Wahl, den Middleware-Adapter in einer Sprache zu entwickeln, die vom Team häufig verwendet wird und weniger Ressourcen beansprucht.

 

Klicken Sie hier, um zu folgen und so schnell wie möglich mehr über die neuen Technologien von Huawei Cloud zu erfahren~

Bilibili stürzte zweimal ab, Tencents „3.29“-Unfall erster Stufe … Bestandsaufnahme der zehn häufigsten Ausfallunfälle im Jahr 2023 Vue 3.4 „Slam Dunk“ veröffentlichte MySQL 5.7, Moqu, Li Tiaotiao … Bestandsaufnahme des „Stopps“ im Jahr 2023 Mehr ” (Open-Source-)Projekte und Websites blicken auf die IDE von vor 30 Jahren zurück: nur TUI, helle Hintergrundfarbe... Vim 9.1 wird veröffentlicht, gewidmet Bram Moolenaar, dem Vater von Redis, „Rapid Review“ LLM Programming: Omniscient und Omnipotent&& Stupid „Post-Open Source“ Die Ära ist gekommen: Die Lizenz ist abgelaufen und kann nicht mehr für die breite Öffentlichkeit bereitgestellt werden. China Unicom Broadband begrenzte plötzlich die Upload-Geschwindigkeit und eine große Anzahl von Benutzern beschwerte sich. Windows-Führungskräfte versprachen Verbesserungen: Machen Sie den Anfang Speisekarte wieder super. Niklaus Wirth, der Vater von Pascal, ist verstorben.
{{o.name}}
{{m.name}}

Supongo que te gusta

Origin my.oschina.net/u/4526289/blog/10580526
Recomendado
Clasificación