gRPC āļāļ·āļāļāļ°āđāļĢ
gRPC āđāļāđāļāđāļ§āļāļĢāđāļāļąāļāļāļĢāļąāļāļāļĢāļļāļāļāļāļāđāļāļ§āļāļēāļ RPC āļāļąāđāļ§āđāļāđāļāļāļēāļĢāļāļāļāđāļāļ API āļāđāļēāļāļāđāļāđāļāļ·āđāļāđāļĢāļĩāļĒāļāļĢāļđāđāļāļļāļāļāļĒāđāļēāļāđāļāļĩāđāļĒāļ§āļāļąāļ gRPC āđāļĨāļ°āļāđāļāļāļĩāļāđāļāđāļŠāļĩāļĒ!

āđāļāļāļāļĨāļīāđāļāļāļąāļāļāļāļāļāđāđāļ§āļĢāđāļŠāđāļ§āļāđāļŦāļāđāļāđāļāļāļŠāļēāļĄāļēāļĢāļāđāļāļ·āđāļāļĄāļāđāļāļāļąāļāļĢāļŦāļąāļŠāļāļ·āđāļāđāļāđāļāđāļ§āļĒāđāļŦāļāļļāļāļĨāļŦāļĨāļēāļĒāļāļĢāļ°āļāļēāļĢ āļŠāļīāđāļāļāļĩāđāļŠāļēāļĄāļēāļĢāļāđāļāđāļāļāļ°āđāļĢāļāđāđāļāđāļāļąāđāļāđāļāđāļāļēāļĢāļāļŠāļēāļāļĢāļ§āļĄāđāļāļāļāļāļķāļāļāļēāļĢāđāļāļīāđāļĄāļāļąāļāļāđāļāļąāļāđāļŦāļĄāđ āđāļāļ·āđāļāđāļŦāđāđāļāđāđāļāļ§āđāļēāļāļāļāļāđāđāļ§āļĢāđāļŠāļēāļĄāļēāļĢāļāđāļāļ·āđāļāļĄāđāļĒāļāļāļąāļāđāļāļāļāļĨāļīāđāļāļāļąāļāļāļ·āđāļāđ āđāļĨāļ°āđāļāļ·āđāļāđāļŦāđāđāļāđāđāļāļ§āđāļēāļĄāļĩāļāļēāļĢāļĢāļ§āļĄāđāļāđāļēāļāļąāļāđāļāļĢāđāļāļĢāļĄāļāļ·āđāļāđ āļāļąāļāļāļąāļāļāļēāļāļķāļāđāļāđ API āļāđāļ§āļĒāđāļŦāļāļļāļāļĩāđ Application Programming Interface āļāļķāļāļāļģāđāļāđāļāļŠāļģāļŦāļĢāļąāļāļāļāļāļāđāđāļ§āļĢāđāļŠāđāļ§āļāđāļŦāļāđ āļāđāļ§āļĒāļāļāļāļēāļāļāļāļāļāļ§āļāđāļāļēāđāļāļāļēāļāļ°āļŠāļ°āļāļēāļāļāđāļēāļĄāļĢāļ°āļāļ API āļāđāļ§āļĒāđāļŦāđāļāļļāļāļāļĨāļŠāļēāļĄāļēāļĢāļāđāļāđāļēāļāļķāļāļāļĢāļīāļāļēāļĢāđāļ§āđāļāļāļĩāđāļŦāļĨāļēāļāļŦāļĨāļēāļĒāđāļāđ āļāļąāļāļāļąāđāļ āļŠāļīāđāļāļŠāļģāļāļąāļāļāļ·āļāļāđāļāļāđāļĨāļ·āļāļāđāļāļāđāļāđāļĨāļĒāļĩāļāļĩāđāđāļŦāļĄāļēāļ°āļŠāļĄāđāļāļ·āđāļāđāļŠāļāļ API āđāļŦāđāļāļąāļāđāļāļĢāļāļāļēāļĢāļāļāļāļāļļāļ
āļāļāļāđāļāļĢāļāļĩāđāļāđāļāļāļāļēāļĢāđāļāļĢāđāđāļāļāļāļĨāļīāđāļāļāļąāļāļŦāļĢāļ·āļāđāļāļĨāļāļāļāļĢāđāļĄāļāļąāļāļāļđāđāđāļāđāļāļģāđāļāđāļāļāđāļāļāđāļāđ API āļĄāļĩāļŦāļĨāļēāļĒāļ§āļīāļāļĩāđāļāļāļēāļĢāļāļąāļāļāļēāđāļĨāļ°āļāļĢāļąāļāđāļāđāļ API āđāļāļ·āđāļāđāļŦāđāđāļŦāļĄāļēāļ°āļŠāļĄāļāļĩāđāļŠāļļāļāļŠāļģāļŦāļĢāļąāļāđāļāļāļāļĨāļīāđāļāļāļąāļāļāļāļāļāļļāļ āļŦāļāļķāđāļāđāļāļ§āļīāļāļĩāļĨāđāļēāļŠāļļāļāļāļĩāđāđāļāļĢāđāļāļĢāļĄāđāļĄāļāļĢāđāđāļāđāđāļāļāļēāļĢāļāļāļāđāļāļ API āļāļ·āļ gRPC āļĄāļēāļāļđāļāļąāļāļ§āđāļē gRPC āļāļ·āļāļāļ°āđāļĢ āđāļĨāļ°āļāđāļāļāļĩāļāđāļāđāļŠāļĩāļĒāļāļāļāļĄāļąāļ
gRPC āļāļ·āļāļāļ°āđāļĢ ?
gRPC āļĒāđāļāļĄāļēāļāļēāļ Google Remote Procedure CallgRPC āđāļāđāļāđāļāļĢāļĄāđāļ§āļīāļĢāđāļ RPC āđāļāļāđāļāđāļāđāļāļāļāļĢāđāļŠāļāļĩāđāđāļāđāļŠāļĢāđāļēāļ API āļāļĩāđāļĢāļ§āļāđāļĢāđāļ§āđāļĨāļ°āļāļĢāļąāļāļāļāļēāļāđāļāđ āļāđāļ§āļĒāđāļŦāđāļāļąāļāļāļēāļĢāļ°āļāļāđāļāļĢāļ·āļāļāđāļēāļĒāđāļĨāļ°āļāļēāļĢāļŠāļ·āđāļāļŠāļēāļĢāđāļāļāđāļāļīāļāļĢāļ°āļŦāļ§āđāļēāļāđāļāļĨāđāļāļāļāđ gRPC āđāļĨāļ°āđāļāļāļāļĨāļīāđāļāļāļąāļāđāļāļīāļĢāđāļāđāļ§āļāļĢāđ gRPC āđāļāđāļĢāļąāļāļāļēāļĢāļĒāļāļĄāļĢāļąāļāļāļēāļāļāļĢāļīāļĐāļąāļāđāļāļāđāļāđāļĨāļĒāļĩāļāļąāđāļāļāļģāļŦāļĨāļēāļĒāđāļŦāđāļ āļĢāļ§āļĄāļāļķāļ Google, IBM, Netflix āđāļĨāļ°āļāļ·āđāļāđ āđāļāļĢāļĄāđāļ§āļī gRPC āļāļķāđāļāļāļĒāļđāđāļāļąāļāļāļāļāđāļāļāđāļāđāļĨāļĒāļĩāļāļĩāđāļāļąāļāļŠāļĄāļąāļĒ āđāļāđāļ HTTP/2, āļāļąāļāđāļāļāļĢāđāđāļāļĢāđāļāļāļāļĨ āđāļĨāļ°āļāļ·āđāļāđ āļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļāđāļāļāļāļąāļ API āļāļĩāđāđāļŦāļĄāļēāļ°āļŠāļĄ, āļāļēāļĢāđāļĢāļĩāļĒāļāļāļąāđāļāļāļāļāļĢāļ°āļĒāļ°āđāļāļĨāļāļĩāđāļĄāļĩāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāļŠāļđāļ āđāļĨāļ°āļāļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļāđāļāļāļēāļĢāļāļĢāļąāļāļāļāļēāļ

