Eine kurze Einführung in Protobuf und ein Installationstutorial in der Ubuntu 16.04-Umgebung

Eine kurze Einführung in Protobuf und ein Installationstutorial in der Ubuntu 16.04-Umgebung

Eine kurze Einführung in protobuf

Protobuf ist Googles Open-Source-Framework für Serialisierungsprotokolle, dessen Struktur XML und JSON ähnelt. Seine bemerkenswerten Merkmale sind Binärität und hohe Effizienz. Es wird hauptsächlich in Kommunikationsprotokollen und Datenspeichern verwendet und gilt als Methode zur Darstellung strukturierter Daten.

Vorteile von Protobuf

  • Jeder benutzt es, zumindest die "Anmaßenden" benutzen es [Wir müssen mit der Zeit gehen]
  • Andere sagen, dass die Leistung gut ist, Binärformat [große Projekte verwenden dies nicht, es ist beschämend]
  • Plattformübergreifende Unterstützung für verschiedene Sprachen sowie Vorwärts- und Rückwärtskompatibilität sind sehr leistungsstark [schließlich nutzt Google sie]

Nachteile von Protobuf

  • Binäres Format, normale Leute können es nicht lesen
  • Fehlende Selbstbeschreibung

XML ist selbstbeschreibend, das Protobuf-Format jedoch nicht. Wenn Sie eine Binärdatei erhalten, können Sie nicht sagen, was sie tut.

Schritte zur Verwendung von Protobuf

  • Definieren Sie Ihr eigenes Datenstrukturformat (.pro) für die Quelldatei
  • Kompilieren Sie die Quelldatei mit dem von protobuf bereitgestellten Compiler
  • Verwenden Sie die API von protobuf go zum Lesen und Schreiben von Informationen

Definieren Sie beispielsweise eine strukturierte Datenperson, einschließlich Name und E-Mail-Attributen

Definiert in XML

<Person>
 <Name>Zhangsan</Name>
 <E-Mail>zhangsan@qq.com</E-Mail>
<Person>

protobuf definiert dies

Person{
 Name: „zhangsan“
 E-Mail: „zhangsan@qq.com“
}

Dies ist in JSON definiert

{
 "Person":{
  "Name": "zhangsan",
  "E-Mail":"zhangsan@qq.com"
 }
}

Syntax von protobuf

Nachrichtendefinition

Ein Nachrichtentyp definiert ein Anforderungs- oder Antwortnachrichtenformat und kann mehrere Typen enthalten.

Service

Wenn Sie den Nachrichtentyp auf RPC verwenden müssen, müssen Sie eine RPC-Dienstschnittstelle in der .proto-Datei definieren. Der Protokollpuffer-Compiler generiert Dienstschnittstellencode basierend auf der ausgewählten Sprache.

Protobuf ist in Ubuntu installiert [Version 16.04]

Offizielle Adresse: https://github.com/google/protobuf/blob/master/src/README.md

Die Installationsbefehlszeile lautet wie folgt:

$ sudo apt-get installiere autoconf automake libtool curl make g++ entpacken
$ git clone https://github.com/google/protobuf.git
$ cd protobuf
$ git Untermodul-Update --init --recursive
$ ./autogen.sh
$ ./konfigurieren
$ machen
$ Scheck ausstellen
$ sudo make installieren
$ sudo ldconfig # Cache der gemeinsam genutzten Bibliothek aktualisieren.

Screenshot nach der Erstellung

宛十八微服務

Die Kompilierung verlief reibungslos und ohne Probleme. Schauen wir uns die Version unten an.

$ protoc --version12

宛十八微服務

Zusammenfassen

Das Obige ist eine kurze Einführung in Protobuf und das Installationstutorial in der Ubuntu 16.04-Umgebung. Ich hoffe, es wird für alle hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!
Wenn Sie diesen Artikel hilfreich finden, können Sie ihn gerne abdrucken und dabei bitte die Quelle angeben. Vielen Dank!

Das könnte Sie auch interessieren:
  • Detailliertes Tutorial zur Installation von Protobuf 3 unter Ubuntu

<<:  Detaillierte Erläuterung der Konfigurationsmethode der Lese-/Schreibtrennung bei der MySQL-Master-Slave-Replikation

>>:  Detaillierte Erläuterung der allgemeinen Verwendungsmethoden von weixin-js-sdk in vue

Artikel empfehlen

Fragen zum Vorstellungsgespräch zu JS 9 Promise

Inhaltsverzeichnis 1. Mehrere .catch 2. Mehrere ....

So verwenden Sie async und await richtig in JS-Schleifen

Inhaltsverzeichnis Übersicht (Loop-Modus – Allgem...

Detaillierte Erklärung der wechselseitigen Verwendung von Ref in React

Inhaltsverzeichnis 1. Lassen Sie uns zunächst erk...

Erläuterung des Prinzips des MySQL-Replikationsmechanismus

Hintergrund Bei der Replikation handelt es sich u...

Eine vollständige Anleitung zur Konfiguration von Linux-Umgebungsvariablen

Konfiguration der Linux-Umgebungsvariablen Beim A...

Angular Dependency Injection erklärt

Inhaltsverzeichnis Überblick 1. Abhängigkeitsinje...

jQuery implementiert den Tabellen-Paging-Effekt

In diesem Artikel wird der spezifische Code von j...

Der praktische Prozess des Login-Status-Managements im vuex-Projekt

Inhaltsverzeichnis Werkzeug: Anmeldeszenario: übe...

Implementierungs- und Nutzungsszenarien der JS-Anti-Shake-Drosselungsfunktion

Inhaltsverzeichnis 1. Was ist die Anti-Shake-Funk...

Analyse gängiger Anwendungsbeispiele von MySQL-Prozessfunktionen

Dieser Artikel veranschaulicht anhand von Beispie...

Auszeichnungssprache - CSS-Layout

Klicken Sie hier, um zum Abschnitt „HTML-Tutorial“...

Implementierung der Multi-Port-Zuordnung des Nginx-Reverse-Proxys

Code Erklärung 1.1 http:www.baidu.test.com verwen...

Warum wird deine Like-Aussage nicht indexiert?

Vorwort Dieser Artikel zielt darauf ab, die langw...