Heim Java javaLernprogramm Detaillierte Einführung in das Kernprotokoll des verteilten Systems (Bild und Text)

Detaillierte Einführung in das Kernprotokoll des verteilten Systems (Bild und Text)

Oct 09, 2018 pm 02:29 PM
日志

Dieser Artikel bietet Ihnen eine detaillierte Einführung (Bilder und Texte) zum verteilten Systemkernprotokoll. Ich hoffe, dass er Ihnen als Referenz dienen wird.

Was ist ein Protokoll?

Ein Protokoll ist eine vollständig geordnete Datensatzsequenz, die in chronologischer Reihenfolge angehängt wird. Es handelt sich eigentlich um ein spezielles Dateiformat. Die Datei ist ein Wortabschnitt Array und Protokoll sind hier Datenaufzeichnungen, aber im Vergleich zur Datei ist jeder Datensatz hier in relativer Zeitreihenfolge angeordnet. Man kann sagen, dass das Protokoll das einfachste Speichermodell ist und die Lesung im Allgemeinen von links nach erfolgt B. in einer Nachrichtenwarteschlange, wird die Protokolldatei im Allgemeinen linear geschrieben und der Verbraucher liest sequentiell, beginnend mit dem Offset.

Aufgrund der inhärenten Eigenschaften des Protokolls selbst werden die Datensätze der Reihe nach von links nach rechts eingefügt, was bedeutet, dass die Datensätze auf der linken Seite „älter“ sind als die Datensätze auf der rechten Seite, was bedeutet, dass wir sie nicht benötigen Um sich auf die Systemuhr zu verlassen, ist diese Funktion für verteilte Systeme sehr wichtig.

Anwendung des Protokolls

Anwendung des Protokolls in der Datenbank

Das Protokoll ist Es gibt keine Möglichkeit zu wissen, wann es erscheinen wird. Möglicherweise ist das Konzept zu einfach. Im Datenbankbereich werden Protokolle eher zum Synchronisieren von Daten und Indizes verwendet, z. B. das Redo-Protokoll in MySQL. Das Redo-Protokoll ist eine festplattenbasierte Datenstruktur, die verwendet wird, um die Richtigkeit und Vollständigkeit der Daten sicherzustellen System werden auch als Write-Ahead-Protokolle bezeichnet. Während der Ausführung einer Sache wird beispielsweise zuerst das Redo-Protokoll geschrieben, und dann werden die tatsächlichen Änderungen angewendet. Auf diese Weise kann das System wiederhergestellt werden wird basierend auf dem Redo-Log neu erstellt, um die Daten wiederherzustellen (während des Initialisierungsprozesses besteht zu diesem Zeitpunkt keine Client-Verbindung). Das Protokoll kann auch zur Synchronisierung zwischen dem Datenbank-Master und dem Slave verwendet werden, da im Wesentlichen alle Betriebsdatensätze der Datenbank in das Protokoll geschrieben wurden. Wir müssen nur das Protokoll mit dem Slave synchronisieren und es auf dem Slave wiedergeben, um den Master zu erreichen -Slave-Synchronisierung Hier können wir auch alle Änderungen in der Datenbank implementieren, indem wir das Redo-Protokoll abonnieren und so personalisierte Geschäftslogik implementieren, z. B. Auditing, Cache-Synchronisierung usw.

Anwendung von Protokollen in verteilten Systemen

Bei verteilten Systemdiensten geht es im Wesentlichen um Zustandsänderungen, die hier vorgenommen werden können Als Zustandsmaschinen werden zwei unabhängige Prozesse (unabhängig von der externen Umgebung, wie z. B. Systemuhren, externen Schnittstellen usw.) verstanden, die bei gegebenen konsistenten Eingaben konsistente Ausgaben erzeugen und letztendlich einen konsistenten Zustand aufrechterhalten, und das Protokoll aufgrund seiner inhärenten Sequenzität nicht Abhängig von der Systemuhr kann es zur Lösung des Problems der Änderungsordnung verwendet werden.

Wir nutzen diese Funktion, um viele Probleme zu lösen, die in verteilten Systemen auftreten. Beispielsweise empfängt der Hauptbroker im Standby-Knoten in RocketMQ die Anfrage des Clients und synchronisiert sie dann in Echtzeit mit dem Slave. Wenn der Master auflegt, kann der Slave damit fortfahren Verarbeiten Sie die Anfrage, z. B. das Ablehnen der Schreibanfrage und das Fortfahren mit der Bearbeitung von Leseanfragen. Das Protokoll kann nicht nur Daten aufzeichnen, sondern auch Vorgänge wie SQL-Anweisungen direkt aufzeichnen.

