ā§§ā§Ļ āύāϭ⧇, ⧍ā§Ļā§¨ā§¨Âˇ5 āĻŽāĻŋāύāĻŋāϟ āĻĒāĻĄāĻŧāϤ⧇

gRPC āĻ•āĻŋ?

gRPC āĻšāϞ API āĻĄāĻŋāϜāĻžāχāύ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāϚāϞāĻŋāϤ RPC āĻĒāĻĻā§āϧāϤāĻŋāϰ āφāĻĒāĻĄā§‡āϟ āĻ•āϰāĻž āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖāĨ¤ gRPC āĻāĻŦāĻ‚ āĻāϰ āϏ⧁āĻŦāĻŋāϧāĻž-āĻ…āϏ⧁āĻŦāĻŋāϧāĻž āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϏāĻŦāĻ•āĻŋāϛ⧁ āϜāĻžāύāϤ⧇ āĻĒāĻĄāĻŧ⧁āύ!

gRPC āĻ•āĻŋ?

āĻŦ⧇āĻļāĻŋāϰāĻ­āĻžāĻ— āϏāĻĢā§āϟāĻ“āϝāĻŧā§āϝāĻžāϰ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύāϗ⧁āϞāĻŋāϕ⧇ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻ•āĻžāϰāϪ⧇ āĻ…āĻ¨ā§āϝ āϕ⧋āĻĄā§‡āϰ āϏāĻžāĻĨ⧇ āϏāĻ‚āϝ⧋āĻ— āĻ•āϰāϤ⧇ āϏāĻ•ā§āώāĻŽ āĻšāϤ⧇ āĻšāĻŦ⧇āĨ¤ āĻāϟāĻŋ āχāĻ¨ā§āϟāĻŋāĻ—ā§āϰ⧇āĻļāύ āĻĨ⧇āϕ⧇ āĻļ⧁āϰ⧁ āĻ•āϰ⧇ āύāϤ⧁āύ āĻ•āĻžāĻ°ā§āϝāĻ•āĻžāϰāĻŋāϤāĻž āϝ⧋āĻ— āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āϝ⧇āϕ⧋āύ⧋ āĻ•āĻŋāϛ⧁ āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āϏāĻĢā§āϟāĻ“āϝāĻŧā§āϝāĻžāϰ āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ⧇āϰ āϏāĻžāĻĨ⧇ āϞāĻŋāĻ™ā§āĻ• āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āϤāĻž āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰāϤ⧇ āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽā§‡ āϤāĻžāĻĻ⧇āϰ āĻāϕ⧀āĻ•āϰāĻŖ āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰāϤ⧇, āĻŦāĻŋāĻ•āĻžāĻļāĻ•āĻžāϰ⧀āϰāĻž API s āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤ āĻāχ āĻ•āĻžāϰāϪ⧇āχ āĻŦ⧇āĻļāĻŋāϰāĻ­āĻžāĻ— āϏāĻĢā§āϟāĻ“āϝāĻŧā§āϝāĻžāϰ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāĻŋāĻ‚ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧāĨ¤ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āϜ⧁āĻĄāĻŧ⧇ āĻāĻ•āϟāĻŋ āϏ⧇āϤ⧁ āĻšāĻŋāϏāĻžāĻŦ⧇ āϤāĻžāĻĻ⧇āϰ āĻ­ā§‚āĻŽāĻŋāĻ•āĻžāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡, APIāϗ⧁āϞāĻŋ āĻŦā§āϝāĻ•ā§āϤāĻŋāĻĻ⧇āϰ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻ“āϝāĻŧ⧇āĻŦ āĻĒāϰāĻŋāώ⧇āĻŦāĻž āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻ•āϰāϤ⧇ āϏāĻ•ā§āώāĻŽ āĻ•āϰ⧇āĨ¤ āĻ…āϤāĻāĻŦ, āφāĻĒāύāĻžāϰ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇ āĻāĻ•āϟāĻŋ API āĻ…āĻĢāĻžāϰ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āωāĻĒāϝ⧁āĻ•ā§āϤ āĻĒā§āϰāϝ⧁āĻ•ā§āϤāĻŋ āĻŦāĻžāĻ›āĻžāχ āĻ•āϰāĻž āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖāĨ¤

āϝ⧇ āϕ⧋āύāĻ“ āϏāĻ‚āĻ¸ā§āĻĨāĻž āϝ⧇ āϤāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āĻĻ⧇āϰ āϏāĻžāĻĨ⧇ āϤāĻžāϰ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻŦāĻž āĻĒā§āĻ˛ā§āϝāĻžāϟāĻĢāĻ°ā§āĻŽ āĻļ⧇āϝāĻŧāĻžāϰ āĻ•āϰāϤ⧇ āϚāĻžāϝāĻŧ āϤāĻžāĻĻ⧇āϰ API āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ āĻāĻĒāĻŋāφāχāϗ⧁āϞāĻŋāϕ⧇ āφāĻĒāύāĻžāϰ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ⧇āϰ āϜāĻ¨ā§āϝ āύāĻŋāϖ⧁āρāϤ āωāĻĒāϝ⧁āĻ•ā§āϤ āĻ•āϰ⧇ āϤ⧋āϞāĻžāϰ āϜāĻ¨ā§āϝ āĻ…āύ⧇āĻ•āϗ⧁āϞāĻŋ āωāĻĒāĻžāϝāĻŧ āϰāϝāĻŧ⧇āϛ⧇āĨ¤ āĻāĻĒāĻŋāφāχ āĻĄāĻŋāϜāĻžāχāύ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāĻžāϰāϰāĻž āϝ⧇ āϏāĻ°ā§āĻŦāĻļ⧇āώ āĻĒāĻĻā§āϧāϤāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϛ⧇ āϤāĻžāϰ āĻŽāĻ§ā§āϝ⧇ āĻāĻ•āϟāĻŋ āĻšāϞ gRPC āĨ¤ āφāϏ⧁āύ gRPC āϕ⧀ āĻāĻŦāĻ‚ āĻāϰ āϏ⧁āĻŦāĻŋāϧāĻž āĻāĻŦāĻ‚ āĻ…āϏ⧁āĻŦāĻŋāϧāĻžāϗ⧁āϞāĻŋ āĻĻ⧇āĻ–āĻŋāĨ¤

gRPC āĻ•āĻŋ?

gRPC āĻāϰ āĻ…āĻ°ā§āĻĨ āĻšāϞ Google Remote Procedure Call āĨ¤ gRPC āĻšāϞ āĻāĻ•āϟāĻŋ āĻ“āĻĒ⧇āύ āϏ⧋āĻ°ā§āϏ RPC āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āϝāĻž āĻ¸ā§āϕ⧇āϞāϝ⧋āĻ—ā§āϝ āĻāĻŦāĻ‚ āĻĻā§āϰ⧁āϤ API āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšāϝāĻŧāĨ¤ āĻāϟāĻŋ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āϰ āĻŦāĻŋāĻ•āĻžāĻļ āĻāĻŦāĻ‚ gRPC āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻāĻŦāĻ‚ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύāϗ⧁āϞāĻŋāϰ āĻŽāĻ§ā§āϝ⧇ āĻ–ā§‹āϞāĻž āϝ⧋āĻ—āĻžāϝ⧋āĻ— āϏāĻ•ā§āώāĻŽ āĻ•āϰ⧇āĨ¤ Google, IBM, Netflix āĻāĻŦāĻ‚ āφāϰāĻ“ āĻ…āύ⧇āĻ• āĻ•āĻŋāϛ⧁ āϏāĻš āĻŦ⧇āĻļ āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āĻļā§€āĻ°ā§āώ āĻĒā§āϰāϝ⧁āĻ•ā§āϤāĻŋ āϕ⧋āĻŽā§āĻĒāĻžāύāĻŋ gRPC āĻ—ā§āϰāĻšāĻŖ āĻ•āϰ⧇āϛ⧇āĨ¤ gRPC āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āϏāĻ°ā§āĻŦā§‹āĻ¤ā§āϤāĻŽ API āϏ⧁āϰāĻ•ā§āώāĻž, āωāĻšā§āϚ-āĻĒāĻžāϰāĻĢāϰāĻŽā§āϝāĻžāĻ¨ā§āϏ āϰāĻŋāĻŽā§‹āϟ āĻĒāĻĻā§āϧāϤāĻŋ āĻ•āϞ āĻāĻŦāĻ‚ āĻ¸ā§āϕ⧇āϞ⧇āĻŦāĻŋāϞāĻŋāϟāĻŋāϰ āϜāĻ¨ā§āϝ HTTP/2, āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ āĻŦāĻžāĻĢāĻžāϰ āĻāĻŦāĻ‚ āφāϰāĻ“ āĻ…āύ⧇āĻ• āĻ•āĻŋāϛ⧁āϰ āĻŽāϤ⧋ āĻ…āĻ¤ā§āϝāĻžāϧ⧁āύāĻŋāĻ• āĻĒā§āϰāϝ⧁āĻ•ā§āϤāĻŋāϰ āĻ¸ā§āĻŸā§āϝāĻžāϕ⧇āϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇āĨ¤

RPC āϗ⧁āϞāĻŋ āĻ•āĻŋ?