RPC āļāļ·āļāļāļ°āđāļĢ?
RPC āđāļĨāļ° REST - Representational State Transfer - āđāļāļāļāļĩāļāļĄāļĩāđāļāļ§āļāļēāļāļāļĩāđāđāļĒāļāļāļēāļāļāļąāļāļŠāļāļāļ§āļīāļāļĩāđāļāļāļēāļĢāļŠāļĢāđāļēāļ API āļāļāļāļāļēāļāļāļĩāđāļĒāļąāļāđāļāđāđāļāļĢāđāļāļāļāļĨāļāļĒāđāļēāļ SOAP āđāļĨāļ° GraphQL āđāļāļ·āđāļāļāļļāļāļāļĢāļ°āļŠāļāļāđāļāļĩāđāļāđāļ§āļĒ āļāļēāļĢāđāļĢāļĩāļĒāļāđāļāđāļāļąāđāļāļāļāļāļĢāļ°āļĒāļ°āđāļāļĨāļāđāļ§āļĒāđāļŦāđāļāļļāļāđāļāļĩāļĒāļāļāļāļāļāđāđāļ§āļĢāđāđāļāđāđāļŦāļĄāļ·āļāļāļāļąāļāļ§āđāļēāļāļāļāļāđāđāļ§āļĢāđāļāļ°āļāļģāļāļēāļāđāļāđāļāļĢāļ·āđāļāļ āđāļĄāđāļ§āđāļēāļāļāļāļāđāđāļ§āļĢāđāļāļąāđāļāļāļēāļāļāļģāļāļēāļāļāļāļāļļāļāļāļĢāļāđāļāļ·āđāļāļāđāļāļēāļĄ
āđāļāđāļāđāļāļĢāļĄāđāļ§āļīāļĢāđāļāļāļĩāđāđāļāđāļāļąāļāļāļąāđāļ§āđāļāđāļāļāļēāļĢāļāļāļāđāļāļ API āļāļĢāļāļāļąāļāļāđāļēāļĄāļāļąāļāļāļēāļĢāđāļĢāļĩāļĒāļāđāļāļĢāđāļāļāļāļĨ HTTP āļāļąāđāļ§āđāļ RPC āđāļāđāļāļēāļĢāđāļĢāļĩāļĒāļāļāļąāļāļāđāļāļąāļāđāļāđāļāļ§āļīāļāļĩāļāļēāļĢāļŦāļĨāļąāļāđāļāļāļēāļĢāđāļāđāļāļāļāļĢāļ°āļŦāļ§āđāļēāļāđāļāļĨāđāļāđāļāļāđāđāļĨāļ°āđāļāļīāļĢāđāļāđāļ§āļāļĢāđ RPC āđāļāđāļāđāļāļāļāļīāļāļāļĩāđāļĄāļĩāļāļĢāļ°āļŠāļīāļāļāļīāļāļĨāđāļāļāļēāļĢāļŠāļĢāđāļēāļ API āđāļāļ·āđāļāļāļāļēāļāļāļēāļĢāđāļĨāļāđāļāļĨāļĩāđāļĒāļāļāļģāđāļāđāļāđāļēāļĒāđāļĨāļ°āđāļāļ·āđāļāļŦāļēāđāļĄāđāļāļąāļāļāđāļāļ āļāļĢāļīāļāļēāļĢ gRPC āļĒāļąāļāđāļĨāļĩāļĒāļāđāļāļāļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄāļāļēāļĢāļŠāļ·āđāļāļŠāļēāļĢāļāļĩāđ RPC āđāļāđ IDL - Interface Definition Language āđāļāļ·āđāļāļāļģāļŠāļąāļāļāļēāļāļĢāļ°āđāļ āļāļāđāļāļĄāļđāļĨāđāļĨāļ°āļ§āļīāļāļĩāļāļēāļĢāļāļĩāđāļāļ°āđāļĢāļĩāļĒāļāđāļāđ āļāļĢāļīāļāļēāļĢ gRPC āļāļģāļĄāļēāđāļāđāļāļēāļ RPC āđāļāđāļĢāļąāļāļāļ§āļēāļĄāļāļīāļĒāļĄāļāļĒāđāļēāļāļĄāļēāļāđāļāļāđāļ§āļāđāļĄāđāļāļĩāđāļāļĩāļāļĩāđāļāđāļēāļāļĄāļē
āđāļŦāļāļļāđāļāļāļķāļāļĄāļĩāļāļēāļĢāļāļąāļāļāļēāļāļĢāļīāļāļēāļĢ gRPC
āđāļĄāļ·āđāļāļāļāļāđāļāļĢāļāđāļēāļāđ āđāļāļīāļāļāđāļāļāļāļēāļāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļāļŠāļēāļāļĢāļ§āļĄāļĄāļēāļāļāļķāđāļ āļāļēāļĢāđāļāļ·āđāļāļĄāđāļĒāļāļāļāļāļāđāđāļ§āļĢāđāļāļąāļāļāļĨāđāļēāļ§āļāļķāļāļāļģāđāļāđāļĒāļēāļāļāļķāđāļ RPC API āļāļąāđāļāļāđāļēāļāļēāļĒāđāļāļāļēāļĢāļāļŠāļēāļāļĢāļ§āļĄāđāļĨāļ°āļĄāļĩāļāļ§āļēāļĄāđāļŠāļĩāđāļĒāļāļāļĩāđāļāļ°āđāļāļĒāđāļāļĢāđ āđāļāļ·āđāļāļāļāļēāļāļāļēāļāđāļāļīāļāđāļāļĒāļāđāļāļĄāļđāļĨāđāļāļāļēāļ°āļ āļēāļĒāđāļ āļāļ§āļāđāļāļēāđāļāđāļĢāļąāļāļāļēāļĢāļāļąāļāļāļēāđāļāļ āļēāļĐāļēāļāļēāļĢāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāļāļģāļāļ§āļāļĄāļēāļāđāļĨāļ°āđāļāļ·āđāļāļĄāđāļĒāļāļāļĒāđāļēāļāđāļāļĨāđāļāļīāļāļāļąāļāđāļāļĢāļĄāđāļ§āļīāļĢāđāļāļāļ·āđāļāļāļēāļ
āļāļąāļāļŦāļēāļāļĩāđāđāļāđāļĢāļąāļāļāļēāļĢāđāļāđāđāļāđāļĨāđāļ§ āđāļĨāļ°āļāļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļāđāļāļāļēāļĢāđāļāđāļēāļāļķāļ API āđāļāļīāđāļĄāļāļķāđāļāđāļĄāļ·āđāļ REST API āđāļāļīāļāļāļąāļ§āđāļāļāļĩ 2000 āđāļāļĒāđāļāļāļēāļ°āļāļĒāđāļēāļāļĒāļīāđāļ āļāđāļ§āļĒāđāļŦāđāļāļđāđāđāļāđāļŠāļēāļĄāļēāļĢāļāļāļķāļāļāđāļāļĄāļđāļĨāļāļēāļāļāđāļāļĄāļāđāļēāļāļŠāļīāļāļāļĢāļąāļāļĒāđāđāļāļĒāđāļāđāđāļāļāļāļīāļ HTTP āļĄāļēāļāļĢāļāļēāļ āđāļāđāļ GET, PUT, POST āđāļĨāļ°āļāļ·āđāļāđ āļāļ§āļēāļĄāđāļāļāļāđāļēāļāļŦāļĨāļąāļāđ āļāļāļ RPC āļāļēāļ REST API āļāļ·āļ āđāļĄāļ·āđāļāđāļāđ RPC āļāļĢāļ°āļāļ§āļāļāļēāļĢāļāđāļēāļāđ āļāļ°āļāļđāļāļāļąāļāļāļēāļĢ āđāļāđāļĄāļąāļāđāļĄāđāļāđāļēāļĒāđāļĨāļĒāļāļĩāđāļāļ°āļāļēāļāļāļēāļĢāļāđāļ§āđāļēāļāļĢāļ°āļāļ§āļāļāļēāļĢāđāļāļĢāļ°āļāļāļāđāļēāļāđ āļāļ°āđāļāđāļāđāļāđāļāđāļĢ
REST API āđāļĄāđāļŠāļēāļĄāļēāļĢāļāđāļāļāļāļĩāđ RPC āļāļĩāđāļāļĢāļāđāļāļāļĢāļāļĄāļēāđāļĨāļ°āļĄāļĩāļāđāļģāļŦāļāļąāļāđāļāļēāđāļāđāļāļĒāđāļēāļāļŠāļĄāļāļđāļĢāļāđ āđāļāļ·āđāļāļāļāļēāļāļŠāļĢāđāļēāļāļāđāļāļĄāļđāļĨāđāļĄāļāļēāļāļģāļāļ§āļāļĄāļēāļ āđāļĄāđāļ§āđāļēāļāļ°āļĄāļĩāļĢāļđāļāđāļāļāļāļĩāđāđāļāđāļĢāļąāļāļāļēāļĢāļāļĢāļąāļāļāļĢāļļāļāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļāļąāļāļāļēāļĢāļāļąāļāđāļāļāļāļĨāļīāđāļāļāļąāļāļāļģāļāļ§āļāļĄāļēāļ āļŠāđāļāļāļĨāđāļŦāđāļāļĢāļīāļāļēāļĢ GraphQL āļāļāļ Facebook āđāļĨāļ°āļāļĢāļīāļāļēāļĢ gRPC āļāļāļ Google āđāļāļīāļāļāļķāđāļāđāļāļāļĩāđāļŠāļļāļ
Google āļŠāļĢāđāļēāļ gRPC āđāļāļāļĩ 2558 āđāļāļĒāđāļāđāļāļŠāđāļ§āļāđāļŠāļĢāļīāļĄāļāļāļāđāļāļĢāļĄāđāļ§āļīāļĢāđāļ RPC āđāļāļ·āđāļāđāļāļ·āđāļāļĄāļāđāļāļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄāđāļĄāđāļāļĢāđāļāļāļĢāđāļ§āļīāļŠāļāļģāļāļ§āļāļĄāļēāļāļāļĩāđāļŠāļĢāđāļēāļāļāđāļ§āļĒāđāļāļāļāļīāļāļāđāļēāļāđ gRPC āđāļāļīāļĄāļĄāļĩāļāļ§āļēāļĄāđāļāļĩāđāļĒāļ§āļāđāļāļāļāļĒāđāļēāļāđāļāļĨāđāļāļīāļāļāļąāļāđāļāļĢāļāļŠāļĢāđāļēāļāļāļ·āđāļāļāļēāļāļŦāļĨāļąāļāļāļāļ Google āđāļāđāđāļāļāļĩāđāļŠāļļāļāļāđāļāļĨāļēāļĒāđāļāđāļāđāļāđāļāđāļāļāļāļĢāđāļŠāđāļĨāļ°āđāļāđāļāļĄāļēāļāļĢāļāļēāļāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāđāļāđāļāļēāļāđāļāļĒāļŠāļēāļāļēāļĢāļāļāļāļāļąāđāļ§āđāļ
āļ āļēāļāļĢāļ§āļĄāļāļāļāđāļāļ§āļāļīāļ gRPC
āļāļēāļĢāđāļāđāđāļāļāđāļāđāļĨāļĒāļĩāļĨāđāļģāļŠāļĄāļąāļĒāļāļķāđāļāļĄāļĩāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāļŠāļđāļāļāļ§āđāļē JSON āđāļĨāļ° XML āđāļĨāļ°āļĄāļāļāļāļ§āļēāļĄāļŠāļĄāļāļđāļĢāļāđāļāļāļ API āļāļĩāđāļŠāļđāļāļāļ§āđāļē āļĄāļĩāļŠāđāļ§āļāļĢāļąāļāļāļīāļāļāļāļāļāđāļāļāļēāļĢāļŠāļĢāđāļēāļāđāļĨāļ°āļāļ§āļēāļĄāļāļīāļĒāļĄāļāļāļ gRPC āđāļāļ§āļāļīāļ gRPC āļāļēāļāļŠāđāļ§āļāļāļĩāđāļāļļāļāļāļ§āļĢāļāļĢāļēāļāļāļ·āļ:
āļāļąāļāđāļāļāļĢāđāđāļāļĢāđāļāļāļāļĨ
āđāļāļĢāđāļāļāļāļĨāļāļąāļāđāļāļāļĢāđāļŦāļĢāļ·āļāļāļĩāđāđāļĢāļĩāļĒāļāļ§āđāļē Protobuf āđāļāđāļāļĄāļēāļāļĢāļāļēāļāļāļēāļĢāļāļģāđāļŦāđāđāļāđāļāļāļĩāđāļĢāļĩāļĒāļĨāđāļĨāđāļāļāļąāļāļŦāļĢāļ·āļāļāļĩāļāļĩāđāļĢāļĩāļĒāļĨāđāļĨāđāļāļāļąāļāļāļĩāđāļāļģāđāļŦāđāļāđāļēāļĒāļāđāļāļāļēāļĢāļāļģāļŦāļāļāđāļāļāļāļĨāļīāđāļāļāļąāļāđāļĨāļ°āļāļģāđāļāļīāļāļāļēāļĢāļŠāļĢāđāļēāļāļĢāļŦāļąāļŠāļāļāļāđāļāļĨāđāļāļāļāđāđāļĨāļāļĢāļēāļĢāļĩāđāļāļĒāļāļąāļāđāļāļĄāļąāļāļī āđāļ§āļāļĢāđāļāļąāļāļĨāđāļēāļŠāļļāļ proto3 āđāļāđāļāļēāļāļāđāļēāļĒāļāļ§āđāļēāđāļĨāļ°āļĄāļĩāļāļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļāđāļŦāļĄāđāļĨāđāļēāļŠāļļāļāļŠāļģāļŦāļĢāļąāļ gRPC
āđāļāļĨāđ .Proto āđāļāļīāļāđāļāđ gRPC.Proto āļāļēāļĢāļŠāļ·āđāļāļŠāļēāļĢāļĢāļ°āļŦāļ§āđāļēāļāđāļāļĨāđāļāļāļāđ gRPC āđāļĨāļ°āļāđāļāļāļ§āļēāļĄāđāļāļīāļĢāđāļāđāļ§āļāļĢāđ āđāļāļĨāđ .proto āļāļđāļāđāļŦāļĨāļāļĨāļāđāļāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģāļāļāļ°āļāļģāđāļāļīāļāļāļēāļĢāđāļāļĒāļāļāļĄāđāļāđāļĨāļāļĢāđ Protobuf - protoc āļāļāļĄāđāļāđāļĨāļāļĢāđāļāļĩāđāļŠāļĢāđāļēāļāđāļāļĨāđāļāļāļāđ gRPC āđāļĨāļ°āđāļāļāļāļĨāļīāđāļāļāļąāļāđāļāļīāļĢāđāļāđāļ§āļāļĢāđ gRPC āļāļĩāđāđāļāđāđāļāļĢāļāļŠāļĢāđāļēāļāđāļāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģāđāļāļ·āđāļāļāļĩāđāļĢāļĩāļĒāļĨāđāļĨāļāđāđāļĨāļ°āļāļĩāļāļĩāđāļĢāļĩāļĒāļĨāđāļĨāļāđāļāđāļāļĄāļđāļĨāđāļāļāļēāļĢāļĩ āļāļēāļĢāļŠāļ·āđāļāļŠāļēāļĢāđāļāđāļĨāļ°āļāļĢāļąāđāļāļāļ°āļāļđāļāļŠāđāļāđāļĨāļ°āļĢāļąāļāļĢāļ°āļŦāļ§āđāļēāļāļāļđāđāđāļāđāđāļĨāļ°āļāļĢāļīāļāļēāļĢāļĢāļ°āļĒāļ°āđāļāļĨāļāļēāļĄāļāļēāļĢāļŠāļĢāđāļēāļāļĢāļŦāļąāļŠāđāļ gRPC
āđāļāļ·āđāļāļāļāļēāļāļāđāļāļĄāļđāļĨāļāļđāļāđāļāļĨāđāļāđāļāļĢāļđāļāđāļāļāđāļāļāļēāļĢāļĩāđāļĨāļ°āļŠāļąāļāļāļēāļāļāļĩāđāđāļāđāļēāļĢāļŦāļąāļŠāļĄāļĩāļāļāļēāļāđāļĨāđāļāļĨāļ āļāļēāļĢāđāļĒāļāļ§āļīāđāļāļĢāļēāļ°āļŦāđāļāđāļ§āļĒ Protobuf āļāļķāļāđāļāđāļāļĨāļąāļāļāļēāļ CPU āļāđāļāļĒāļĨāļāļŠāļģāļŦāļĢāļąāļ gRPC āļāļąāļāļāļąāđāļ āđāļĄāđāđāļāļāļāļĄāļāļīāļ§āđāļāļāļĢāđāļāļĩāđāļĄāļĩ CPU āļāđāļāļāļāļ§āđāļē āđāļāđāļ āđāļāļĢāļĻāļąāļāļāđāļĄāļ·āļāļāļ·āļ āļāđāļāļāļ§āļēāļĄāļāđāļŠāđāļāđāļāđāđāļĢāđāļ§āļāļ§āđāļēāļāđāļ§āļĒ gRPC
HTTP/2
āļāļĢāļīāļāļēāļĢ gRPC āļŠāļĢāđāļēāļāļāļķāđāļāļāļ HTTP/2 āļāļķāđāļāđāļāđāļāđāļ§āļāļĢāđāļāļąāļāļāļāļ HTTP/1.1 āļāļĩāđāļĄāļĩāļāđāļāļāļģāļāļąāļāļāđāļāļĒāļāļ§āđāļē āđāļĄāđāļ§āđāļēāļāļ°āļāļģāļāļēāļāļĢāđāļ§āļĄāļāļąāļāđāļāļĢāđāļāļāļāļĨ HTTP āļĢāļļāđāļāđāļāđāļē āđāļāđ HTTP/2 āļāđāļĄāļĩāļāļļāļāļŠāļĄāļāļąāļāļīāļāļĩāđāļāļąāļāļāđāļāļāļŦāļĨāļēāļĒāļāļĒāđāļēāļāļŠāļģāļŦāļĢāļąāļ gRPC āļāļķāđāļāļĢāļ§āļĄāļāļķāļāđāļĨāđāļĒāļāļĢāđāļāļēāļĢāļāļąāļāđāļāļĢāļĄāđāļāļāđāļāļāļēāļĢāļĩ āļāļķāđāļāđāļāđāļāļāļēāļĢāļŠāļ·āļāļāđāļ HTTP/2 āđāļāđāļĨāļ°āļĢāļēāļĒāļāļēāļĢāđāļĨāļ°āļāļēāļĢāļāļāļāļāļĨāļąāļāđāļāđāļāļāđāļāļāļ§āļēāļĄāļāļāļēāļāđāļĨāđāļāļĨāļ āđāļĨāļ°āļāļąāļāđāļāļĢāļĄāđāļāļĢāļđāļāđāļāļāđāļāļāļēāļĢāļĩāđāļāļ·āđāļāļāļĢāļąāļāļāļĢāļļāļāļāļēāļĢāļŠāđāļāļāđāļāļāļ§āļēāļĄ āļāļāļāļāļēāļāļāļĩāđ gRPC āļĢāļāļāļĢāļąāļāļāļģāļāļāđāļĨāļ°āļāļēāļĢāļāļāļāļŠāļāļāļāļŦāļĨāļēāļĒāļĢāļēāļĒāļāļēāļĢāļāļēāļāđāļāļĨāđāļāđāļāļāđāđāļĨāļ°āđāļāļīāļĢāđāļāđāļ§āļāļĢāđ gRPC āđāļāļāļēāļĢāļŠāļāļĢāļĩāļĄāđāļāļāļāļđāļĨāļāļđāđāļāļĨāđāļāļāđāđāļāļāļŠāļāļāļāļīāļĻāļāļēāļ
HTTP/2 āļĄāļĩāļ§āļīāļāļĩāļāļēāļĢāļāļ§āļāļāļļāļĄāđāļāļĨāļ§āđāļāļĩāđāļāđāļ§āļĒāđāļŦāđāļŠāļēāļĄāļēāļĢāļāļāļ§āļāļāļļāļĄ RAM āļāļĩāđāļāļģāđāļāđāļāđāļāļāļēāļĢāļāļąāļāđāļāļāļĢāđāđāļāđāļāđāļāđāļāļāļāđāļāļĩāđāļĒāļ§āļāļīāļāđāļāđāļāļĒāđāļēāļāđāļĄāđāļāļĒāļģ āļāļāļāļāļēāļāļāļĩāđāļĒāļąāļāļĄāļĩāļāļēāļĢāļāļĩāļāļāļąāļāļŠāđāļ§āļāļŦāļąāļ§āļŠāļģāļŦāļĢāļąāļāļāļĢāļīāļāļēāļĢ gRPC āļāļļāļāļāļĒāđāļēāļāđāļ HTTP/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 āļāļ IP āđāļĨāļ°āļāļāļĢāđāļāđāļāļāļēāļ°
āļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄ gRPC
āļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄ gRPC āļāļĢāļ°āļāļāļāļāđāļ§āļĒāđāļāļĨāđāļāļāļāđ gRPC āđāļĨāļ°āđāļāļīāļĢāđāļāđāļ§āļāļĢāđ gRPC āļāļĢāļīāļāļēāļĢāđāļāļĨāđāļāđāļāļāđ gRPC āļāļļāļāļāļĢāļīāļāļēāļĢāļĄāļĩ stub āļŦāļĢāļ·āļāđāļāļĨāđāļāļĩāđāļŠāļĢāđāļēāļāļāļķāđāļāđāļāļĒāļāļąāļāđāļāļĄāļąāļāļī āļāļķāđāļāļāļĨāđāļēāļĒāļāļąāļāļāļīāļāđāļāļāļĢāđāđāļāļāļāļĩāđāļĄāļĩāļāļĢāļ°āļāļ§āļāļāļēāļĢāļāļēāļāđāļāļĨāļāļĩāđāđāļāđāļāļēāļāļāļĒāļđāđ āđāļāļĨāđāļāļāļāđ gRPC āđāļĢāļīāđāļĄāļāđāļāļāļēāļĢāđāļĢāļĩāļĒāļāļāļąāđāļāļāļāļāđāļāđāļāļĢāļ·āđāļāļāđāļāļĒāļąāļāļāđāļāļāļąāđāļ§āļāļĩāđāļĄāļĩāļāļēāļĢāđāļāļīāļ§āđāļĄāļāļāđāđāļāļ·āđāļāļŠāđāļāļāđāļāđāļāļĒāļąāļāļāđāļāļāļ§āļēāļĄāđāļāļīāļĢāđāļāđāļ§āļāļĢāđ gRPC āļāļēāļāļāļąāđāļ stub āđāļāļĨāđāļāđāļāļāđ gRPC āļāļ°āļŠāđāļāđāļāļĩāļĒāļ§āļĢāļĩāđāļāļĒāļąāļāļŦāļāđāļ§āļĒāđāļ§āļĨāļēāđāļāļĨāđāļāđāļāļāđāđāļĨāļāļąāļĨāļāļāļāļāļĄāļāļīāļ§āđāļāļāļĢāđāđāļĨāļāļąāļĨāļŦāļĨāļąāļāļāļēāļāļāļģāđāļŦāđāļāļēāļĢāđāļāļīāļ§āđāļĄāļāļāđāđāļāđāļāļāļāļļāļāļĢāļĄāđāļāļĒāđāļāđāļāļąāđāļāļāļāļāļāļēāļĢāļāļąāļāđāļĢāļĩāļĒāļāļāđāļāļĄāļđāļĨāļāļāļ Protobuf
āļĢāļ°āļāļāļāļāļīāļāļąāļāļīāļāļēāļĢāđāļāđāđāļāļĢāđāļāļāļāļĨ HTTP/2 āđāļāļ·āđāļāļŠāļ·āđāļāļŠāļēāļĢāļāļąāļāļāļāļĄāļāļīāļ§āđāļāļāļĢāđāđāļāļīāļĢāđāļāđāļ§āļāļĢāđāļāļĩāđāļāļĒāļđāđāļŦāđāļēāļāđāļāļĨ āļĢāļ°āļāļāļāļāļīāļāļąāļāļīāļāļēāļĢāļāļāļāđāļāļīāļĢāđāļāđāļ§āļāļĢāđāļĒāļāļĄāļĢāļąāļāļāđāļāļāļ§āļēāļĄāđāļĨāļ°āđāļĢāļĩāļĒāļāđāļāđāļāļĢāļ°āļāļ§āļāļāļēāļĢ stub āļāļāļāđāļāļīāļĢāđāļāđāļ§āļāļĢāđ āļāļķāđāļāđāļāđ Protobuf āđāļāļ·āđāļāđāļĢāļĩāļĒāļāđāļāđāļāļēāļĢāļāļģāđāļāļīāļāļāļēāļĢāļāļĩāđāđāļŦāļĄāļēāļ°āļŠāļĄāļŦāļĨāļąāļāļāļēāļāļāļāļāļĢāļŦāļąāļŠāļāļēāļĢāļēāļĄāļīāđāļāļāļĢāđāļāļēāđāļāđāļē āļāļēāļāļāļąāđāļāđāļāļĨāđāļāļāļāđāļāļĢāļēāļāļŠāļāļāļĢāđāļāđāļĨāđāļĒāļāļĢāđāļāļ°āđāļāđāļĢāļąāļāļāļēāļĢāļāļāļāļŠāļāļāļāļāļĩāđāđāļāđāļēāļĢāļŦāļąāļŠāļāļēāļāđāļāļīāļĢāđāļāđāļ§āļāļĢāđāļāđāļāļāļąāđāļ§ āļāļēāļĢāļāļģāđāļāļīāļāļāļēāļĢāļāļ°āļŠāđāļāļāļĨāļąāļāđāļāļĒāļąāļāļāļđāđāđāļĢāļĩāļĒāļāļŦāļĨāļąāļāļāļēāļāļāļĩāđāđāļāļĨāđāļāļāļāđ gRPC āđāļāđāļĢāļąāļāļāđāļāļāļ§āļēāļĄāļāļāļāļāļĨāļąāļāđāļĨāļ°āļāļĨāļēāļĒāļāļēāļĢāđāļāļīāļ§āđāļĄāļāļāđāļāļĩāđāļĄāļĩāđāļŦāđ
āļāđāļāļāļĩāļāļāļ gRPC
gRPC āļĄāļĩāļāđāļāļāļĩāļŦāļĨāļēāļĒāļāļĢāļ°āļāļēāļĢāđāļŦāļāļ·āļāļāļĨāđāļāļāļēāļĢāļāļāļāđāļāļ API āļāļ·āđāļāđ gRPC āļĒāļąāļāļāļĢāļąāļāļāļĢāļļāļāļāļēāļĄāđāļāļĢāļāļŠāļĢāđāļēāļ RPC āļāļĩāđāļāļ·āļāļāļĢāļ°āđāļĒāļāļāđāļāļĩāđāđāļāļāđāļāđāļāļāļĩāđāļŠāļļāļāļāļāļāļāļĢāļīāļāļēāļĢ gRPC:
- āļāļēāļĢāđāļĢāļĩāļĒāļāļāļąāđāļāļāļāļāļĢāļ°āļĒāļ°āđāļāļĨāļāļĩāđāļĄāļĩāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāļŠāļđāļ
āļāļēāļĢāđāļāđ Protobuf āđāļĨāļ° HTTP/2 āļāļģāđāļŦāđāļāļĢāļīāļāļēāļĢ gRPC āļĄāļĩāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāļŠāļđāļāļāļķāđāļāļāļķāļ 10 āđāļāđāļēāđāļĨāļ°āļāļēāļĢāļāđāļāļāļāļąāļ API āļāļāļāļāļēāļĢāđāļāđāļāļāļ REST+JSON āļāđāļ§āļĒāļāļēāļĢāđāļāđāđāļāļīāļĢāđāļāđāļ§āļāļĢāđāļāļļāļ āļāļēāļĢāļĄāļąāļĨāļāļīāđāļāļĨāđāļāļāđ āđāļĨāļ°āļāļēāļĢāļāļĩāļāļāļąāļāļŠāđāļ§āļāļŦāļąāļ§ HTTP/2 āļāļķāļāļāļąāļāļĨāļģāļāļąāļāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāļŠāļđāļāļŠāļģāļŦāļĢāļąāļāļāļĢāļīāļāļēāļĢ gRPC āđāļāļāļāļ°āļāļĩāđāļāļēāļĢāļĄāļąāļĨāļāļīāđāļāļĨāđāļāļāđāļāđāļ§āļĒāļāļāļąāļāļāļ§āļēāļĄāļĨāđāļēāļāđāļēāļāļāļ head-of-line āđāļāđāļāļēāļĢāļāļļāļāđāļāļīāļĢāđāļāđāļ§āļāļĢāđāļāļģāđāļŦāđ HTTP/2 āļŠāļēāļĄāļēāļĢāļāļāļļāļāđāļāļ·āđāļāļŦāļēāļāļēāļāđāļāļīāļĢāđāļāđāļ§āļāļĢāđāđāļāļĒāļąāļāđāļāļĨāđāļāđāļāļāđāļāđāļāļāļāļĩāđāļāļ°āļāļģāđāļāđāļ āļāđāļāļāļ§āļēāļĄāđāļāđāļĢāļąāļāļāļēāļĢāļāļĩāļāļāļąāļāļāļĒāđāļēāļāļĄāļĩāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāļĄāļēāļāļāļķāđāļāđāļāļĒāđāļāđ HTTP/2 āļŠāđāļāļāļĨāđāļŦāđāđāļŦāļĨāļāđāļĢāđāļ§āļāļķāđāļāļāđāļ§āļĒāļāļĢāļīāļāļēāļĢ gRPC
- āļŠāļāļĢāļĩāļĄāļĄāļīāđāļ
āļāļģāļāļāļīāļāļēāļĒāļāļĢāļīāļāļēāļĢāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļŠāļāļĢāļĩāļĄāļāļĢāļīāļāļēāļĢ gRPC āļĄāļĩāļŦāļĨāļąāļāļāļēāļĢāļŠāļāļĢāļĩāļĄāđāļāļāđāļāļĨāđāļāđāļāļāđāļŦāļĢāļ·āļāđāļāļīāļĢāđāļāđāļ§āļāļĢāđāļŠāļīāđāļāļŠāļļāļāļāļĒāļđāđāđāļĨāđāļ§ āļāļēāļĢāļŠāļĢāđāļēāļāđāļāļĨāđāļāļāļāđ gRPC āđāļĨāļ°āļāļĢāļīāļāļēāļĢāļŠāļāļĢāļĩāļĄāļĄāļīāđāļāļāļģāđāļāđāļāđāļēāļĒāļāļķāđāļāļāļĒāđāļēāļāļĄāļēāļ
- āļāļēāļĢāļŠāļĢāđāļēāļāļĢāļŦāļąāļŠ
āļāļēāļĢāļŠāļĢāđāļēāļāđāļāđāļāļŠāļģāļŦāļĢāļąāļāđāļāļĨāđāļāļāļāđ gRPC āđāļĨāļ°āđāļāļĢāđāļāļĢāļĄāđāļāļīāļĢāđāļāđāļ§āļāļĢāđ gRPC āđāļāđāļāļāļāļāđāļāļĢāļ°āļāļāļāļŦāļĨāļąāļāļāļāļāđāļāļ§āļāļēāļāđāļ§āđāļ gRPC āļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļŠāļĢāđāļēāļāđāļāđāļāļāļēāļāđāļāļĨāđ . gRPC.proto āđāļāđāļāļāļĄāđāļāđāļĨāļāļĢāđ . .protoc āļĢāļđāļāđāļāļ Protobuf āļāļđāļāļāļ§āļāļāļļāļĄāļāđāļēāļāļāļēāļĢāļŠāļĢāđāļēāļāļĢāļŦāļąāļŠāđāļ gRPC āļāļķāđāļāđāļāđāđāļāļ·āđāļāļāļģāļŦāļāļāļāļąāđāļāļĢāļđāļāđāļāļāļāđāļāļĄāļđāļĨāđāļĨāļ°āļāļļāļāļŠāļīāđāļāļŠāļļāļāļāļāļāđāļāļāļāļĨāļīāđāļāļāļąāļ āļŠāļēāļĄāļēāļĢāļāļŠāļĢāđāļēāļ stubs āđāļāļĢāļ·āļāļāđāļēāļĒāļāļąāđāļāđāļāļĨāđāļāļāļāđāđāļĨāļ°āđāļāļĢāļāļāļĢāļ°āļāļđāļāļāļąāđāļāđāļāļīāļĢāđāļāđāļ§āļāļĢāđ āļāļķāđāļāļāđāļ§āļĒāļĨāļāļĢāļ°āļĒāļ°āđāļ§āļĨāļēāļāļĩāđāļāļģāđāļāđāļāđāļāļāļēāļĢāļāļāļāđāļāļāđāļāļĢāđāļāļĢāļĄāļāđāļ§āļĒāļāļĢāļīāļāļēāļĢāļāļĩāđāļŦāļĨāļēāļāļŦāļĨāļēāļĒāđāļāļāļĢāļīāļāļēāļĢ gRPC
- āļāļēāļĢāļāļģāļāļēāļāļĢāđāļ§āļĄāļāļąāļ
āļĢāļ°āļāļāđāļĨāļ°āļ āļēāļĐāļēāļāļēāļĢāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāļāļģāļāļ§āļāļĄāļēāļ āđāļāđāļ Java, Ruby, Go, C# āđāļĨāļ°āļāļ·āđāļāđ āđāļāđāļĢāļąāļāļāļēāļĢāļŠāļāļąāļāļŠāļāļļāļāđāļāļĒāļāļĢāļąāļāļĒāļēāļāļĢāđāļĨāļ°āđāļĨāļāļĢāļēāļĢāļĩ gRPC āļāđāļ§āļĒāļ āļēāļĐāļēāļāļēāļĢāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāđāļŦāļĨāđāļēāļāļĩāđ āļāļąāļāļāļąāļāļāļēāļŠāļēāļĄāļēāļĢāļāļŠāļĢāđāļēāļāđāļāļāļāļĩāđāļĄāļĩāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāđāļāļāļāļ°āļāļĩāđāđāļāđāļāļ§āļēāļĄāđāļāđāļēāļāļąāļāđāļāđāļāđāļēāļĄāđāļāļĨāļāļāļāļĢāđāļĄāļāļąāļ gRPC āļāđāļāļāļāļāļāļāļļāļāļĢāļđāļāđāļāļāļāļēāļĢāđāļāļīāļāļŠāļēāļĒāđāļāļāļēāļĢāļĩāļāļāļ Protobuf āđāļĨāļ°āļāļēāļĢāļŠāļĢāđāļēāļāđāļāđāļāļāļĩāđāļĄāļĩāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāļŠāļģāļŦāļĢāļąāļāļĢāļ°āļāļāđāļāļ·āļāļāļāļąāđāļāļŦāļĄāļ
- āļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒ
āļĄāļąāđāļāđāļāđāļāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāļāļāļ API āđāļ gRPC āđāļāļĒāđāļāđ HTTP/2 āļāđāļēāļāđāļāļŠāļāļąāļāļāļĩāđāđāļāđāļēāļĢāļŦāļąāļŠ TLS āļāļēāļāļāđāļāļāļēāļāļāļķāļāļāļĨāļēāļĒāļāļēāļ gRPC āļŠāđāļāđāļŠāļĢāļīāļĄāļāļēāļĢāđāļāđ SSL/TLS āļŠāļģāļŦāļĢāļąāļāļāļēāļĢāđāļāđāļēāļĢāļŦāļąāļŠāļāđāļāļĄāļđāļĨāđāļĨāļ°āļāļēāļĢāļĢāļąāļāļĢāļāļāļāļ§āļēāļĄāļāļđāļāļāđāļāļāļĢāļ°āļŦāļ§āđāļēāļāđāļāļīāļĢāđāļāđāļ§āļāļĢāđāđāļĨāļ°āđāļāļĨāđāļāļāļāđ gRPC
- āļāļĨāļāļĨāļīāļāđāļĨāļ°āļāļēāļĢāđāļāđāļāļēāļ
āđāļāļ·āđāļāļāļāļēāļ gRPC āđāļāđāļāļāļēāļāđāļĨāļ·āļāļ RPC āļāļĩāđāļŠāļĄāļāļđāļĢāļāđ āļāļķāļāļāļģāļāļēāļāđāļāļĒāđāļĄāđāļāļīāļāļāļąāļāļāļąāļāļĢāļ°āļāļāđāļĨāļ°āļ āļēāļĐāļēāļāļĩāđāļŦāļĨāļēāļāļŦāļĨāļēāļĒ āļāļāļāļāļēāļāļāļĩāđ gRPC āļĒāļąāļāļĄāļĩāđāļāļĢāļ·āđāļāļāļĄāļ·āļāļāļĩāđāļĒāļāļāđāļĒāļĩāđāļĒāļĄ āđāļāļĒāļĄāļĩāļāļēāļĢāļŠāļĢāđāļēāļāļĢāļŦāļąāļŠāļŠāļģāđāļĢāđāļāļĢāļđāļāļāļĩāđāļāļģāđāļāđāļāļāļģāļāļ§āļāļĄāļēāļāļāđāļ§āļĒāļāļāđāļāļ āļāļāļ°āļāļĩāđāļ§āļīāļĻāļ§āļāļĢāļŠāļēāļĄāļēāļĢāļāļĄāļĩāļŠāļĄāļēāļāļīāļāļąāļāļāļēāļĢāļāļģāļāļēāļāļŦāļĨāļąāļāđāļāđāļĄāļēāļāļāļķāđāļ āđāļāļ·āđāļāļāļāļēāļ gRPC āļāļĢāļ°āļŦāļĒāļąāļāđāļ§āļĨāļēāđāļāđāļĄāļēāļ
āļāđāļāđāļŠāļĩāļĒāļāļāļ gRPC
āđāļĄāđāļ§āđāļēāđāļĢāļēāļāļ°āļŦāļ§āļąāļāļ§āđāļēāļāđāļāļāļāļāļĢāđāļāļ gRPC āļāļ°āđāļāđāļĢāļąāļāļāļēāļĢāđāļāđāđāļāđāļāļāļĩāđāļŠāļļāļ āđāļāđāļāđāļāđāļāđāļŦāđāđāļāļīāļāļāļąāļāļŦāļēāļāļąāļāļāļēāļĢāđāļāđāļāļēāļāđāļāļāļāļ°āļāļĩāđ āļāđāļāđāļŠāļĩāļĒāļāļēāļāļāļĢāļ°āļāļēāļĢāļāļāļ gRPC āļāļļāļāļāļ§āļĢāļāļĢāļēāļāļāļ·āļ:
- āļāļēāļāļ§āļļāļāļīāļ āļēāļ§āļ°
āļāļēāļĢāļāļąāļāļāļēāđāļāļāđāļāđāļĨāļĒāļĩāļāļēāļāđāļāđāļāļāļļāļāļŠāļĢāļĢāļāļŠāļģāļāļąāļāđāļāļāļēāļĢāļāļģāđāļāđāļāđ āļāļĩāđāļāļąāļāđāļāļāđāļāļāļāļ°āļāļĩāđāđāļāđ gRPCGraphQL āļāļķāđāļāđāļāđāļāļŦāļāļķāđāļāđāļāđāļāļ·āđāļāļāļĢāđāļ§āļĄāļāļēāļāļāļāļ gRPC āļĄāļĩāļāđāļāļāļ§āļēāļĄāļāđāļāļŦāļēāļĄāļēāļāļāļ§āđāļē 14k āļāļ StackOverflow āđāļāļāļāļ°āļāļĩāđ gRPC āļĄāļĩāđāļāļĩāļĒāļāļāđāļģāļāļ§āđāļē 4k āđāļĨāđāļāļāđāļāļĒāđāļāļāļāļ°āļāļĩāđ āļāļļāļĄāļāļ gRPC āļāļēāļāļāļ§āļēāļĄāļĢāļđāđāđāļāļĩāđāļĒāļ§āļāļąāļāđāļāļ§āļāļēāļāļāļāļīāļāļąāļāļīāļāļĩāđāļāļĩāļāļĩāđāļŠāļļāļ āļ§āļīāļāļĩāđāļāđāđāļ āđāļĨāļ°āļāļ§āļēāļĄāļŠāļģāđāļĢāđāļāđāļāļ·āđāļāļāļāļēāļāđāļĄāđāļĄāļĩāļāļ§āļēāļĄāļāđāļ§āļĒāđāļŦāļĨāļ·āļāļāļēāļāđāļāļĢāđāļāļĢāļĄāđāļĄāļāļĢāđāļĄāļēāļāļāļąāļāļŠāļģāļŦāļĢāļąāļ HTTP/2 āļāļĨāļāļāļāļāļāļąāļāđāļāļāļĢāđāđāļāļĢāđāļāļāļāļĨāļ āļēāļĒāļāļāļ Google āļāļĒāđāļēāļāđāļĢāļāđāļāļēāļĄ āđāļāļāļāļ°āļāļĩāđāļāļļāļĄāļāļ gRPC āļāļĒāļēāļĒāļāļąāļ§āđāļĨāļ°āļāļķāļāļāļđāļāļāļąāļāļāļąāļāļāļēāđāļŦāļĄāđāđ āļāļļāļĄāļāļāļāļĩāđāļāđāļāļ°āļāļąāļāļāļēāđāļāđāļāļāļĩāđāļŠāļļāļ
- āļāļēāļĢāļŠāļāļąāļāļŠāļāļļāļāđāļāļĢāļēāļ§āđāđāļāļāļĢāđāļāļģāļāļąāļ
āđāļāļ·āđāļāļāļāļēāļāļāļąāļāļāļļāļāļąāļāđāļĄāđāļĄāļĩāđāļ§āđāļāđāļāļĢāļēāļ§āđāđāļāļāļĢāđ gRPC āļāļĩāđāļŠāļēāļĄāļēāļĢāļāļāļąāļāļāļēāļĢāđāļāļĢāļĄ HTTP/2 āđāļāđ āļāļļāļāļāļķāļāđāļĄāđāļŠāļēāļĄāļēāļĢāļāđāļĢāļĩāļĒāļāļāļĢāļīāļāļēāļĢ gRPC āļāļēāļāđāļāļĢāļēāļ§āđāđāļāļāļĢāđāđāļāđāļāļĒāđāļēāļāļĄāļĩāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļ āđāļāļ·āđāļāļāļāļēāļāđāļ§āđāļ gRPC āļāļķāđāļāļāļĒāļđāđāļāļąāļ HTTP/2 āđāļāđāļāļŦāļĨāļąāļ āļāļąāļāļāļąāđāļ āļāļļāļāļāđāļāļāđāļāđāļāļĢāđāļāļāļāļĩāļāļąāļ gRPC āļāļķāđāļāļĄāļĩāļāđāļāđāļŠāļĩāļĒāļŦāļĨāļēāļĒāļāļĢāļ°āļāļēāļĢ
- āļĄāļāļļāļĐāļĒāđāđāļĄāđāļŠāļēāļĄāļēāļĢāļāļāđāļēāļāđāļāđ
āđāļāļĨāđ Protobuf āđāļĄāđāđāļŦāļĄāļ·āļāļāļāļąāļ XML āđāļĨāļ° JSON āđāļāļ·āđāļāļāļāļēāļāļāđāļāļĄāļđāļĨāļāļđāļāļāļĩāļāļāļąāļāđāļāđāļāļĢāļđāļāđāļāļāđāļāļāļēāļĢāļĩ āļāļąāļāļāļąāļāļāļēāļāļāļāļāđāđāļ§āļĢāđāļāđāļāļāđāļāđāđāļāļĢāļ·āđāļāļāļĄāļ·āļāđāļāļīāđāļĄāđāļāļīāļĄ āđāļāđāļ āđāļāļĢāđāļāļāļāļĨāļāļēāļĢāļŠāļ°āļāđāļāļāļāļāļāđāļāļīāļĢāđāļāđāļ§āļāļĢāđāđāļĨāļ°āļāļĢāļāļĄāļāđāļāļģāļŠāļąāđāļ gRPC āđāļāļ·āđāļāļāļĢāļ°āđāļĄāļīāļāđāļāļĒāđāđāļŦāļĨāļ āļāļģāđāļāļīāļāļāļēāļĢāđāļāđāđāļāļāļąāļāļŦāļē āđāļĨāļ°āļŠāļĢāđāļēāļāđāļāļāļŠāļāļāļāļēāļĄāļāđāļ§āļĒāļāļāđāļāļ
- āđāļŠāđāļāđāļāđāļāļāļēāļĢāđāļĢāļĩāļĒāļāļĢāļđāđāļāļĩāđāļŠāļđāļāļāļąāļ
āļāļ°āđāļāđāđāļ§āļĨāļēāļŠāļąāļāļāļĢāļđāđāđāļāļ·āđāļāļāļģāļāļ§āļēāļĄāļāļļāđāļāđāļāļĒāļāļąāļāđāļāļĢāđāļāļāļāļĨāļāļąāļāđāļāļāļĢāđāđāļĨāļ°āļāđāļāļāļāļ§āļīāļāļĩāļāļēāļĢāļĢāļąāļāļĄāļ·āļāļāļąāļāđāļĢāļāđāļŠāļĩāļĒāļāļāļēāļ HTTP/2 āļāļķāđāļāļāļĢāļāļāļąāļāļāđāļēāļĄāļāļąāļ REST āđāļĨāļ° GraphQL āļāļķāđāļāļāļąāđāļāļŠāļāļāļ§āļīāļāļĩāļāļĩāđāđāļāđ JSON āđāļāđāļāļŠāđāļ§āļāđāļŦāļāđ
AppMaster āļāđāļ§āļĒāđāļāđāļāļĒāđāļēāļāđāļĢ?