Das Protokoll ist eine Schlüsseldatenstruktur zur Lösung des Konsistenzproblems. Das Protokoll ist wie eine Abfolge von Operationen, wie beispielsweise die weit verbreiteten Paxos Raft-Protokolle Es handelt sich um ein Konsistenzprotokoll, das auf Protokollen basiert.

Anwendung von Protokollen in Message Queue

Protokolle können problemlos zur Verarbeitung des Datenzuflusses und -abflusses verwendet werden, und jede Datenquelle kann Ihr eigenes Protokoll erstellen Die Datenquellen hier können aus verschiedenen Aspekten stammen, z. B. einem bestimmten Ereignisstrom (Seitenklick, Cache-Aktualisierungserinnerung, Datenbank-Binlog-Änderung), und Abonnenten können die Protokolle basierend auf dem Offset lesen. Wenden Sie für jeden Datensatz Ihre eigenen Änderungen an, basierend auf den Daten und Vorgängen in jedem Datensatz.

Das Protokoll hier kann als Nachrichtenwarteschlange verstanden werden, und die Nachrichtenwarteschlange kann die Rolle der asynchronen Entkopplung und Strombegrenzung spielen. Warum sagen wir Entkopplung? Da die Verantwortlichkeiten der beiden Rollen für Verbraucher und Produzenten sehr klar sind, sind sie für die Erstellung und den Konsum von Nachrichten verantwortlich, ohne sich darum zu kümmern, wer nachgelagert oder vorgelagert ist, ob es sich um das Änderungsprotokoll der Datenbank oder um ein bestimmtes Ereignis handelt Ich muss mich überhaupt nicht um eine bestimmte Partei kümmern, ich muss nur auf die Protokolle achten, die mich interessieren, und auf jeden Eintrag in den Protokollen.

Wir wissen, dass die QPS der Datenbank sicher ist und Anwendungen der oberen Ebene im Allgemeinen horizontal erweitert werden können. Wenn zu diesem Zeitpunkt ein plötzliches Anforderungsszenario wie Double 11 auftritt, wird die Datenbank überlastet, dann können wir eine Nachricht einführen Warteschlangen und Hinzufügen jeder Teamdatenbank Die Vorgänge werden in das Protokoll geschrieben, und eine andere Anwendung ist dafür verantwortlich, diese Protokolldatensätze zu verbrauchen und auf die Datenbank anzuwenden. Selbst wenn die Datenbank hängt, kann die Verarbeitung bei der Wiederherstellung an der Position der letzten Nachricht fortgesetzt werden. Sowohl RocketMQ als auch Kafka unterstützen die Exactly-Once-Semantik. Auch wenn sich die Geschwindigkeit des Produzenten von der Geschwindigkeit des Konsumenten unterscheidet, hat das Protokoll hier die Funktion eines Puffers Protokollieren und synchronisieren Sie regelmäßig mit dem Slave-Knoten, sodass die Rückstandskapazität von Nachrichten erheblich verbessert werden kann, da das Schreiben von Protokollen vom Master-Knoten verarbeitet wird. Leseanforderungen werden in zwei Typen unterteilt, einer ist Tail-Read, was bedeutet, dass die Verbrauchsgeschwindigkeit höher ist Kann mit der Schreibgeschwindigkeit mithalten, während der andere Typ ein Verbraucher ist, der hinter der Schreibanforderung zurückbleibt, sodass er über die E/A-Isolation gelesen werden kann Mithilfe von Dateirichtlinien, die mit dem Betriebssystem geliefert werden, wie z. B. Pagecache, Cache vor dem Lesen usw., kann die Leistung erheblich verbessert werden.

Horizontale Skalierbarkeit ist ein sehr wichtiges Merkmal in einem verteilten System. Probleme, die durch das Hinzufügen von Maschinen gelöst werden können, sind kein Problem. Wie implementiert man also eine Nachrichtenwarteschlange, die eine horizontale Erweiterung erreichen kann? Wenn wir eine eigenständige Nachrichtenwarteschlange haben, werden E/A, CPU, Bandbreite usw. mit zunehmender Anzahl von Themen allmählich zu Engpässen und die Leistung nimmt langsam ab. Wie sieht es mit der Leistungsoptimierung aus? Zu diesem Zeitpunkt können wir ein einzelnes Thema in mehrere Unterthemen unterteilen und jedes Thema einer anderen Maschine zuweisen. Auf diese Weise können Themen mit einer großen Anzahl von Nachrichten durch Hinzufügen von Maschinen gelöst werden, während einige Themen mit einer kleinen Anzahl von Nachrichten gelöst werden können Nachrichten können durch Hinzufügen von Maschinen gelöst werden, die derselben Maschine zugewiesen oder nicht partitioniert werden können. Anschließend werden die Nachrichten entsprechend den einzelnen Partitionen und Knoten zusammengefasst und stapelweise übermittelt. Diese Methode kann auch verwendet werden, indem zuerst in den Seitencache geschrieben und dann die Festplatte regelmäßig geleert wird Beispielsweise kann die Art und Weise, wie Finanzdienstleistungen die Festplatte synchronisieren, bestimmt werden.

