Vergleich der REST- und gRPC-Leistung

Hallo Habr. Für zukünftige Studenten des Kurses "Highload Architect" haben wir eine Übersetzung des Materials vorbereitet.



Wir laden Sie außerdem ein, sich mit Vladislav Rodin (Teamleiter und Java Enterprise Development Specialist) für ein offenes Webinar zum Thema "Replikation als Muster für die Skalierung des Speichers" anzumelden . In dieser Lektion werden die Teilnehmer durch die Replikation geführt, eine der Datenbankskalierungstechniken.






Ich habe mehrere Microservices, die über JSON über REST miteinander kommunizieren, und es scheint mir, dass sie bald das VPS-Leistungslimit erreichen werden, und ich muss es aktualisieren, damit es nicht zu Leistungseinbußen kommt.





, gRPC ( ) , , , gRPC.





gRPC?

, gRPC, gRPC — (RPC, remote procedure calls), Google, . , (, , ) - IDL (stub), . REST ASP.NET Core WebAPI.





JSON REST, gRPC Protocol Buffers — . gRPC REST. Protocol Buffers protoc, proto-. , gRPC HTTP/2, , HTTP- .





, :





  • -. , .





  • . . .





  • , . .





  • ModelLibrary REST gRPC-. , , , , . NASA , 1000 , .





Beispiel für NASA-Meteoritendaten
NASA

gRPC- Protocol Buffers .





Protokollpufferdefinitionen für Nachrichten
Protocol Buffer

(stream) gRPC GetLargePayload



.





Protokollpufferdefinitionen für Dienste
Protocol Buffer
  • RestAPI WebAPI, , : , .





ASP.NET MVC Core-Routing
ASP.NET MVC Core

, , .





Reduzieren der Protokollierungsstufe für ASP.NET MVC Core WebAPI
ASP.NET MVC Core WebAPI
  • GrpcAPI gRPC-. , GetLargePayload



    , .





Implementierung des GrpcAPI-Dienstes
GrpcAPI
  • RESTvsGRPC , 100 200 , . , 100 200 .





RESTvsGRPC-Benchmark
RESTvsGRPC

 

, gRPC , . REST. gRPC , . , HTTP/2, , HTTP.





Benchmark-Ergebnisse unter Linux
Linux

Windows . Windows .





Benchmark-Ergebnisse in Windows
Windows
REST vs GRPC Leistung
REST vs GRPC

, EmperorRXF/RESTvsGRPC





, .





RestAPI: dotnet run -p RestAPI -c Release







GrpcAPI: dotnet run -p GrpcAPI -c Release







.





: dotnet run -p RESTvsGRPC -c Release







gRPC REST . Protocol Buffers HTTP/2 gRPC.





gRPC 45 10 WebAPI. , REST , ( , ASP.NET Core MVC) ( ). gRPC, , , , protoc, Visual Studio . , , ItemGroup "Protobuf" csproj-. , gRPC ASP.NET Core 3.0.





, gRPC. 






"Highload Architect".





« »








All Articles