No-code āļāļģāļĨāļąāļāđāļāļĨāļĩāđāļĒāļāļ§āļīāļāļĩāļāļĩāđāļāļđāđāļāļāļāļđāļāļēāļĢāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄ No-code āļāļģāđāļŦāđāļāļđāđāļāļāļŠāļēāļĄāļēāļĢāļāđāļĢāļĩāļĒāļāļĢāļđāđāđāļĨāļ°āļŠāļĢāđāļēāļāļāļāļāļāđāđāļ§āļĢāđāđāļāđāđāļĢāđāļ§āļāļķāđāļāļāđāļ§āļĒ āļāļēāļĢāļŠāļĢāđāļēāļāļĢāļŦāļąāļŠ āļāļēāļĢāļŠāļĢāđāļēāļāđāļāđāļāļŠāļģāļŦāļĢāļąāļāđāļāļāļāļĨāļīāđāļāļāļąāļāļāļāļāļāļļāļāļāļąāđāļāļāđāļēāļĒāļāļ§āđāļēāđāļāļĒāđāļāđāđāļāļĨāļāļāļāļĢāđāļĄ no-code āđāļāđāļ AppMaster āđāļĄāđāļĄāļĩāļāļąāļāļŦāļēāļāļ§āļēāļĄāđāļāđāļāđāļāđāļēāļāļāļ āđāļāļ·āđāļāļāļāļēāļāļāļēāļĢāļŠāļĢāđāļēāļāļĢāļŦāļąāļŠāđāļāđāļĢāļąāļāļāļēāļĢāļāļļāđāļĄāļāļĢāļāļ āđāļĨāļ°āļĢāļŦāļąāļŠāļāļĩāđāļāļļāļāļŠāļĢāđāļēāļāļāļ°āđāļāđāļāļāļāļāļāļļāļāđāļāđāđāļāļĩāļĒāļāļāļđāđāđāļāļĩāļĒāļ§ āļāļļāļāļŠāļēāļĄāļēāļĢāļāļŠāļĢāđāļēāļāđāļāļāļāļĨāļīāđāļāļāļąāļāđāļāļĨāđāļāļāļāđāđāļĨāļ°āđāļāļīāļĢāđāļāđāļ§āļāļĢāđāđāļāđāđāļĢāđāļ§āđāļĨāļ°āļāđāļēāļĒāļāļķāđāļāļāđāļ§āļĒ AppMaster
āđāļāļĨāļāļāļāļĢāđāļĄāļāļēāļĢāļŠāļĢāđāļēāļāđāļāļ no-code āļāļāļ AppMaster āļāđāļ§āļĒāđāļŦāđāļāļąāļāļāļąāļāļāļēāđāļāđāđāļāļĢāđāļāļāļāļĨ gRPC āđāļāļ·āđāļāļŠāļĢāđāļēāļāļāļģāļāļāļĢāļ°āļŦāļ§āđāļēāļāļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄāđāļĄāđāļāļĢāđāļāļāļĢāđāļ§āļīāļŠāļŠāđāļ§āļāļŦāļĨāļąāļ āđāļāļāļĩāļŦāļāđāļē āđāļĢāļēāļāļ°āļāļĒāļēāļĒāļāļēāļĢāļĢāļāļāļĢāļąāļ gRPC āđāļāļĒāļĢāļ§āļĄ API āđāļāđāļēāļāļąāļāļāļąāđāļ gRPC Web āđāļĨāļ° gRPC Mobile applications
āļāļāļŠāļĢāļļāļ
āđāļĄāđāļ§āđāļēāļāļĢāļīāļāļēāļĢ gRPC āļāļ°āļĄāļĩāļāļĢāļ°āđāļĒāļāļāđāļŦāļĨāļēāļĒāļāļĒāđāļēāļāļāļĩāđāļāļģāđāļŦāđāļāļķāļāļāļđāļāđāļāļŠāļģāļŦāļĢāļąāļāļāļļāļĢāļāļīāļāđāļĨāļ°āļāļąāļāļāļąāļāļāļē āđāļāđāļāđāļēāļĒāļāļĩāđāļŠāļļāļāđāļĨāđāļ§ āļāļēāļĢāļāļąāļāļŠāļīāļāđāļāđāļāđāļāļĢāļīāļāļēāļĢ gRPC āđāļŦāļāļ·āļāļāļĢāļīāļāļēāļĢāļāļ·āđāļāđ āđāļāđāļ REST āļŦāļĢāļ·āļ SOAP āļāļķāđāļāļāļĒāļđāđāļāļąāļāđāļāļāļāļĨāļīāđāļāļāļąāļāļāļāļāļāļļāļ āđāļĄāđāļ§āđāļēāļāļāļāļāđāđāļ§āļĢāđāļāļēāļāļāļąāļ§āļāļ°āļĄāļĩāļāļĢāļ°āđāļĒāļāļāđāļāđāļēāļāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāļŠāļđāļāļāļąāļ gRPC āđāļāđāļāļāļāļāđāđāļ§āļĢāđāļāļ·āđāļāđ āļāļēāļāđāļŦāļĄāļēāļ°āļŠāļĄāļāļąāļāļāļēāļāđāļĨāļ·āļāļāļāļ·āđāļāļĄāļēāļāļāļ§āđāļē āļāļļāļāļāļ§āļĢāđāļāđāļēāđāļāļāđāļāđāļŠāļĩāļĒāđāļĨāļ°āļāđāļāļāļĩāļāļāļāļāļĢāļīāļāļēāļĢ gRPC āđāļĨāļ°āļāļąāļāļŠāļīāļāđāļāļ§āđāļēāļāļ°āđāļŦāļĄāļēāļ°āļāļąāļāļāļļāļāļŦāļĢāļ·āļāđāļĄāđ