3. Vermeiden Sie unnötige Datenkopien

4. IO-Isolation

Fazit

Protokolle in verteilten Systemen Eine sehr wichtige Rolle und der Schlüssel zum Verständnis der verschiedenen Komponenten des verteilten Systems. Wenn wir unser Verständnis vertiefen, stellen wir fest, dass viele verteilte Middleware auf Protokollen basieren, wie z. B. Zookeeper, HDFS, Kafka, RocketMQ, Google Spanner Wait. Selbst für Datenbanken wie Redis, MySQL usw. basiert ihr Master-Slave auf der Protokollsynchronisierung. Mithilfe des gemeinsam genutzten Protokollsystems können wir viele Systeme implementieren: Datensynchronisierung zwischen Knoten, Probleme bei der gleichzeitigen Aktualisierung der Datenreihenfolge (konsistente Stabilitätsprobleme). ), Persistenz (das System kann bei einem Absturz weiterhin Dienste über andere Knoten bereitstellen), verteilte Sperrdienste usw. Ich glaube, dass Sie durch Übung und das Lesen vieler Artikel ein tieferes Verständnis erlangen werden.

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in das Kernprotokoll des verteilten Systems (Bild und Text). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was ist die Ereignis-ID 6013 in Win10? Was ist die Ereignis-ID 6013 in Win10? Jan 09, 2024 am 10:09 AM

Die Protokolle von win10 können Benutzern helfen, die Systemnutzung im Detail zu verstehen, wenn sie nach ihren eigenen Verwaltungsprotokollen suchen. Was bedeutet dieser Code? Was ist Win10-Protokoll 6013: 1. Dies ist ein normales Protokoll. Die Informationen in diesem Protokoll bedeuten nicht, dass Ihr Computer neu gestartet wurde, sie geben jedoch an, wie lange das System seit dem letzten Start in Betrieb war. Dieses Protokoll erscheint einmal täglich pünktlich um 12 Uhr. Wie kann man überprüfen, wie lange das System läuft? Sie können systeminfo in cmd eingeben. Es gibt eine Zeile darin.

Logger-Puffergröße, wofür das Protokoll verwendet wird Logger-Puffergröße, wofür das Protokoll verwendet wird Mar 13, 2023 pm 04:27 PM

Die Funktion besteht darin, den Ingenieuren Feedback-Nutzungsinformationen und -aufzeichnungen zur Verfügung zu stellen, um die Problemanalyse zu erleichtern (wird während der Entwicklung verwendet). Da Benutzer selbst nicht oft Upload-Protokolle erstellen, sind sie für Benutzer nutzlos. Der Protokollierungspuffer ist ein kleiner, temporärer Bereich, der zur kurzfristigen Speicherung von Änderungsvektoren für Redo-Protokolle verwendet wird, die auf die Festplatte geschrieben werden sollen. Beim Schreiben eines Protokollpuffers auf die Festplatte handelt es sich um einen Stapel von Änderungsvektoren aus mehreren Transaktionen. Dennoch wird der Änderungsvektor im Protokollpuffer nahezu in Echtzeit auf die Festplatte geschrieben, und wenn die Sitzung eine COMMIT-Anweisung ausgibt, wird der Protokollpuffer-Schreibvorgang in Echtzeit ausgeführt.

Fehlerbehebung bei Fehlerprotokollproblemen mit Ereignis 7034 in Win10 Fehlerbehebung bei Fehlerprotokollproblemen mit Ereignis 7034 in Win10 Jan 11, 2024 pm 02:06 PM

Die Protokolle von Win10 können Benutzern helfen, die Systemnutzung im Detail zu verstehen, wenn sie nach ihren eigenen Verwaltungsprotokollen suchen. So lösen Sie das Win10-Protokollereignis 7034: 1. Klicken Sie auf „Start“, um die „Systemsteuerung“ zu öffnen. 2. Suchen Sie nach „Verwaltungstools“. 3. Klicken Sie auf „Dienste“. 4. Suchen Sie nach HDZBCommServiceForV2.0, klicken Sie mit der rechten Maustaste auf „Dienst stoppen“ und ändern Sie es zu „Manueller Start“