RPC āĻāĻŦāĻ‚ REST - Representational State Transfer - āϐāϤāĻŋāĻšāĻžāϏāĻŋāĻ•āĻ­āĻžāĻŦ⧇ API āϤ⧈āϰāĻŋāϰ āĻĻ⧁āϟāĻŋ āĻĒ⧃āĻĨāĻ• āĻĒāĻĻā§āϧāϤāĻŋāĨ¤ āωāĻĒāϰāĻ¨ā§āϤ⧁, SOAP āĻāĻŦāĻ‚ GraphQL āĻāϰ āĻŽāϤ⧋ āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞāϗ⧁āϞāĻŋāĻ“ āĻāχ āωāĻĻā§āĻĻ⧇āĻļā§āϝ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ āĻĻā§‚āϰāĻŦāĻ°ā§āϤ⧀ āĻĒāĻĻā§āϧāϤāĻŋ āĻ•āϞāϗ⧁āϞāĻŋ āφāĻĒāύāĻžāϕ⧇ āϏāĻĢā§āϟāĻ“āϝāĻŧā§āϝāĻžāϰ āϞāĻŋāĻ–āϤ⧇ āĻĻ⧇āϝāĻŧ āϝ⧇āύ āĻāϟāĻŋ āĻ¸ā§āĻĨāĻžāύ⧀āϝāĻŧāĻ­āĻžāĻŦ⧇ āϚāϞāĻŦ⧇, āϝāĻĻāĻŋāĻ“ āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āĻ­āĻŋāĻ¨ā§āύ āĻĄāĻŋāĻ­āĻžāχāϏ⧇ āϚāϞāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

āĻāϗ⧁āϞāĻŋ API āĻĄāĻŋāϜāĻžāχāύ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āĻĒā§āϰāϚāϞāĻŋāϤāĻ­āĻžāĻŦ⧇ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āĨ¤ āĻāĻ•āϟāĻŋ āϏāĻžāϧāĻžāϰāĻŖ HTTP āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ āĻ•āϞ⧇āϰ āĻŦāĻŋāĻĒāϰ⧀āϤ⧇, āĻāĻ•āϟāĻŋ RPC āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ-āϏāĻžāĻ°ā§āĻ­āĻžāϰ āχāĻ¨ā§āϟāĻžāϰāĻ…ā§āϝāĻžāĻ•āĻļāύ⧇āϰ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ• āĻĒāĻĻā§āϧāϤāĻŋ āĻšāĻŋāϏāĻžāĻŦ⧇ āĻāĻ•āϟāĻŋ āĻĢāĻžāĻ‚āĻļāύ āĻ•āϞ āύāĻŋāϝāĻŧā§‹āĻ— āĻ•āϰ⧇āĨ¤ RPC āĻšāϞ āĻāĻĒāĻŋāφāχ āϤ⧈āϰāĻŋ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻ‰ā§ŽāĻĒāĻžāĻĻāύāĻļā§€āϞ āĻ•ā§ŒāĻļāϞ āϝ⧇āĻšā§‡āϤ⧁ āĻāĻ•ā§āϏāĻšā§‡āĻžā§āϜāϗ⧁āϞāĻŋ āϏāĻšāϜ, āĻāĻŦāĻ‚ āĻŦāĻŋāώāϝāĻŧāĻŦāĻ¸ā§āϤ⧁āϗ⧁āϞāĻŋ āĻšāĻžāϞāĻ•āĻžāĨ¤ gRPC āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϗ⧁āϞāĻŋāĻ“ āĻāχ āϝ⧋āĻ—āĻžāϝ⧋āĻ— āĻ¸ā§āĻĨāĻžāĻĒāĻ¤ā§āϝ⧇āϰ āĻ…āύ⧁āĻ•āϰāĻŖ āĻ•āϰ⧇āĨ¤ RPCIDL - Interface Definition Language āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻĄā§‡āϟāĻž āϟāĻžāχāĻĒ āĻāĻŦāĻ‚ āϝ⧇ āĻĒāĻĻā§āϧāϤāĻŋāϗ⧁āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšāĻŦ⧇ āϤāĻž āϚ⧁āĻ•ā§āϤāĻŋāϤ⧇āĨ¤ RPCs āĻĨ⧇āϕ⧇ āĻ—ā§ƒāĻšā§€āϤ gRPC āĻĒāϰāĻŋāώ⧇āĻŦāĻž āϏāĻžāĻŽā§āĻĒā§āϰāϤāĻŋāĻ• āĻŦāĻ›āϰāϗ⧁āϞāĻŋāϤ⧇ āϖ⧁āĻŦ āϜāύāĻĒā§āϰāĻŋāϝāĻŧ āĻšāϝāĻŧ⧇ āωāϠ⧇āϛ⧇āĨ¤

āϕ⧇āύ gRPC āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϗ⧁āϞāĻŋ āωāĻ¨ā§āύāϤ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ?

āϝ⧇āĻšā§‡āϤ⧁ āφāϰāĻ“ āĻāĻ¨ā§āϟāĻžāϰāĻĒā§āϰāĻžāχāϜāϗ⧁āϞāĻŋ āĻāϕ⧀āĻ•āϰāϪ⧇āϰ āϜāĻ¨ā§āϝ āĻšā§āϝāĻžāύ⧇āϞāϗ⧁āϞāĻŋ āϖ⧁āϞāϛ⧇, āĻāχ āϜāĻžāϤ⧀āϝāĻŧ āϏāĻĢā§āϟāĻ“āϝāĻŧā§āϝāĻžāϰ āϞāĻŋāĻ™ā§āĻ• āĻ•āϰāĻž āĻ•āĻ āĻŋāύ āĻšāϝāĻŧ⧇ āωāĻ āϛ⧇āĨ¤ RPC APIs āĻāĻ•āĻ¤ā§āϰāĻŋāϤ āĻ•āϰāĻž āĻšā§āϝāĻžāϞ⧇āĻžā§āϜāĻŋāĻ‚ āĻāĻŦāĻ‚ āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰāĻž āĻā§āρāĻ•āĻŋāĻĒā§‚āĻ°ā§āĻŖ āĻ•āĻžāϰāĻŖ āϤāĻžāϰāĻž āĻ…āĻ­ā§āϝāĻ¨ā§āϤāϰ⧀āĻŖ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟāϤāĻž āĻĒā§āϰāĻ•āĻžāĻļ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻāϗ⧁āϞāĻŋ āĻ…āύ⧇āĻ• āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāĻŋāĻ‚ āĻ­āĻžāώāĻžāϝāĻŧ āĻŦāĻŋāĻ•āĻļāĻŋāϤ āĻšāϝāĻŧ āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āϤāĻ°ā§āύāĻŋāĻšāĻŋāϤ āĻ•āĻžāĻ āĻžāĻŽā§‹āϰ āϏāĻžāĻĨ⧇ āϘāύāĻŋāĻˇā§āĻ āĻ­āĻžāĻŦ⧇ āφāĻŦāĻĻā§āϧāĨ¤

āĻāχ āϏāĻŽāĻ¸ā§āϝāĻžāϟāĻŋāϰ āϏāĻŽāĻžāϧāĻžāύ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ, āĻāĻŦāĻ‚ 2000 āϏāĻžāϞ⧇ āϝāĻ–āύ REST API āϚāĻžāϞ⧁ āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ āϤāĻ–āύ API āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏāĻŋāĻŦāĻŋāϞāĻŋāϟāĻŋ āĻŦāĻžāĻĄāĻŧāĻžāύ⧋ āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ⧎ āĻŦāĻŋāĻļ⧇āώāϤ, āĻāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āĻĻ⧇āϰ GET, PUT, POST, āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝāĻĻ⧇āϰ āĻŽāϤ⧋ āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ HTTP āĻ•ā§ŒāĻļāϞāϗ⧁āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϏāĻŽā§āĻĒāĻĻ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻĒāϰ⧋āĻ•ā§āώāĻ­āĻžāĻŦ⧇ āϤāĻĨā§āϝ āĻĒ⧁āύāϰ⧁āĻĻā§āϧāĻžāϰ āĻ•āϰāĻžāϰ āĻāĻ•āϟāĻŋ āϧāĻžāϰāĻžāĻŦāĻžāĻšāĻŋāĻ• āωāĻĒāĻžāϝāĻŧ āĻĻāĻŋāϝāĻŧ⧇āϛ⧇⧎ REST API āĻĨ⧇āϕ⧇ RPC āĻāϰ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ• āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ āĻšāϞ RPC āĻāϰ āϏāĻžāĻĨ⧇, āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāϗ⧁āϞāĻŋāϕ⧇ āϏāĻŽā§āĻŦā§‹āϧāύ āĻ•āϰāĻž āĻšāϝāĻŧ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāϗ⧁āϞāĻŋ āϕ⧀ āĻšāϤ⧇ āĻĒāĻžāϰ⧇ āϤāĻž āĻĒā§‚āĻ°ā§āĻŦāĻžāĻ­āĻžāϏ āĻĻ⧇āĻ“āϝāĻŧāĻž āϏāĻšāϜ āύāϝāĻŧāĨ¤

REST API āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖāϰ⧂āĻĒ⧇ āϏāĻšāϜāĻŦā§‹āĻ§ā§āϝ āĻāĻŦāĻ‚ āϞāĻžāχāϟāĻ“āϝāĻŧ⧇āϟ RPC āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĻŋ āĻ•āĻžāϰāĻŖ āĻāϟāĻŋ āĻĒā§āϰāϚ⧁āϰ āĻĒāϰāĻŋāĻŽāĻžāϪ⧇ āĻŽā§‡āϟāĻžāĻĄā§‡āϟāĻž āϤ⧈āϰāĻŋ āĻ•āϰ⧇, āϝāĻĻāĻŋāĻ“ āĻāϟāĻŋ āĻ…āύ⧇āĻ• āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ⧇āϰ āϏāĻžāĻĨ⧇ āĻ•āĻžāϜ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āωāĻ¨ā§āύāϤ āĻŦāĻŋāĻ¨ā§āϝāĻžāϏ āĻ…āĻĢāĻžāϰ āĻ•āϰ⧇āĨ¤ āĻāϰ āĻĢāϞ⧇ āĻĢ⧇āϏāĻŦ⧁āϕ⧇āϰ GraphQL āĻāĻŦāĻ‚ āϗ⧁āĻ—āϞ⧇āϰ gRPC āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϰ āφāĻŦāĻŋāĻ°ā§āĻ­āĻžāĻŦ āϘāĻŸā§‡āĨ¤

