gRPC

gRPC (gRPC Remote Procedure Call) - это ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ (RPC), Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Google. Он прСдоставляСт ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ взаимодСйствия ΠΌΠ΅ΠΆΠ΄Ρƒ клиСнтскими ΠΈ сСрвСрными прилоТСниями Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… ΠΈ Π² Ρ€Π°Π·Π½Ρ‹Ρ… языках программирования.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ характСристики gRPC:

  1. ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»: gRPC ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» HTTP/2 для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ ΠΈ сСрвСром. Π­Ρ‚ΠΎ соврСмСнный ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обСспСчиваСт Π±ΠΎΠ»Π΅Π΅ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡƒΡŽ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΡŽ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Π΄Π°Π½Π½Ρ‹Ρ….

  2. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°Π·Π½Ρ‹Ρ… языков: gRPC ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ мноТСство языков программирования, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ C++, Java, Python, Go, Ruby, C#, Node.js ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. Π­Ρ‚ΠΎ позволяСт Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ клиСнтскиС ΠΈ сСрвСрныС прилоТСния Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… ΠΈ языках, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ.

  3. ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ сообщСний: gRPC ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Π±ΡƒΡ„Π΅Ρ€Π° сообщСний Protocol Buffers (protobuf) для кодирования Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ ΠΈ сСрвСром. protobuf являСтся языконСзависимым ΠΈ эффСктивным ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ сСриализации Π΄Π°Π½Π½Ρ‹Ρ….

  4. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² взаимодСйствия: gRPC ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Ρ‚ΠΈΠΏΠ° взаимодСйствия: ΡƒΠ½Π°Ρ€Π½ΠΎΠ΅ (unary), сСрвСрный ΠΏΠΎΡ‚ΠΎΠΊ (server streaming), клиСнтский ΠΏΠΎΡ‚ΠΎΠΊ (client streaming) ΠΈ Π΄Π²ΡƒΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ (bidirectional streaming). Π­Ρ‚ΠΎ позволяСт Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ подходящий Ρ‚ΠΈΠΏ взаимодСйствия Π² зависимости ΠΎΡ‚ потрСбностСй прилоТСния.

  5. АвтоматичСскоС созданиС клиСнтского ΠΊΠΎΠ΄Π°: gRPC прСдоставляСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ автоматичСской Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ клиСнтского ΠΊΠΎΠ΄Π° Π½Π° основС описания сСрвиса с использованиСм IDL (Interface Definition Language), Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ protobuf. Π­Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ клиСнтских ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ обСспСчиваСт бСзопасноС взаимодСйствиС с ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌ сСрвСром.

Last updated