So verwenden Sie die Protokollierung in ThinkPHP6 So verwenden Sie die Protokollierung in ThinkPHP6 Jun 20, 2023 am 08:37 AM

Mit der rasanten Entwicklung des Internets und von Webanwendungen wird die Protokollverwaltung immer wichtiger. Bei der Entwicklung von Webanwendungen ist die Suche und Lokalisierung von Problemen ein sehr kritisches Thema. Ein Protokollierungssystem ist ein sehr effektives Werkzeug, das uns bei der Bewältigung dieser Aufgaben helfen kann. ThinkPHP6 bietet ein leistungsstarkes Protokollierungssystem, das Anwendungsentwicklern dabei helfen kann, in Anwendungen auftretende Ereignisse besser zu verwalten und zu verfolgen. In diesem Artikel wird erläutert, wie Sie das Protokollierungssystem in ThinkPHP6 verwenden und wie Sie das Protokollierungssystem verwenden

So zeigen Sie den Verlauf Ihres Medikamentenprotokolls in der Health-App auf dem iPhone an So zeigen Sie den Verlauf Ihres Medikamentenprotokolls in der Health-App auf dem iPhone an Nov 29, 2023 pm 08:46 PM

Mit dem iPhone können Sie Medikamente zur Gesundheits-App hinzufügen, um die Medikamente, Vitamine und Nahrungsergänzungsmittel, die Sie täglich einnehmen, zu verfolgen und zu verwalten. Anschließend können Sie eingenommene oder ausgelassene Medikamente protokollieren, wenn Sie eine Benachrichtigung auf Ihrem Gerät erhalten. Nachdem Sie Ihre Medikamente protokolliert haben, können Sie sehen, wie oft Sie sie eingenommen oder ausgelassen haben, um Ihren Gesundheitszustand besser im Auge zu behalten. In diesem Beitrag zeigen wir Ihnen, wie Sie den Protokollverlauf ausgewählter Medikamente in der Health-App auf dem iPhone anzeigen. Eine kurze Anleitung zum Anzeigen Ihres Medikamentenprotokollverlaufs in der Gesundheits-App: Gehen Sie zu Gesundheits-App>Durchsuchen>Medikamente>Medikamente>Medikament auswählen>Optionen&a

Detaillierte Erklärung des Protokollanzeigebefehls im Linux-System! Detaillierte Erklärung des Protokollanzeigebefehls im Linux-System! Mar 06, 2024 pm 03:55 PM

In Linux-Systemen können Sie den folgenden Befehl verwenden, um den Inhalt der Protokolldatei anzuzeigen: Befehl tail: Der Befehl tail wird verwendet, um den Inhalt am Ende der Protokolldatei anzuzeigen. Dies ist ein allgemeiner Befehl zum Anzeigen der neuesten Protokollinformationen. tail [Option] [Dateiname] Zu den häufig verwendeten Optionen gehören: -n: Geben Sie die Anzahl der anzuzeigenden Zeilen an. Der Standardwert ist 10 Zeilen. -f: Überwachen Sie den Dateiinhalt in Echtzeit und zeigen Sie den neuen Inhalt automatisch an, wenn die Datei aktualisiert wird. Beispiel: tail-n20logfile.txt#Zeigen Sie die letzten 20 Zeilen der Datei logfile.txt an. tail-flogfile.txt#Überwachen Sie den aktualisierten Inhalt der Datei logfile.txt in Echtzeit. Head-Befehl: Der Head-Befehl wird verwendet, um den Anfang anzuzeigen der Protokolldatei

Verstehen Sie die Bedeutung des Ereignisses ID455 in Win10-Protokollen Verstehen Sie die Bedeutung des Ereignisses ID455 in Win10-Protokollen Jan 12, 2024 pm 09:45 PM

Die Protokolle von win10 enthalten viele umfangreiche Inhalte. Viele Benutzer haben bei der Suche nach ihren eigenen Verwaltungsprotokollen einen Blick darauf geworfen. Was ist Ereignis-ID455 im Win10-Protokoll: 1. ID455 ist der Fehler <error>, der in <file> auftrat, als der Informationsspeicher die Protokolldatei öffnete.

Drei Befehle zum Anzeigen von Protokollen unter Linux Drei Befehle zum Anzeigen von Protokollen unter Linux Jan 04, 2023 pm 02:00 PM

Die drei Befehle zum Anzeigen von Protokollen unter Linux sind: 1. Befehl tail, der Änderungen im Dateiinhalt und Protokolldateien in Echtzeit anzeigen kann; 2. Befehl multitail, der mehrere Protokolldateien gleichzeitig überwachen kann; Dadurch können Änderungen am Protokoll schnell angezeigt werden, ohne den Bildschirm zu überladen.

See all articles