Google 2015 āϏāĻžāϞ⧇ gRPC āϤ⧈āϰāĻŋ āĻ•āϰ⧇āϛ⧇ RPC āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āϕ⧇āϰ āϏāĻ‚āϝ⧋āϜāύ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻ•ā§ŒāĻļāϞ⧇āϰ āϏāĻžāĻšāĻžāĻ¯ā§āϝ⧇ āϤ⧈āϰāĻŋ āĻ…āϏāĻ‚āĻ–ā§āϝ āĻŽāĻžāχāĻ•ā§āϰ⧋āϏāĻžāĻ°ā§āĻ­āĻŋāϏ⧇āϏ āφāĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āϚāĻžāϰāϕ⧇ āϏāĻ‚āϝ⧁āĻ•ā§āϤ āĻ•āϰāϤ⧇āĨ¤ gRPC āĻŽā§‚āϞāϤ āϗ⧁āĻ—āϞ⧇āϰ āĻŽā§‚āϞ āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹āϰ āϏāĻžāĻĨ⧇ āϘāύāĻŋāĻˇā§āĻ āĻ­āĻžāĻŦ⧇ āϏāĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāϤ āĻ›āĻŋāϞ āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻļ⧇āώ āĻĒāĻ°ā§āϝāĻ¨ā§āϤ āĻāϟāĻŋāϕ⧇ āĻ“āĻĒ⧇āύ āϏ⧋āĻ°ā§āϏ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ āĻāĻŦāĻ‚ āϏāĻžāϧāĻžāϰāĻŖ āϜāύāĻ—āϪ⧇āϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāĻŽāĻŋāϤ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞāĨ¤

gRPC āϧāĻžāϰāĻŖāĻžāϰ āĻ“āĻ­āĻžāϰāĻ­āĻŋāω

āĻ…āĻ¤ā§āϝāĻžāϧ⧁āύāĻŋāĻ• āĻĒā§āϰāϝ⧁āĻ•ā§āϤāĻŋāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ, āϝāĻž JSON āĻāĻŦāĻ‚ XML-āĻāϰ āϤ⧁āϞāύāĻžāϝāĻŧ āωāĻšā§āϚ āĻ•āĻžāĻ°ā§āϝāĻ•ā§āώāĻŽāϤāĻž āϏāĻŽā§āĻĒāĻ¨ā§āύ āĻāĻŦāĻ‚ āĻ…āϧāĻŋāĻ•āϤāϰ API āĻ…āĻ–āĻŖā§āĻĄāϤāĻž āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇, gRPC āĻāϰ āϏ⧃āĻˇā§āϟāĻŋ āĻāĻŦāĻ‚ āϜāύāĻĒā§āϰāĻŋāϝāĻŧāϤāĻžāϰ āϜāĻ¨ā§āϝ āĻĻāĻžāϝāĻŧ⧀⧎ āĻ•āĻŋāϛ⧁ gRPC āϧāĻžāϰāĻŖāĻž āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āφāĻĒāύāĻžāϰ āϏāĻšā§‡āϤāύ āĻšāĻ“āϝāĻŧāĻž āωāϚāĻŋāϤ:

āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ āĻŦāĻžāĻĢāĻžāϰ

āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ āĻŦāĻžāĻĢāĻžāϰ, āϝāĻž Protobuf āύāĻžāĻŽā§‡āĻ“ āĻĒāϰāĻŋāϚāĻŋāϤ, āĻšāϞ āϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞāĻžāχāĻœā§‡āĻļāύ āĻŦāĻž āĻĄāĻŋāϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞāĻžāχāĻœā§‡āĻļāύ āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āϝāĻž āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύāϗ⧁āϞāĻŋāϕ⧇ āϏāĻ‚āĻœā§āĻžāĻžāϝāĻŧāĻŋāϤ āĻ•āϰāĻž āĻāĻŦāĻ‚ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋāϰ āϕ⧋āĻĄ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āϏāĻšāϜ āĻ•āϰ⧇ āϤ⧋āϞ⧇āĨ¤ āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āϏāĻžāĻŽā§āĻĒā§āϰāϤāĻŋāĻ• āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ, proto3, āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϏāĻšāϜ āĻāĻŦāĻ‚ gRPC āĻāϰ āϜāĻ¨ā§āϝ āύāϤ⧁āύ āĻ•ā§āώāĻŽāϤāĻž āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤

.Proto āĻĢāĻžāχāϞāϗ⧁āϞāĻŋ gRPC āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻāĻŦāĻ‚ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻŦāĻžāĻ°ā§āϤāĻžāϗ⧁āϞāĻŋāϰ āĻŽāĻ§ā§āϝ⧇ gRPC āĻĒāϰāĻŋāώ⧇āĻŦāĻž āĻāĻŦāĻ‚ āϝ⧋āĻ—āĻžāϝ⧋āĻ— āϏāĻ•ā§āώāĻŽ āĻ•āϰ⧇⧎ Protobuf āĻ•āĻŽā§āĻĒāĻžāχāϞāĻžāϰ - protoc āĻĻā§āĻŦāĻžāϰāĻž āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāĻļāύ⧇āϰ āϏāĻŽāϝāĻŧ .proto āĻĢāĻžāχāϞāϟāĻŋ āĻŽā§‡āĻŽāϰāĻŋāϤ⧇ āϞ⧋āĻĄ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ āĻāχ āĻ•āĻŽā§āĻĒāĻžāχāϞāĻžāϰāϟāĻŋ gRPC āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻāĻŦāĻ‚ gRPC āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āϤ⧈āϰāĻŋ āĻ•āϰ⧇ āϝāĻž āĻŦāĻžāχāύāĻžāϰāĻŋ āĻĄā§‡āϟāĻž āϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞāĻžāχāϜ āĻāĻŦāĻ‚ āĻĄāĻŋāϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞāĻžāχāϜ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āχāύ-āĻŽā§‡āĻŽāϰāĻŋ āĻ•āĻžāĻ āĻžāĻŽā§‹ āύāĻŋāϝāĻŧā§‹āĻ— āĻ•āϰ⧇āĨ¤ āĻĒā§āϰāϤāĻŋāϟāĻŋ āϝ⧋āĻ—āĻžāϝ⧋āĻ— gRPC -āϤ⧇ āϕ⧋āĻĄ āϤ⧈āϰāĻŋāϰ āĻĒāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āĻāĻŦāĻ‚ āĻĻā§‚āϰāĻŦāĻ°ā§āϤ⧀ āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϰ āĻŽāĻ§ā§āϝ⧇ āĻĒāĻžāĻ āĻžāύ⧋ āĻāĻŦāĻ‚ āĻ—ā§āϰāĻšāĻŖ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤

āϝ⧇āĻšā§‡āϤ⧁ āĻĄā§‡āϟāĻž āĻāĻ•āϟāĻŋ āĻŦāĻžāχāύāĻžāϰāĻŋ āφāĻ•āĻžāϰ⧇ āĻ…āύ⧁āĻŦāĻžāĻĻ āĻ•āϰāĻž āĻšāϝāĻŧ āĻāĻŦāĻ‚ āĻāύāĻ•ā§āϰāĻŋāĻĒā§āϟ āĻ•āϰāĻž āϏāĻ‚āϕ⧇āϤāϗ⧁āϞāĻŋ āϛ⧋āϟ āĻšāϝāĻŧ, āϤāĻžāχ Protobuf āĻāϰ āϏāĻžāĻĨ⧇ āĻĒāĻžāĻ°ā§āϏāĻŋāĻ‚ gRPC āϜāĻ¨ā§āϝ āĻ•āĻŽ CPU āĻļāĻ•ā§āϤāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤ āϤāĻžāχ, āĻāĻŽāύāĻ•āĻŋ āĻāĻ•āϟāĻŋ āĻĻ⧁āĻ°ā§āĻŦāϞ CPU āϏāĻš āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻžāϰ⧇, āϝ⧇āĻŽāύ āϏ⧇āϞ āĻĢā§‹āύ, āĻŦāĻžāĻ°ā§āϤāĻžāϗ⧁āϞāĻŋ gRPC āĻāϰ āϏāĻžāĻĨ⧇ āφāϰāĻ“ āĻĻā§āϰ⧁āϤ āĻĒāĻžāĻ āĻžāύ⧋ āĻšāϝāĻŧāĨ¤

HTTP/2

