Membandingkan performa REST dan gRPC

Halo, Habr. Untuk calon siswa kursus "Arsitek Beban Tinggi" kami menyiapkan terjemahan materi.



Kami juga mengundang Anda untuk mendaftar webinar terbuka dengan topik "Replikasi sebagai Pola Penyimpanan Skala Keluar " dengan Vladislav Rodin (Pemimpin Tim dan Spesialis Pengembangan Perusahaan Java). Dalam pelajaran ini, peserta akan menjalani replikasi, salah satu teknik penskalaan database.






Saya memiliki beberapa layanan mikro yang berkomunikasi satu sama lain menggunakan JSON melalui REST, dan menurut saya mereka akan segera mencapai batas kinerja VPS, dan saya perlu memutakhirkannya agar tidak ada penurunan kinerja.





, 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 , .





Contoh Data Meteorit NASA
NASA

gRPC- Protocol Buffers .





Definisi Protocol Buffer untuk Pesan
Protocol Buffer

(stream) gRPC GetLargePayload



.





Protocol Buffer Definitions for Services
Protocol Buffer
  • RestAPI WebAPI, , : , .





Perutean ASP.NET MVC Core
ASP.NET MVC Core

, , .





Mengurangi tingkat logging untuk ASP.NET MVC Core WebAPI
ASP.NET MVC Core WebAPI
  • GrpcAPI gRPC-. , GetLargePayload



    , .





Implementasi layanan GrpcAPI
GrpcAPI
  • RESTvsGRPC , 100 200 , . , 100 200 .





Tolok ukur RESTvsGRPC
RESTvsGRPC

 

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





Hasil benchmark di Linux
Linux

Windows . Windows .





Hasil benchmark di Windows
Windows
REST vs kinerja GRPC
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