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

Windows-Plattformkonfiguration Version 5.7 + MySQL-Datenbankdienst

Beinhaltet den Prozess der Initialisierung des Ro...

Natives JS implementiert benutzerdefinierte Bildlaufleistenkomponente

In diesem Artikelbeispiel wird der spezifische JS...

Die perfekte Lösung für Vue-Routing-Fallback (vue-route-manager)

Inhaltsverzeichnis Routenplaner Hintergrund Erste...

Lösen Sie das domänenübergreifende Problem von Vue + SpringBoot + Shiro

Inhaltsverzeichnis 1. Konfigurieren Sie das Vue-F...

Die Tücken der automatischen Inkrementierung numerischer MySQL-Typen

Beim Entwurf von Tabellenstrukturen gehören numer...

Element verwendet Skripte, um automatisch neue Komponenten zu erstellen

Inhaltsverzeichnis Hintergrund Wie funktioniert d...

Tutorial zur mobilen Entwicklung: Zusammenfassung der Pixelanzeigeprobleme

Vorwort Ich bin davon überzeugt, dass bei der Ent...

So zeigen Sie JSON-Daten auf einer HTML-Seite an und formatieren sie

JSON-Daten werden auf der HTML-Seite angezeigt un...

Eine kurze Diskussion zum Verständnis von TypeScript-Indexsignaturen

Inhaltsverzeichnis 1. Was ist eine Indexsignatur?...

Eine Sammlung möglicher Probleme bei der Migration von SQLite3 nach MySQL

Kurzbeschreibung Passend für Leser: Mobile Entwic...