gRPC āĻĒāϰāĻŋāώ⧇āĻŦāĻž HTTP/2-āϤ⧇ āύāĻŋāĻ°ā§āĻŽāĻŋāϤ, HTTP/1.1-āĻāϰ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ āϝāĻžāϰ āĻ•āĻŽ āϏ⧀āĻŽāĻžāĻŦāĻĻā§āϧāϤāĻž āϰāϝāĻŧ⧇āϛ⧇āĨ¤ āϝāĻĻāĻŋāĻ“ āĻāϟāĻŋ āĻĒ⧁āϰāĻžāύ⧋ HTTP āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ⧇āϰ āϏāĻžāĻĨ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇, HTTP/2-āĻ gRPC āĻāϰ āϜāĻ¨ā§āϝ āĻŦ⧇āĻļ āĻ•āĻŋāϛ⧁ āĻĒāϰāĻŋāĻļā§€āϞāĻŋāϤ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ āϰāϝāĻŧ⧇āϛ⧇āĨ¤ āĻāϰ āĻŽāĻ§ā§āϝ⧇ āĻāĻ•āϟāĻŋ āĻŦāĻžāχāύāĻžāϰāĻŋ āĻĢā§āϰ⧇āĻŽāĻŋāĻ‚ āĻ¸ā§āϤāϰ āϰāϝāĻŧ⧇āϛ⧇, āϝāĻž āĻĒā§āϰāϤāĻŋāϟāĻŋ HTTP/2 āĻ•ā§āϝ⧋āϝāĻŧāĻžāϰ⧀āϕ⧇ āĻŦāĻŋāĻ­āĻ•ā§āϤ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āϛ⧋āϟ āĻŦāĻžāĻ°ā§āϤāĻžāϗ⧁āϞāĻŋāϤ⧇ āωāĻ¤ā§āϤāϰ āĻĻ⧇āϝāĻŧ āĻāĻŦāĻ‚ āĻŦāĻžāĻ°ā§āϤāĻž āĻŦāĻŋāϤāϰāĻŖāϕ⧇ āωāĻ¨ā§āύāϤ āĻ•āϰāϤ⧇ āĻŦāĻžāχāύāĻžāϰāĻŋ āĻĢāĻ°ā§āĻŽā§āϝāĻžāĻŸā§‡ āĻĢā§āϰ⧇āĻŽ āĻ•āϰ⧇āĨ¤ āωāĻĒāϰāĻ¨ā§āϤ⧁, gRPC āĻĻā§āĻŦāĻŋāĻŽā§āĻ–ā§€ āĻĢ⧁āϞ-āĻĄā§āĻĒā§āϞ⧇āĻ•ā§āϏ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽāĻŋāĻ‚-āĻ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻāĻŦāĻ‚ gRPC āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻĨ⧇āϕ⧇ āĻāĻ•āĻžāϧāĻŋāĻ• āĻ…āύ⧁āϰ⧋āϧ āĻāĻŦāĻ‚ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻž āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇āĨ¤

HTTP/2-āĻāϰ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻŦāĻžāĻš āύāĻŋāϝāĻŧāĻ¨ā§āĻ¤ā§āϰāĻŖ āĻĒāĻĻā§āϧāϤāĻŋ āϰāϝāĻŧ⧇āϛ⧇ āϝāĻž āχāύ-āĻĢā§āϞāĻžāχāϟ āĻĒā§āϝāĻžāϕ⧇āϟāϗ⧁āϞāĻŋāϕ⧇ āĻŦāĻžāĻĢāĻžāϰ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ RAM āĻāϰ āϏ⧁āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āύāĻŋāϝāĻŧāĻ¨ā§āĻ¤ā§āϰāϪ⧇āϰ āĻ…āύ⧁āĻŽāϤāĻŋ āĻĻ⧇āϝāĻŧāĨ¤ āĻāϟāĻŋ gRPC āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ āĻšā§‡āĻĄāĻžāϰ āĻ•āĻŽā§āĻĒā§āϰ⧇āĻļāύāĻ“ āĻ…āĻĢāĻžāϰ āĻ•āϰ⧇āĨ¤ āĻāχāϚāϟāĻŋāϟāĻŋāĻĒāĻŋ/2-āĻāϰ āϏāĻŦāĻ•āĻŋāϛ⧁āχ āĻŸā§āϰāĻžāĻ¨ā§āϏāĻŽāĻŋāĻļāύ⧇āϰ āφāϗ⧇ āĻāύāĻ•ā§āϰāĻŋāĻĒā§āϟ āĻ•āϰāĻž āĻšāϝāĻŧ, āĻāĻŽāύāĻ•āĻŋ āĻšā§‡āĻĄāĻžāϰ, āϝāĻž āωāĻšā§āϚ-āĻĒāĻžāϰāĻĢāϰāĻŽā§āϝāĻžāĻ¨ā§āϏ āϰāĻŋāĻŽā§‹āϟ āĻĒāĻĻā§āϧāϤāĻŋ āĻ•āϞ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤ gRPC HTTP/2 āĻāϰ āϏāĻžāĻĨ⧇ āĻ…ā§āϝāĻžāϏāĻŋāĻ™ā§āĻ•ā§āϰ⧋āύāĻžāϏ āĻāĻŦāĻ‚ āϏāĻŋāĻ™ā§āĻ•ā§āϰ⧋āύāĻžāϏ āĻĒā§āϰāϏ⧇āϏāĻŋāĻ‚ āωāĻ­āϝāĻŧāχ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇, āϝāĻž āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āχāĻ¨ā§āϟāĻžāϰ⧇āĻ•ā§āϟāĻŋāĻ­ āĻāĻŦāĻ‚ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āĻ•āϰāĻž RPC āĻĒā§āϰāĻ•āĻžāϰ⧇āϰ āϏāĻŽā§āĻĒāĻžāĻĻāύāϕ⧇ āϏāĻ•ā§āώāĻŽ āĻ•āϰ⧇āĨ¤

HTTP/2-āĻāϰ āĻāχ āϏāĻŽāĻ¸ā§āϤ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝāϗ⧁āϞāĻŋāϰ āϏāĻžāĻšāĻžāĻ¯ā§āϝ⧇, gRPC āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϗ⧁āϞāĻŋ āĻ•āĻŽ āϏāĻ‚āĻ¸ā§āĻĨāĻžāύāϗ⧁āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇, āϝāĻž āĻ•ā§āϞāĻžāωāĻĄ-āĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ• āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻāĻŦāĻ‚ gRPC āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϗ⧁āϞāĻŋāϰ āĻŽāĻ§ā§āϝ⧇ āĻĻā§āϰ⧁āϤ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻžāϰ āϏāĻŽāϝāĻŧ āĻāĻŦāĻ‚ āĻŽā§‹āĻŦāĻžāχāϞ āĻĄāĻŋāĻ­āĻžāχāϏ⧇ āĻ…āĻĒāĻžāϰ⧇āϟāĻŋāĻ‚ gRPC āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟāĻĻ⧇āϰ āϜāĻ¨ā§āϝ āφāϰāĻ“ āĻŦ⧇āĻļāĻŋ āĻŦā§āϝāĻžāϟāĻžāϰāĻŋ āϞāĻžāχāĻĢ⧇āϰ āĻĻāĻŋāϕ⧇ āĻĒāϰāĻŋāϚāĻžāϞāĻŋāϤ āĻ•āϰ⧇⧎

āĻ¸ā§āĻŸā§āϰāĻŋāĻŽāĻŋāĻ‚

āĻāĻ•āϟāĻŋ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āϧāĻžāϰāĻŖāĻž āϝāĻž gRPC āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇ āϤāĻž āĻšāϞ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽāĻŋāĻ‚, āϝāĻž āĻāĻ•āϟāĻŋ āĻāĻ•āĻ• āĻ…āύ⧁āϰ⧋āϧ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āĻŦ⧇āĻļ āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āϏāĻŽā§āĻĒāĻžāĻĻāύ⧇āϰ āĻ…āύ⧁āĻŽāϤāĻŋ āĻĻ⧇āϝāĻŧāĨ¤ gRPC āĻāϟāĻŋ HTTP/2 āĻāϰ āĻŽāĻžāĻ˛ā§āϟāĻŋāĻĒā§āϞ⧇āĻ•ā§āϏāĻŋāĻ‚ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āϏāĻŽā§āĻ­āĻŦāĻĒāϰ āĻ•āϰ⧇ āϤ⧋āϞ⧇, āϝāĻž āĻāĻ•āϟāĻŋ TCP - Transmission Control Protocol - āϏāĻ‚āϝ⧋āϗ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻāĻ•āĻžāϧāĻŋāĻ• āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻŦāĻž āĻ…āύ⧁āϰ⧋āϧ āĻĒāĻžāĻ āĻžāύ⧋ āĻŦāĻž āĻ—ā§āϰāĻšāĻŖ āĻ•āϰāĻžāϰ āĻ…āύ⧁āĻŽāϤāĻŋ āĻĻ⧇āϝāĻŧāĨ¤ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ• āĻ¸ā§āĻŸā§āϰāĻŋāĻŽāĻŋāĻ‚ āĻĢāĻ°ā§āĻŽā§āϝāĻžāϟāϗ⧁āϞāĻŋ āĻšāϞ āϏāĻžāĻ°ā§āĻ­āĻžāϰ-āĻ¸ā§āĻŸā§āϰāĻŋāĻŽāĻŋāĻ‚ RPC, āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ-āĻ¸ā§āĻŸā§āϰāĻŋāĻŽāĻŋāĻ‚ RPC, āĻāĻŦāĻ‚ āĻĻā§āĻŦāĻŋāĻŽā§āĻ–ā§€-āĻ¸ā§āĻŸā§āϰāĻŋāĻŽāĻŋāĻ‚ RPC āϗ⧁āϞāĻŋāĨ¤

āĻšā§āϝāĻžāύ⧇āϞ

HTTP/2 āĻ¸ā§āĻŸā§āϰ⧀āĻŽāϗ⧁āϞāĻŋāϰ āĻŦāĻŋāĻĒāϰ⧀āϤ⧇, āϝāĻž āĻāĻ•āϟāĻŋ āĻāĻ•āĻ• āĻ…āύ⧁āϰ⧋āϧ āϏāĻ‚āϝ⧋āϗ⧇ āĻ…āϏāĻ‚āĻ–ā§āϝ āϝ⧁āĻ—āĻĒāϤ āĻ¸ā§āĻŸā§āϰ⧀āĻŽāϕ⧇ āĻ…āύ⧁āĻŽāϤāĻŋ āĻĻ⧇āϝāĻŧ, gRPC āϏāĻš āĻāĻ•āϟāĻŋ āĻšā§āϝāĻžāύ⧇āϞ āĻāĻ•āĻžāϧāĻŋāĻ• āĻ…āύ⧁āϰ⧋āϧ āϜ⧁āĻĄāĻŧ⧇ āĻāĻ•āĻžāϧāĻŋāĻ• āĻ…āĻŦāĻŋāĻšā§āĻ›āĻŋāĻ¨ā§āύ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇āĨ¤ āϤāĻžāϰāĻž āĻāĻ•āϟāĻŋ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻ¸ā§āϟāĻžāĻŦ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āφāχāĻĒāĻŋ āĻāĻŦāĻ‚ āĻĒā§‹āĻ°ā§āĻŸā§‡ āĻāĻ•āϟāĻŋ gRPC āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āϏāĻžāĻĨ⧇ āϞāĻŋāĻ™ā§āĻ• āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻĻ⧇āĻ“āϝāĻŧāĻžāϰ āϜāĻ¨ā§āϝ āύāĻŋāϝ⧁āĻ•ā§āϤ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤

gRPC āφāĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āϚāĻžāϰ

gRPC āφāĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āϚāĻžāϰ⧇ āĻāĻ•āϟāĻŋ gRPC āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ gRPC āϏāĻžāĻ°ā§āĻ­āĻžāϰ āωāĻ­āϝāĻŧāχ āĻĨāĻžāϕ⧇āĨ¤ āĻĒā§āϰāϤāĻŋāϟāĻŋ gRPC āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϤ⧇ āĻāĻ•āϟāĻŋ āĻ¸ā§āϟāĻžāĻŦ āĻŦāĻž āĻāĻ•āϟāĻŋ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧ-āωāĻ¤ā§āĻĒāĻ¨ā§āύ āĻĢāĻžāχāϞ āϰāϝāĻŧ⧇āϛ⧇, āϝāĻž āĻāĻ•āϟāĻŋ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ⧇āϰ āĻŽāϤ⧋ āϝāĻž āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻĻā§‚āϰāĻŦāĻ°ā§āϤ⧀ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāϗ⧁āϞāĻŋ āϧāĻžāϰāĻŖ āĻ•āϰ⧇āĨ¤ gRPC āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻāĻ•āϟāĻŋ āĻ¸ā§āϟāĻžāĻŦ-āĻ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻĨāĻžāύ⧀āϝāĻŧ āĻĒāĻĻā§āϧāϤāĻŋāϰ āĻ•āϞ āĻļ⧁āϰ⧁ āĻ•āϰ⧇ āϝāĻžāϤ⧇ āφāĻ°ā§āϗ⧁āĻŽā§‡āĻ¨ā§āϟāϗ⧁āϞāĻŋ gRPC āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āĻŦāĻžāĻ°ā§āϤāĻžāϗ⧁āϞāĻŋāϤ⧇ āĻĢāϰāĻ“āϝāĻŧāĻžāĻ°ā§āĻĄ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ gRPC āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻ¸ā§āϟāĻžāĻŦ āϤāĻžāϰāĻĒāϰ Protobuf āĻŽāĻžāĻ°ā§āĻļāĻžāϞāĻŋāĻ‚ āĻĒāĻĻā§āϧāϤāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āφāĻ°ā§āϗ⧁āĻŽā§‡āĻ¨ā§āϟāϗ⧁āϞāĻŋāϕ⧇ āϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞ āĻ•āϰāĻžāϰ āĻĒāϰ⧇ āĻ¸ā§āĻĨāĻžāύ⧀āϝāĻŧ āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻžāϰ⧇ āĻ¸ā§āĻĨāĻžāύ⧀āϝāĻŧ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ-āϟāĻžāχāĻŽ āχāωāύāĻŋāĻŸā§‡ āϕ⧋āϝāĻŧ⧇āϰāĻŋ āĻĒāĻžāĻ āĻžāϝāĻŧāĨ¤

āĻĻā§‚āϰāĻŦāĻ°ā§āϤ⧀ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻžāϰ⧇āϰ āϏāĻžāĻĨ⧇ āϝ⧋āĻ—āĻžāϝ⧋āĻ— āĻ•āϰāϤ⧇ āĻ…āĻĒāĻžāϰ⧇āϟāĻŋāĻ‚ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ HTTP/2 āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ OS āĻŦāĻžāĻ°ā§āϤāĻžāϗ⧁āϞāĻŋ āĻ—ā§āϰāĻšāĻŖ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āĻ¸ā§āϟāĻžāĻŦ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāϟāĻŋ āĻļ⧁āϰ⧁ āĻ•āϰ⧇, āϝāĻž āχāύāĻ•āĻžāĻŽāĻŋāĻ‚ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰāϗ⧁āϞāĻŋ āĻĄāĻŋāϕ⧋āĻĄ āĻ•āϰāĻžāϰ āĻĒāϰ⧇ āωāĻĒāϝ⧁āĻ•ā§āϤ āĻ•ā§āϰāĻŋāϝāĻŧāĻžāĻ•āϞāĻžāĻĒ āĻļ⧁āϰ⧁ āĻ•āϰāϤ⧇ Protobuf āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻĒāϰāĻŋāĻŦāĻšāύ āĻ¸ā§āϤāϰ āϤāĻžāϰāĻĒāϰ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻ¸ā§āϟāĻžāĻŦ āĻĨ⧇āϕ⧇ āĻāύāĻ•ā§āϰāĻŋāĻĒā§āϟ āĻ•āϰāĻž āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻ—ā§āϰāĻšāĻŖ āĻ•āϰ⧇āĨ¤ gRPC āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻ¸ā§āϟāĻžāĻŦ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻŦāĻžāĻ°ā§āϤāĻžāϗ⧁āϞāĻŋ āĻ—ā§āϰāĻšāĻŖ āĻ•āϰāĻžāϰ āĻĒāϰ⧇ āĻāĻŦāĻ‚ āĻĒā§āϰāĻĻāĻ¤ā§āϤ āφāĻ°ā§āϗ⧁āĻŽā§‡āĻ¨ā§āϟāϗ⧁āϞāĻŋ āϖ⧁āϞ⧇ āĻĢ⧇āϞāĻžāϰ āĻĒāϰ⧇ āϏāĻŽā§āĻĒāĻžāĻĻāύāϟāĻŋ āĻ•āϞāĻžāϰ⧇āϰ āĻ•āĻžāϛ⧇ āĻĢāĻŋāϰ⧇ āϝāĻžāϝāĻŧāĨ¤

gRPC

āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ API āĻĄāĻŋāϜāĻžāχāύāĻŋāĻ‚ āĻŽā§‡āĻ•āĻžāύāĻŋāϜāĻŽā§‡āϰ gRPC āĻāϰ āĻŦ⧇āĻļ āĻ•āĻŋāϛ⧁ āϏ⧁āĻŦāĻŋāϧāĻž āϰāϝāĻŧ⧇āϛ⧇āĨ¤ gRPCRPC āĻ•āĻžāĻ āĻžāĻŽā§‹āϰ āωāĻĒāϰāĻ“ āωāĻ¨ā§āύāϤāĻŋ āĻ•āϰ⧇āĨ¤ āĻāĻ–āĻžāύ⧇ gRPC āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϗ⧁āϞāĻŋāϰ āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āĻŦāĻŋāĻļāĻŋāĻˇā§āϟ āϏ⧁āĻŦāĻŋāϧāĻžāϗ⧁āϞāĻŋ āϰāϝāĻŧ⧇āϛ⧇:

  • āωāĻšā§āϚ āĻ•āĻ°ā§āĻŽāĻ•ā§āώāĻŽāϤāĻž āĻĻā§‚āϰāĻŦāĻ°ā§āϤ⧀ āĻĒāĻĻā§āϧāϤāĻŋ āĻ•āϞ

Protobuf āĻāĻŦāĻ‚ HTTP/2 āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇, gRPC āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϗ⧁āϞāĻŋ REST+JSON āχāĻ¨ā§āϟāĻžāϰāĻ…ā§āϝāĻžāĻ•āĻļāύ⧇āϰ 10 āϗ⧁āĻŖ āĻĒāĻ°ā§āϝāĻ¨ā§āϤ āωāĻšā§āϚ āĻ•āĻžāĻ°ā§āϝāĻ•ā§āώāĻŽāϤāĻž āĻāĻŦāĻ‚ API āϏ⧁āϰāĻ•ā§āώāĻž āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻĒ⧁āĻļ, āĻŽāĻžāĻ˛ā§āϟāĻŋāĻĒā§āϞ⧇āĻ•ā§āϏāĻŋāĻ‚ āĻāĻŦāĻ‚ āĻšā§‡āĻĄāĻžāϰ āĻ•āĻŽā§āĻĒā§āϰ⧇āĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇, HTTP/2 gRPC āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ āωāĻšā§āϚ-āĻĒāĻžāϰāĻĢāϰāĻŽā§āϝāĻžāĻ¨ā§āϏ āĻ°â€Œā§āϝāĻžāĻ™ā§āĻ•āĻŋāĻ‚ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤ āϝāĻĻāĻŋāĻ“ āĻŽāĻžāĻ˛ā§āϟāĻŋāĻĒā§āϞ⧇āĻ•ā§āϏāĻŋāĻ‚ āĻšā§‡āĻĄ-āĻ…āĻĢ-āϞāĻžāχāύ āĻŦāĻŋāϞāĻŽā§āĻŦ āĻĻā§‚āϰ āĻ•āϰ⧇, āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻĒ⧁āĻļ HTTP/2-āĻāϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧇āϰ āφāϗ⧇ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻĨ⧇āϕ⧇ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āĻŸā§‡ āωāĻĒāĻžāĻĻāĻžāύ āĻĒ⧁āĻļ āĻ•āϰāĻž āϏāĻŽā§āĻ­āĻŦ āĻ•āϰ⧇ āϤ⧋āϞ⧇āĨ¤ āĻŦāĻžāĻ°ā§āϤāĻžāϗ⧁āϞāĻŋ HTTP/2 āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āφāϰāĻ“ āĻ•āĻžāĻ°ā§āϝāĻ•āϰāĻ­āĻžāĻŦ⧇ āϏāĻ‚āϕ⧁āϚāĻŋāϤ āĻšāϝāĻŧ, āϝāĻžāϰ āĻĢāϞ⧇ gRPC āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϗ⧁āϞāĻŋāϰ āϏāĻžāĻĨ⧇ āĻĻā§āϰ⧁āϤ āϞ⧋āĻĄ āĻšāϝāĻŧāĨ¤

  • āĻ¸ā§āĻŸā§āϰāĻŋāĻŽāĻŋāĻ‚

