Zusammenfassung von FPNN in einem Satz:
Niemand möchte das Rad neu erfinden.
Aber was tun, wenn nicht alle Räder funktionieren?
Angesichts der Tatsache, dass frühere Projekte, die Thrift nutzten, auf zu viele Fallstricke stießen, wurden viele Ressourcen für die Lösung der Probleme von Thrift selbst aufgewendet.
Basierend auf der Vorbereitung und technischen Anhäufung der Infrastrukturtools des Unternehmens sowie früheren Erfahrungen mit der Verwendung bekannter RPC-Frameworks wie ICE, ACE und Codra haben wir uns entschieden, ein RPC-Framework zu entwickeln, das besser zum Geschäft und zur Infrastruktur des Unternehmens passt .
Es gibt kein bestes Rad, nur das am besten geeignete.
Das Gleiche gilt für RPC-Frameworks.
Unterstützt IPv4
Unterstützt IPv6
Unterstützt das binäre private TCP-Protokoll
Unterstützt das binäre private UDP-Protokoll
Unterstützt zuverlässige UDP-Links
Unterstützt zuverlässiges/unzuverlässiges gemischtes Senden von UDP-Daten
Unterstützt HTTP 1.1 (optionale Unterstützung)
Unterstützt WebSocket
Unterstützt SSL/TLS
Unterstützt die msgpack-Codierung
Unterstützt das Json-Format
Unterstützt optionale Parameter
Unterstützt unbestimmte Typparameter
Unterstützt Parameter mit variabler Länge und variablem Typ
Unterstützt die Graustufenkompatibilität der Schnittstelle
Unterstützt das TCP-Binär-Privatprotokoll und die HTTP-Json-Formatkonvertierung
Unterstützt Server-Push
Unterstützen Sie asynchrone Vorgänge
Unterstützt den synchronen Betrieb
Unterstützt die Lambda-Funktion
Unterstützt die dynamische Anpassung von Parametern auf Systemebene
Unterstützt die dynamische Anpassung von Parametern auf Framework-Ebene
Unterstützt die Echtzeitanzeige des Service-Laufstatus
Unterstützt die Echtzeitanzeige jedes Parameterstatus
Unterstützt Failover
Unterstützt eine einheitliche Protokollzusammenfassung
Unterstützen Sie einen ordnungsgemäßen Ausstieg
Unterstützen Sie die einheitliche Behandlung von Ausnahmen
Unterstützt mehrere Protokolle (TCP/HTTP/WebSocket) am selben Port
Unterstützen Sie eine frühzeitige Rückmeldung
Unterstützt die asynchrone Rückgabe von Antworten
Statistiken zur Antwortzeit von Supportanfragen
Unterstützt QPS-Statistiken
Unterstützt langsame Anforderungsstatistiken
Unterstützt die vorrangige Ausführung systemintegrierter Befehle
Unterstützt AES-Verschlüsselung
Unterstützt den ECDH-Schlüsselaustausch
Unterstützt 128-Bit- oder 256-Bit-Schlüssel
Unterstützt IP-Whitelist
Unterstützt IP-Segment-Whitelist
Unterstützen Sie Verschlüsselungsbeschränkungen beim Zugriff auf benutzerdefinierte Schnittstellen
Unterstützen Sie Intranet-Einschränkungen beim Zugriff auf benutzerdefinierte Schnittstellen
Im FPNN-Technologie-Ökosystem werden die folgenden zusätzlichen Funktionen bereitgestellt
Stresstest (v1.0.0):
Zusammenfassung der TCP-Daten
Gleiches LAN
Modell | virtuelle CPU | Speicher (GB) | Anzahl der Links | QPS | Durchschnittliche Antwortzeit (usec) |
---|---|---|---|---|---|
AWS m5.xlarge | 4 | 16 | 1000 | 49.708 | 335 |
--- | --- | --- | --- | --- | --- |
AWS m5.xlarge | 4 | 16 | 130 | 227.919 | 12.854 |
AWS m5.xlarge | 4 | 16 | 1.500 | 148.959 | 10.403 |
AWS m5.xlarge | 4 | 16 | 2.000 | 99.552 | 356 |
AWS m5.xlarge | 4 | 16 | 3.000 | 149.615 | 27.456 |
Interkontinentale Übertragung: Frankfurt, Deutschland nach Oregon, Westen der USA
Modell | virtuelle CPU | Speicher (GB) | Anzahl der Links | QPS | Durchschnittliche Antwortzeit (usec) | Ping/2 (ms) |
---|---|---|---|---|---|---|
AWS m5.xlarge | 4 | 16 | 10 | 17.921 | 147.825 | 137 |
--- | --- | --- | --- | --- | ---- | --- |
AWS m5.xlarge | 4 | 16 | 190 | 338.601 | 151.772 | 139 |
AWS m5.xlarge | 4 | 16 | 700 | 339.240 | 183.541 | 136 ~ 137 |
AWS m5.xlarge | 4 | 16 | 3.200 | 312.073 | 256.980 | 139 ~ 141 |
AWS m5.xlarge | 4 | 16 | 6.000 | 299.175 | 346.927 | 136 ~ 137 |
Zusammenfassung der UDP-Daten
Gleiches LAN
Modell | virtuelle CPU | Speicher (GB) | Anzahl der Links | QPS | Durchschnittliche Antwortzeit (usec) |
---|---|---|---|---|---|
AWS m5.xlarge | 4 | 16 | 10 | 17.628 | 199 |
--- | --- | --- | --- | --- | --- |
AWS m5.xlarge | 4 | 16 | 70 | 123.009 | 1.174 |
AWS m5.xlarge | 4 | 16 | 80 | 122.641 | 24.623 |
AWS m5.xlarge | 4 | 16 | 800 | 73.030 | 1.306 |
AWS m5.xlarge | 4 | 16 | 200 | 95.894 | 400 |
AWS m5.xlarge | 4 | 16 | 1.000 | 49.590 | 3.832 |
Interkontinentale Übertragung: Frankfurt, Deutschland nach Oregon, Westen der USA
Modell | virtuelle CPU | Speicher (GB) | Anzahl der Links | QPS | Durchschnittliche Antwortzeit (usec) | Ping/2 (ms) |
---|---|---|---|---|---|---|
AWS m5.xlarge | 4 | 16 | 100 | 48.493 | 138.859 | 138 |
--- | --- | --- | --- | --- | ---- | --- |
AWS m5.xlarge | 4 | 16 | 60 | 107.528 | 139.968 | 140 |
AWS m5.xlarge | 4 | 16 | 800 | 79.503 | 139.974 | 138 ~ 139 |
Massive Links (v1.0.0):
Zusammenfassung der TCP-Daten
Modell | virtuelle CPU | Speicher (GB) | Anzahl der Links | QPS | Durchschnittliche Antwortzeit (usec) |
---|---|---|---|---|---|
AWS m5.2xlarge | 8 | 32 | 2.040.000 | 81.351 | 446 |
AWS m5.2xlarge | 8 | 32 | 2.040.000 | 137.294 | 4.985 |
AWS m5.2xlarge | 8 | 32 | 2.040.000 | 179.794 | 11.345 |
Zusammenfassung der UDP-Daten
Modell | virtuelle CPU | Speicher (GB) | Anzahl der Links | QPS | Durchschnittliche Antwortzeit (usec) |
---|---|---|---|---|---|
AWS m5.2xlarge | 8 | 32 | 12.200 | 5.957 | 11.480 |
AWS m5.2xlarge | 8 | 32 | 19.000 | 721 | 1.857 |
Eine spezifische Einführung in die Leistung und weitere Daten finden Sie im FPNN-Leistungsbericht
Umweltbedürfnisse
Betriebssystem | Compiler |
---|---|
CentOS 7 | GCC/G++ 4.8.5 |
CentOS 8 | GCC/G++ 8 |
Ubuntu 20 | GCC/G++ 9 |
MacOS 11.5 | XCode/Apple Clang 12 |
Abhängigkeiten von Bibliotheken Dritter
Kompilieren und installieren Sie das FPNN-Framework
Führen Sie einfach make
im Projektstammverzeichnis aus.
Einzelheiten finden Sie unter FPNN-Installation und -Integration
Entwickelt mit dem FPNN-Framework
Sehen
Hinweise und Fehlerbehebung
Vorsichtsmaßnahmen finden Sie in den FPNN-Hinweisen.
Informationen zur Fehlerbehebung finden Sie unter FPNN-Fehlerbehebung
Best Practices
Chinesischer Dokumentenindex