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>[email protected]</E-Mail>
<Person>

protobuf definiert dies

Person{
 Name: „zhangsan“
 E-Mail: „[email protected]“
}

Dies ist in JSON definiert

{
 "Person":{
  "Name": "zhangsan",
  "E-Mail":"[email protected]"
 }
}

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

mysql5.7.18 dekomprimierte Version zum Starten des MySQL-Dienstes

Die dekomprimierte Version von mysql5.7.18 starte...

js zur Implementierung eines Web-Rechners

Wie erstelle ich mit HTML, CSS und JS einen einfa...

Zusammenfassung der MySQL-Entwicklungsstandards und -Nutzungskenntnisse

1. Namenskonventionen 1. Datenbanknamen, Tabellen...

So definieren Sie Eingabetyp=Dateistil

Warum die Dateisteuerung verschönern? Stellen Sie ...

Detaillierte Erklärung zur Verwendung der vue3 Teleport-Sofortbewegungsfunktion

Die Verwendung der vue3 Teleport-Sofortbewegungsf...

Designtheorie: Eine Methode, um die Herzen der Menschen zu verstehen

<br />Einmal unterhielten sich Foyin und Her...

Probleme und Lösungen bei der Verwendung der jsx-Syntax in React-vscode

Problembeschreibung Nach der Installation des Plu...

So führen Sie einen Befehl zu einem bestimmten Zeitpunkt in Linux aus

Neulich habe ich rsync verwendet, um eine große D...

Fallerklärung für den Nginx-Reverse-Proxy zu Go-FastDFS

Hintergrund go-fastdfs ist ein verteiltes Dateisy...

Ausführliche Erläuterung versteckter Felder, einer neuen Funktion von MySQL 8.0

Vorwort MySQL Version 8.0.23 fügt eine neue Funkt...

Analysieren von AB-Leistungstestergebnissen unter Apache

Ich habe immer Loadrunner für Leistungstests verw...