gRPC āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϗ⧁āϞāĻŋ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āĻ•āϰāĻžāϰ āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϰ āĻŦāĻŋāĻŦāϰāϪ⧇ āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇āχ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ- āĻŦāĻž āϏāĻžāĻ°ā§āĻ­āĻžāϰ-āĻāĻ¨ā§āĻĄ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽāĻŋāĻ‚ āύ⧀āϤāĻŋāϗ⧁āϞāĻŋ āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ āϰāϝāĻŧ⧇āϛ⧇āĨ¤ gRPC āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻāĻŦāĻ‚ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽāĻŋāĻ‚ āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϗ⧁āϞāĻŋ āωāĻ˛ā§āϞ⧇āĻ–āϝ⧋āĻ—ā§āϝāĻ­āĻžāĻŦ⧇ āϏāĻšāϜ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤

  • āϕ⧋āĻĄ āĻœā§‡āύāĻžāϰ⧇āĻļāύ

gRPC āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻāĻŦāĻ‚ gRPC āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ āϕ⧋āĻĄ āĻœā§‡āύāĻžāϰ⧇āĻļāύ āĻšāϞ gRPC āĻ“āϝāĻŧ⧇āĻŦ āĻĒāĻĻā§āϧāϤāĻŋāϰ āĻŽā§‚āϞ āωāĻĒāĻžāĻĻāĻžāύāĨ¤ .proto āĻĢāĻžāχāϞ āĻĨ⧇āϕ⧇ āϕ⧋āĻĄ āϤ⧈āϰāĻŋāϰ āϜāĻ¨ā§āϝ, gRPC āĻŽāĻĄāĻŋāωāϞ .protoc āĻ•āĻŽā§āĻĒāĻžāχāϞāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤ gRPCProtobuf āϤ⧇ āϕ⧋āĻĄ āĻœā§‡āύāĻžāϰ⧇āĻļāύ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āύāĻŋāϝāĻŧāĻ¨ā§āĻ¤ā§āϰāĻŋāϤ āĻšāϝāĻŧ, āϝāĻž āĻĄā§‡āϟāĻž āĻĢāϰāĻŽā§āϝāĻžāϟ āĻāĻŦāĻ‚ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻāĻ¨ā§āĻĄāĻĒāϝāĻŧ⧇āĻ¨ā§āϟ āωāĻ­āϝāĻŧāϕ⧇āχ āϏāĻ‚āĻœā§āĻžāĻžāϝāĻŧāĻŋāϤ āĻ•āϰāϤ⧇ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšāϝāĻŧāĨ¤ āĻāϟāĻŋ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ-āϏāĻžāχāĻĄ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āĻ¸ā§āϟāĻžāĻŦ āĻāĻŦāĻ‚ āϏāĻžāĻ°ā§āĻ­āĻžāϰ-āϏāĻžāχāĻĄ āĻ•āĻ™ā§āĻ•āĻžāϞ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇, āϝāĻž gRPC āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϗ⧁āϞāĻŋāϤ⧇ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϰ āϏāĻžāĻĨ⧇ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽ āĻĄāĻŋāϜāĻžāχāύ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āϏāĻŽāϝāĻŧ⧇āϰ āĻĒāϰāĻŋāĻŽāĻžāĻŖ āĻšā§āϰāĻžāϏ āĻ•āϰ⧇āĨ¤

  • āχāĻ¨ā§āϟāĻžāϰāĻ…āĻĒāĻžāϰ⧇āĻŦāĻŋāϞāĻŋāϟāĻŋ

āϜāĻžāĻ­āĻž, āϰ⧁āĻŦāĻŋ, Go, āϏāĻŋ# āĻāĻŦāĻ‚ āφāϰāĻ“ āĻ…āύ⧇āĻ•āϗ⧁āϞāĻŋ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻāĻŦāĻ‚ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāĻŋāĻ‚ āĻ­āĻžāώāĻžāϗ⧁āϞāĻŋ gRPC āϏāĻ‚āĻ¸ā§āĻĨāĻžāύ āĻāĻŦāĻ‚ āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋ āĻĻā§āĻŦāĻžāϰāĻž āϏāĻŽāĻ°ā§āĻĨāĻŋāϤāĨ¤ āĻāχ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāĻŋāĻ‚ āĻ­āĻžāώāĻžāϗ⧁āϞāĻŋāϰ āϏāĻžāĻšāĻžāĻ¯ā§āϝ⧇, āĻŦāĻŋāĻ•āĻžāĻļāĻ•āĻžāϰ⧀āϰāĻž gRPC āĻāϰ āϏāĻžāĻĨ⧇ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ•ā§āϰāϏ-āĻĒā§āĻ˛ā§āϝāĻžāϟāĻĢāĻ°ā§āĻŽ āϏāĻžāĻŽāĻžā§āϜāĻ¸ā§āϝāϤāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻĒāĻžāϰāĻĢāϰāĻŽā§āϝāĻžāĻ¨ā§āϟ āĻ…ā§āϝāĻžāĻĒ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻāϟāĻŋ Protobuf āĻŦāĻžāχāύāĻžāϰāĻŋ āĻ“āϝāĻŧā§āϝāĻžāϰāĻŋāĻ‚ āĻĢāĻ°ā§āĻŽ āĻāĻŦāĻ‚ āĻĒā§āϰāĻžāϝāĻŧ āϏāĻŽāĻ¸ā§āϤ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āϰ āϜāĻ¨ā§āϝ āĻ•āĻžāĻ°ā§āϝāĻ•āϰ āϕ⧋āĻĄ āĻœā§‡āύāĻžāϰ⧇āĻļāύ⧇āϰ āϜāĻ¨ā§āϝ āϧāĻ¨ā§āϝāĻŦāĻžāĻĻāĨ¤

  • āύāĻŋāϰāĻžāĻĒāĻ¤ā§āϤāĻž

āĻāĻ•āϟāĻŋ TLS āĻāĻ¨ā§āĻĄ-āϟ⧁-āĻāĻ¨ā§āĻĄ āĻāύāĻ•ā§āϰāĻŋāĻĒā§āϟ āĻ•āϰāĻž āϏ⧇āĻļāύ⧇ HTTP/2 āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ gRPC API āύāĻŋāϰāĻžāĻĒāĻ¤ā§āϤāĻž āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ gRPC āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻāĻŦāĻ‚ gRPC āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āĻŸā§‡āϰ āĻŽāĻ§ā§āϝ⧇ āĻĄā§‡āϟāĻž āĻāύāĻ•ā§āϰāĻŋāĻĒāĻļāύ āĻāĻŦāĻ‚ āĻĒā§āϰāĻŽāĻžāĻŖā§€āĻ•āϰāϪ⧇āϰ āϜāĻ¨ā§āϝ SSL/TLS āĻ—ā§āϰāĻšāϪ⧇āϰ āĻĒā§āϰāϚāĻžāϰ āĻ•āϰ⧇āĨ¤

  • āωāĻ¤ā§āĻĒāĻžāĻĻāύāĻļā§€āϞāϤāĻž āĻāĻŦāĻ‚ āĻŦā§āϝāĻŦāĻšāĻžāϰāϝ⧋āĻ—ā§āϝāϤāĻž

āϝ⧇āĻšā§‡āϤ⧁ gRPC āĻāĻ•āϟāĻŋ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ RPC āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ, āĻāϟāĻŋ āĻŦāĻŋāĻ¸ā§āϤ⧃āϤ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻāĻŦāĻ‚ āĻ­āĻžāώāĻžāϰ āωāĻĒāϰ āϕ⧋āύ⧋ āĻŦāĻžāϧāĻž āĻ›āĻžāĻĄāĻŧāĻžāχ āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤ gRPC āϤ⧇āĻ“ āĻĻ⧁āĻ°ā§āĻĻāĻžāĻ¨ā§āϤ āϟ⧁āϞāĻŋāĻ‚ āϰāϝāĻŧ⧇āϛ⧇, āĻĒā§āϰāϚ⧁āϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āĻŦāϝāĻŧāϞāĻžāϰāĻĒā§āϞ⧇āϟ āϕ⧋āĻĄ āĻŽā§āϝāĻžāύ⧁āϝāĻŧāĻžāϞāĻŋ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻšāĻšā§āϛ⧇āĨ¤ gRPC āĻāϰ āϏāĻžāĻĨ⧇ āωāĻ˛ā§āϞ⧇āĻ–āϝ⧋āĻ—ā§āϝ āϏāĻŽāϝāĻŧ āϏāĻžāĻļā§āϰāϝāĻŧ⧇āϰ āĻ•āĻžāϰāϪ⧇ āχāĻžā§āϜāĻŋāύāĻŋāϝāĻŧāĻžāϰāϰāĻž āĻāĻ–āύ āĻŽā§‚āϞ āĻ•āĻžāĻ°ā§āϝāĻ•āĻžāϰāĻŋāϤāĻžāϰ āωāĻĒāϰ āφāϰāĻ“ āĻŦ⧇āĻļāĻŋ āĻŽāύ⧋āϝ⧋āĻ— āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

gRPC āĻāϰ āĻ…āϏ⧁āĻŦāĻŋāϧāĻž

āχāĻ¨ā§āϟāĻŋāĻ—ā§āϰ⧇āĻļāύāϗ⧁āϞ⧋ āϏāĻ™ā§āĻ—āϤāĻŋāĻĒā§‚āĻ°ā§āĻŖ āϰāĻžāϖ⧁āύ
āφāĻĒāύāĻžāϰ āĻĒā§āϰ⧋āĻĄāĻžāĻ•ā§āĻŸā§‡āϰ āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄ, āχāωāφāχ āĻāĻŦāĻ‚ āχāĻ¨ā§āϟāĻŋāĻ—ā§āϰ⧇āĻļāύ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻĒā§āĻ˛ā§āϝāĻžāϟāĻĢāĻ°ā§āĻŽ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤
āĻļ⧁āϰ⧁ āĻ•āϰ⧁āύ

āϝāĻĻāĻŋāĻ“ āφāĻŽāϰāĻž āφāĻļāĻž āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ āϝ⧇ gRPC āĻ¤ā§āϰ⧁āϟāĻŋāϗ⧁āϞāĻŋ āĻļ⧇āώ āĻĒāĻ°ā§āϝāĻ¨ā§āϤ āϏāĻŽāĻžāϧāĻžāύ āĻšāϝāĻŧ⧇ āϝāĻžāĻŦ⧇, āϤāĻžāϰāĻž āĻāĻ–āύ āĻāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇ āĻ•āĻŋāϛ⧁ āϏāĻŽāĻ¸ā§āϝāĻž āϤ⧈āϰāĻŋ āĻ•āϰ⧇āĨ¤ gRPC āĻ•āĻŋāϛ⧁ āĻ…āϏ⧁āĻŦāĻŋāϧāĻž āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āφāĻĒāύāĻžāϰ āϏāĻšā§‡āϤāύ āĻšāĻ“āϝāĻŧāĻž āωāϚāĻŋāϤ:

  • āĻĒāϰāĻŋāĻĒāĻ•ā§āĻ•āϤāĻžāϰ āĻ…āĻ­āĻžāĻŦ

āĻāĻ•āϟāĻŋ āĻĒā§āϰāϝ⧁āĻ•ā§āϤāĻŋāϰ āĻŦāĻŋāĻ•āĻžāĻļ āĻ—ā§āϰāĻšāϪ⧇āϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āĻāĻ•āϟāĻŋ āωāĻ˛ā§āϞ⧇āĻ–āϝ⧋āĻ—ā§āϝ āĻŦāĻžāϧāĻž āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ gRPC āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻāϟāĻŋāĻ“ āĻ¸ā§āĻĒāĻˇā§āϟāĨ¤ GraphQL, gRPC-āĻāϰ āϏāĻšāĻ•āĻ°ā§āĻŽā§€āĻĻ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āĻāĻ•āϟāĻŋ, StackOverflow-āĻ 14k-āĻāϰ āĻŦ⧇āĻļāĻŋ āĻĒā§āϰāĻļā§āύ āϰāϝāĻŧ⧇āϛ⧇, āϝāĻ–āύ StackOverflow āĻāϰ āĻāχ āĻŽā§āĻšā§‚āĻ°ā§āϤ⧇ gRPC āĻāϰ āĻāĻ•āϟ⧁ āύ⧀āĻšā§‡ āϰāϝāĻŧ⧇āϛ⧇āĨ¤ gRPC āϏāĻŽā§āĻĒā§āϰāĻĻāĻžāϝāĻŧ⧇āϰ āϏāĻ°ā§āĻŦā§‹āĻ¤ā§āϤāĻŽ āĻ…āύ⧁āĻļā§€āϞāύ, āϏāĻŽāĻžāϧāĻžāύ āĻāĻŦāĻ‚ āϏāĻžāĻĢāĻ˛ā§āϝ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻœā§āĻžāĻžāύ⧇āϰ āĻ…āĻ­āĻžāĻŦ āϰāϝāĻŧ⧇āϛ⧇ āĻ•āĻžāϰāĻŖ HTTP/2 āĻāϰ āϜāĻ¨ā§āϝ āϖ⧁āĻŦ āĻŦ⧇āĻļāĻŋ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāĻžāϰ āϏāĻšāĻžāϝāĻŧāϤāĻž āύ⧇āχ, āϏ⧇āχāϏāĻžāĻĨ⧇ āϗ⧁āĻ—āϞ⧇āϰ āĻŦāĻžāχāϰ⧇ āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ āĻŦāĻžāĻĢāĻžāϰ āύ⧇āχāĨ¤ āϝāĻžāχāĻšā§‹āĻ•, āϝ⧇āĻšā§‡āϤ⧁ gRPC āϏāĻŽā§āĻĒā§āϰāĻĻāĻžāϝāĻŧ āĻĒā§āϰāϏāĻžāϰāĻŋāϤ āĻšāϝāĻŧ āĻāĻŦāĻ‚ āύāϤ⧁āύ āĻĄā§‡āϭ⧇āϞāĻĒāĻžāϰāĻĻ⧇āϰ āφāĻ•ā§ƒāĻˇā§āϟ āĻ•āϰ⧇, āĻāϟāĻŋ āĻļ⧇āώ āĻĒāĻ°ā§āϝāĻ¨ā§āϤ āĻŦāĻŋāĻ•āĻļāĻŋāϤ āĻšāĻŦ⧇āĨ¤

  • āϏ⧀āĻŽāĻŋāϤ āĻŦā§āϰāĻžāωāϜāĻžāϰ āϏāĻŽāĻ°ā§āĻĨāύ

āϝ⧇āĻšā§‡āϤ⧁ āϕ⧋āύ⧋ āĻŦāĻ°ā§āϤāĻŽāĻžāύ gRPC āĻ“āϝāĻŧ⧇āĻŦ āĻŦā§āϰāĻžāωāϜāĻžāϰ HTTP/2 āĻĢā§āϰ⧇āĻŽāϗ⧁āϞāĻŋ āĻĒāϰāĻŋāϚāĻžāϞāύāĻž āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āύāĻž, āφāĻĒāύāĻŋ āĻ•āĻžāĻ°ā§āϝāĻ•āϰāĻ­āĻžāĻŦ⧇ āĻāĻ•āϟāĻŋ āĻŦā§āϰāĻžāωāϜāĻžāϰ āĻĨ⧇āϕ⧇ āĻāĻ•āϟāĻŋ gRPC āĻĒāϰāĻŋāώ⧇āĻŦāĻž āĻ•āϞ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύ āύāĻž āϝ⧇āĻšā§‡āϤ⧁ gRPC āĻ“āϝāĻŧ⧇āĻŦ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ•āĻ­āĻžāĻŦ⧇ HTTP/2 āĻāϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇āĨ¤ āĻĢāϞāĻ¸ā§āĻŦāϰ⧂āĻĒ, āφāĻĒāύāĻžāϕ⧇ āĻ…āĻŦāĻļā§āϝāχ gRPC āĻāϰ āϏāĻžāĻĨ⧇ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻ•ā§āϏāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇, āϝāĻž āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻ¤ā§āϰ⧁āϟāĻŋāϰ āϏāĻžāĻĨ⧇ āφāϏ⧇āĨ¤

  • āĻŽāĻžāύ⧁āώ⧇āϰ āĻ…āĻĒāĻžāĻ ā§āϝ

XML āĻāĻŦāĻ‚ JSON āĻāϰ āĻŦāĻŋāĻĒāϰ⧀āϤ⧇, Protobuf āĻĢāĻžāχāϞāϗ⧁āϞāĻŋ āĻŽāĻžāύāĻŦ-āĻĒāĻžāĻ āϝ⧋āĻ—ā§āϝ āύāϝāĻŧ āϝ⧇āĻšā§‡āϤ⧁ āĻĄā§‡āϟāĻž āĻāĻ•āϟāĻŋ āĻŦāĻžāχāύāĻžāϰāĻŋ āĻĢāĻ°ā§āĻŽā§āϝāĻžāĻŸā§‡ āϏāĻ‚āϕ⧁āϚāĻŋāϤ āĻšāϝāĻŧāĨ¤ āĻĄā§‡āϭ⧇āϞāĻĒāĻžāϰāĻĻ⧇āϰ āĻ…āĻŦāĻļā§āϝāχ āĻ…āϤāĻŋāϰāĻŋāĻ•ā§āϤ āϏāϰāĻžā§āϜāĻžāĻŽ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇, āϝ⧇āĻŽāύ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻĒā§āϰāϤāĻŋāĻĢāϞāύ āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ āĻāĻŦāĻ‚ gRPC āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻĒā§āϰāĻŽā§āĻĒāϟ āĻĒ⧇āϞ⧋āĻĄ āĻŽā§‚āĻ˛ā§āϝāĻžāϝāĻŧāύ āĻ•āϰāϤ⧇, āϏāĻŽāĻ¸ā§āϝāĻž āϏāĻŽāĻžāϧāĻžāύ āĻ•āϰāϤ⧇ āĻāĻŦāĻ‚ āĻŽā§āϝāĻžāύ⧁āϝāĻŧāĻžāϞ āĻĒā§āϰāĻļā§āύ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇āĨ¤

  • āĻ–āĻžāĻĄāĻŧāĻž āϞāĻžāĻ°ā§āύāĻŋāĻ‚ āĻ•āĻžāĻ°ā§āĻ­

REST āĻāĻŦāĻ‚ GraphQL āĻāϰ āĻŦāĻŋāĻĒāϰ⧀āϤ⧇ āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ āĻŦāĻžāĻĢāĻžāϰāϗ⧁āϞāĻŋāϰ āϏāĻžāĻĨ⧇ āĻĒāϰāĻŋāϚāĻŋāϤ āĻšāϤ⧇ āĻāĻŦāĻ‚ HTTP/2 āϘāĻ°ā§āώāĻŖ āĻŽā§‹āĻ•āĻžāĻŦ⧇āϞāĻžāϰ āĻĒāĻĻā§āϧāϤāĻŋāϗ⧁āϞāĻŋ āφāĻŦāĻŋāĻˇā§āĻ•āĻžāϰ āĻ•āϰāϤ⧇ āĻ•āĻŋāϛ⧁āϟāĻž āϏāĻŽāϝāĻŧ āϞāĻžāĻ—āĻŦ⧇, āωāĻ­āϝāĻŧāχ āĻŦ⧇āĻļāĻŋāϰāĻ­āĻžāĻ— JSON āύāĻŋāϝāĻŧā§‹āĻ— āĻ•āϰ⧇āĨ¤

AppMaster āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āĻ•āϰ⧇?

āφāĻĒāύāĻžāϰ API āĻĒāĻĻā§āϧāϤāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰ⧁āύ
āĻŦāĻžāĻ¸ā§āϤāĻŦ āφāϚāϰāĻŖ āĻĻ⧇āϖ⧇ gRPC āĻŦāύāĻžāĻŽ REST āϏāĻŋāĻĻā§āϧāĻžāĻ¨ā§āϤ āϝāĻžāϚāĻžāχ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻĻā§āϰ⧁āϤ āĻāĻ•āϟāĻŋ āĻ•āĻžāĻ°ā§āϝāĻ•āϰ āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύāĨ¤
āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āĻļ⧁āϰ⧁ āĻ•āϰ⧁āύ

No-code āĻĒā§āϰāϜāĻ¨ā§āĻŽā§‡āϰ āϞ⧋āϕ⧇āϰāĻž āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāĻŋāĻ‚ āĻĻ⧇āĻ–āĻžāϰ āωāĻĒāĻžāϝāĻŧ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāϛ⧇āĨ¤ No-code āĻœā§‡āύāĻžāϰ⧇āĻļāύ āĻŽāĻžāύ⧁āώ⧇āϰ āĻĒāĻ•ā§āώ⧇ āϕ⧋āĻĄ āĻœā§‡āύāĻžāϰ⧇āĻļāύ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻĻā§āϰ⧁āϤ āϏāĻĢāϟāĻ“āϝāĻŧā§āϝāĻžāϰ āĻļ⧇āĻ–āĻž āĻāĻŦāĻ‚ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āϏāĻŽā§āĻ­āĻŦ āĻ•āϰ⧇ āϤ⧋āϞ⧇āĨ¤ AppMaster āĻŽāϤ⧋ no-code āĻœā§‡āύāĻžāϰ⧇āĻļāύ āĻĒā§āĻ˛ā§āϝāĻžāϟāĻĢāĻ°ā§āĻŽ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āφāĻĒāύāĻžāϰ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ⧇āϰ āϜāĻ¨ā§āϝ āϕ⧋āĻĄ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āϏāĻšāϜāĨ¤ āϕ⧋āύ āĻŽāĻžāϞāĻŋāĻ•āĻžāύāĻž āϏāĻŽāĻ¸ā§āϝāĻž āύ⧇āχ, āĻ•āĻžāϰāĻŖ āϕ⧋āĻĄ āĻœā§‡āύāĻžāϰ⧇āĻļāύ āϏ⧁āϰāĻ•ā§āώāĻŋāϤ, āĻāĻŦāĻ‚ āφāĻĒāύāĻŋ āϝ⧇ āϕ⧋āĻĄāϟāĻŋ āϤ⧈āϰāĻŋ āĻ•āϰāĻŦ⧇āύ āϤāĻž āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āφāĻĒāύāĻžāϰāχ āĻšāĻŦ⧇āĨ¤ āφāĻĒāύāĻŋ AppMaster āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻĻā§āϰ⧁āϤ āĻāĻŦāĻ‚ āφāϰ⧋ āϏāĻšāĻœā§‡ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻāĻŦāĻ‚ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤

āĻ…ā§āϝāĻžāĻĒāĻŽāĻžāĻ¸ā§āϟāĻžāϰ⧇āϰ no-code āĻœā§‡āύāĻžāϰ⧇āĻļāύ āĻĒā§āĻ˛ā§āϝāĻžāϟāĻĢāĻ°ā§āĻŽ āĻŦāĻŋāĻ•āĻžāĻļāĻ•āĻžāϰ⧀āĻĻ⧇āϰ āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄ āĻŽāĻžāχāĻ•ā§āϰ⧋āϏāĻžāĻ°ā§āĻ­āĻŋāϏ⧇āϏ āφāĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āϚāĻžāϰ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āĻ…āύ⧁āϰ⧋āϧ āĻ•āϰāϤ⧇ gRPC āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĻ⧇āϝāĻŧāĨ¤ āĻĒāϰ⧇āϰ āĻŦāĻ›āϰ āφāĻŽāϰāĻž gRPC āĻ“āϝāĻŧ⧇āĻŦ āĻāĻŦāĻ‚ gRPC āĻŽā§‹āĻŦāĻžāχāϞ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āωāĻ­āϝāĻŧ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ API āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ āĻ•āϰ⧇ gRPC āϏāĻŽāĻ°ā§āĻĨāύ āĻĒā§āϰāϏāĻžāϰāĻŋāϤ āĻ•āϰāĻŦāĨ¤

āωāĻĒāϏāĻ‚āĻšāĻžāϰ

āϝāĻĻāĻŋāĻ“ gRPC āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϗ⧁āϞāĻŋāϰ āĻŦ⧇āĻļ āĻ•āĻŋāϛ⧁ āϏ⧁āĻŦāĻŋāϧāĻž āϰāϝāĻŧ⧇āϛ⧇ āϝāĻž āϏ⧇āϗ⧁āϞāĻŋāϕ⧇ āĻŦā§āϝāĻŦāϏāĻž āĻāĻŦāĻ‚ āĻĄā§‡āϭ⧇āϞāĻĒāĻžāϰāĻĻ⧇āϰ āĻ•āĻžāϛ⧇ āφāĻ•āĻ°ā§āώāĻŖā§€āϝāĻŧ āĻ•āϰ⧇ āϤ⧋āϞ⧇, āĻ…āĻŦāĻļ⧇āώ⧇, REST āĻŦāĻž SOAP-āĻāϰ āĻŽāϤ⧋ āĻ…āĻ¨ā§āϝāĻĻ⧇āϰ gRPC āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϗ⧁āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āϏāĻŋāĻĻā§āϧāĻžāĻ¨ā§āϤ āφāĻĒāύāĻžāϰ āφāĻŦ⧇āĻĻāύ⧇āϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇⧎ āϝāĻĻāĻŋāĻ“ āĻ•āĻŋāϛ⧁ āϏāĻĢā§āϟāĻ“āϝāĻŧā§āϝāĻžāϰ gRPC āĻāϰ āϏāĻžāĻĨ⧇ āωāĻšā§āϚ-āĻ•āĻžāĻ°ā§āϝāĻ•ā§āώāĻŽāϤāĻžāϰ āϏ⧁āĻŦāĻŋāϧāĻž āĻĒāĻžāĻŦ⧇, āĻ…āĻ¨ā§āϝāϰāĻž āĻāϰ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ āφāϰāĻ“ āωāĻĒāϝ⧁āĻ•ā§āϤ āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āφāĻĒāύāĻžāϰ gRPC āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϗ⧁āϞāĻŋāϰ āĻ…āϏ⧁āĻŦāĻŋāϧāĻžāϗ⧁āϞāĻŋ āĻāĻŦāĻ‚ āϏ⧁āĻŦāĻŋāϧāĻžāϗ⧁āϞāĻŋ āĻŦā§‹āĻāĻž āωāϚāĻŋāϤ āĻāĻŦāĻ‚ āĻāϟāĻŋ āφāĻĒāύāĻžāϰ āϜāĻ¨ā§āϝ āĻ•āĻžāϜ āĻ•āϰ⧇ āĻ•āĻŋāύāĻž āϤāĻž āϏāĻŋāĻĻā§āϧāĻžāĻ¨ā§āϤ āύ⧇āĻ“āϝāĻŧāĻž āωāϚāĻŋāϤ⧎

āĻļ⧁āϰ⧁ āĻ•āϰāĻž āϏāĻšāϜ
āĻ•āĻŋāϛ⧁ āφāĻļā§āϚāĻ°ā§āϝāϜāύāĻ•āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ

āĻŦāĻŋāύāĻžāĻŽā§‚āĻ˛ā§āϝ⧇āϰ āĻĒāϰāĻŋāĻ•āĻ˛ā§āĻĒāύāĻž āϏāĻš āĻ…ā§āϝāĻžāĻĒāĻŽāĻžāĻ¸ā§āϟāĻžāϰ⧇āϰ āϏāĻžāĻĨ⧇ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰ⧁āύāĨ¤
āφāĻĒāύāĻŋ āϝāĻ–āύ āĻĒā§āϰāĻ¸ā§āϤ⧁āϤ āĻšāĻŦ⧇āύ āϤāĻ–āύ āφāĻĒāύāĻŋ āϏāĻ āĻŋāĻ• āϏāĻĻāĻ¸ā§āϝāϤāĻž āĻŦ⧇āϛ⧇ āύāĻŋāϤ⧇ āĻĒāĻžāϰ⧇āύ⧎

āĻāĻŦāĻžāϰ āĻļ⧁āϰ⧁ āĻ•āϰāĻž āϝāĻžāĻ•
gRPC āĻ•āĻŋ? | AppMaster