ืื ื ืืืื ืฉืืืืชืจืช ืืจืื ืืชืืืื ืืจืืื - "ืืื, ืื ืืชืืื ืฉืื..." ืืื ืืจืฉื ืื ืืืืื ืืช ืชืฉืืืช ืืืื ืืืฉื 5-10 ืืงืืช, ืืืฉืชืื ืื ืืืืื ืืช ืฆืืคืืืชืืื.
ืืื ื ืืืืืจ ืืืื ืืืืงืื: ื ืืงืืช ืืืืจื ืกืืจืืืืืืคืืช ืืืชืืื "ืืืขื" ืืืคืขืชื ืฉื ืกืืจืืืืืืค ืื. ืื ื ืืงืืื ืฉืื ืืืคืฉืจ ืื ืืืกืชืื ืขื ืืืืืจื ืืคืจืืืืืช ืืืืืคื ื ืชืื ืื ืืคืจืืืงืืื ืฉืื ืืืืืืช ืืืฉื.
ืืื ืฉืืืื ืืจืืจ ืื ืื RPC, ืื ื ืืฆืืข ืืฉืงืื ืืช ืืชืงื
ืืงืฉืืช RPC ืื ืืืืจืืช ืืืขืืืืช ืืืชืจ ืืืืืื ืฉืื ืืืคืฉืจืืช ืื ืืืฆืข ืืงืฉืืช ืืฆืืื.
ืืขื ืืื ืืื ืฉื-RPC ืืชื ืืืื ืืงืจืื ืืืื ืคืจืืฆืืืจืืช ืื-ืืื ืืช ืืืงืฉื ืืืช. ืืืืืื, ืฆืืจ ืืฉืชืืฉ, ืืืกืฃ ืื ืืืืืืจ ืืืืืชื ืืงืฉื ืชืจืฉืื ืื ืืื ื ืืฉืืื. ืจืง ืืงืฉื ืืืช, ืืืื ืชืืขืืช!
ืืืื, ืื ืืฉ ืื ืจืง ืฆืืืช ืืืืจื ืืื, ืื ืืืจืื ืืืืจ ืืืชืจ ืขื ืืงืฉืช ืืฆืืื. ืืืืืื ืฉืฉืืืฉ ืืงืฉืืช REST ืืืจืฉื ืคื ืฉืืืฉื ืืืชืจ ืืฉืืืื ืืฆืืืช ืืื ืืื ืืืฆืืจ ืืืืืจืื.
ืฉืืื ืื ืฉืืืงืฉื ืืจืืฉืื ื ืืืงืจื ืฉื REST ืืืืืช ืืืืืืจ ืืช ืืืื ืืืฉืชืืฉ ืขื ืื ืช ืฉืืืืฆืขื ืืงืฉืืช ืขืืงืืืช. ืื ืฉืื ืืฉืคืืข ืืจืขื ืขื ืืชืืฆืื ืืืืืืช.
ืืื ื ืืชื ืืืฆืื ืชืฉืชืืืช ืืืื ืจืง ืืคืชืจืื ืืช ืคื ืืืืื ืืืืจืืื ืื. ืืืืฆื ืืืจืื, ืืคืจืืืงืื WEB ืงืื ืื. ืืื ืคืชืจืื ืืช WEB ืื ืืื ืืื, ืืืคืืื ืืืื ืฉื ืงืจืืื HighLoad, ืื ืืืื ืืื ืืช. ืืชืฉืชืืช ืฉืืื ืืืืืช ืืขืืื ืืงืจืืืจืืื ืื ืฉื ืืืื ืืช ืืขืืืก ืืืืืื. ืืืชืืื ื ืืฉืชื ื.
ืขืจืืฆื ืคืขืืืืช ืชืฉืชืืช ืืืืชื ืชืจืืืฉ ืืกืืื ืื ืืืจืืง. ืฉืืื ืื ืืื RPC ืืชื ืื ืขืืฉืื. ืืืงืฉื ืืฉืชืืฉืช ืืชืฉืชืืช ืขื ืจืื ืืืช ืืืื ืืืืืืื ืืขื ืืงืฆื ืืืืืจื. ืืขืื REST ืขืืืื ืืคืกืื ืืืงืฉื ืืจืืฉืื ื, ืืื ืืคืฆื ืขื ืืืื ืืืืื ืืืืฆืขืืช ืืชืฉืชืืช ืืืื.
ืืกืคืืง ืืืืื ืืชืกืจืื ืื ืฉืชื ืืงืฉืืช ืืขืฉืจื, ืืื, ื ืืื, ืืืฉ ืื ืขืฉืจ... ืืืชืฉืืื ืืฉืืื "ืื ืื ืฆื ืขืืฉืื?" ืืืคื ืืืืืช ืื ืืจืืจ.
ืื ื ืืฆืืข ืืืกืชืื ืืคืืื ืืืชืจ ืจืื ืขื ืืืขืื. ืืชืจืฉืื ืืจืื ืืืฆื ื ืขืฉื ืฉืืืืฉ ืืขืจืืฆื ืชืฉืชืืช, ืื ืชืฉืชืืช ืืื ื ืืืืืืช ืืขืจืืฆืื. ืืจืืื ืืฉืื ืืชืฉืชืืช ืืขืืืก ืืืื ืืื ืืืืื ืื. ืืืื ื ืงืื ืขืืฉืื ืกืื ืฉื ืืคืฅ ืืฉืชืืฉ. ืฉืื ืืฉืื. ื ื ืื 32 ืคืขืืื.
ืจืื ืืืฆื ืชืฉืชืืช RPC ืืฉืชืคืจื ืืืืคื ืืฉืืขืืชื ืืื ืืขืืื ืืืจืืฉืืช ืฉื ืขืืืก ืืืื. ืืขื ืืื ืืื ืฉ-REST ืืฉืชืืฉ ืืืืื ืืขืืฆืื ืฉื ืคืจืืืืงืื ื-HTTP, ืื ืืืื ื-RPC. ืืชืจืฉืื ืืืขืื, ืืื ืื ืืชืืืฉ ืืืืฆืขืืช ืฉืืืช ืืืงืฉื - GET.
ืืฉืืืืช HTTP, ืืื ืืืชืจ, ืืฉ ืืกืืจืืืืืช ืฉืืืจื ืืืืืื. ืชืืื ืืืฆืื ืืืชื ืืชืืขืื ืืืชืืืช
ืืชืืฆืื ืืื, RPC ืืื ื ืืกืืื ืืืฉืชืืฉ ืืืขืืืืช ืืืืืื ื ืชืฉืชืืช. ืื ืืืืื ืืฆืืจื "ืืืืื" ืืืืื ื ืชืืื ื. ืืชืจืฉืื ืืฆืื ืืช Redis ืืชืคืงืื ืื. ืืืืื ืืชืืื ื, ืืชืืจื, ืืืจืฉ ืืืืคืชื ืืืืกืืฃ ืฉืืืช ืงืื ื ืืกืคืช ืืฉืื ืืืื ื ืืืจืื ืืืจืืืืงืืืจื.
ืืขืช ื ืกืคืืจ ืืื ืืงืฉืืช REST ื-RPC "ืืืืืื" ืืชืฉืชืืช ืื ืืืงืช?
ืืงืฉืืช
ืชืืืช ืืืืจ ื ืื ืก
ืืืืืจ
ื-DBMS
ืืืืืื ืจื (Redis)
ืกื ืืื
REST
1 / 32 *
1
1
0
3 / 35
RPC
32
32
1
31
96
ืืืฉืืืื ืืชืื ืืช ืืจืืฉืื ื, ืืืืื ืืืื. ืืขืช ืืชืืจืจ ืืืชืจืื ืฉื REST. ืืื ืื ื ืืฆืืข ืื ืืขืฆืืจ ืฉื. ืืชืฉืชืืช ืฉืคืืชืื ืืืืืช CDN. ืืขืชืื ืงืจืืืืช ืื ืื ืคืืชืจ ืืช ื ืืฉื ืืชืืืืืืช ืขื ืืชืงืคืืช DDoS ื-DoS. ืื ืื ื ืืงืืืื:
ืื ืืืงืื ืฉืื ืืืืจืื ื ืืื ืืืฉ ืืจืืขืื ืขืืืจ RPC. RPC ืคืฉืื ืื ืืกืืื ืืืืฆืื ืืช ืขืืืก ืืขืืืื ื-CDN. ืื ืื ื ืืืืืื ืืกืืื ืจืง ืขื ืืขืจืืืช ืืื ืืืชืืืื ืขื ืืชืงืคืืช.
ืืื ืืคืฉืจ ืืกืืื ืืื? ืืฉืื, ืื. ืืฉืืืืช HTTP, ืืืืืจ ืืขืื, ืืฉ "ืงืกื" ืืฉืืื. ืืื ืืืื ืฉืืืช GET ื ืืฆืืช ืืฉืืืืฉ ื ืจืื ืืืื ืืจื ื. ืฉืืื ืื ืฉืฉืืื ืื ืืกืืืืช ืืืฉืช ืืคืืกืช ืชืืื, ืืื ืืกืืืืช ืืืืืืจ ืชื ืืื ืฉืจืืืื ืชืฉืชืืช ืืืืืื ืืคืจืฉ ืืคื ื ืืขืืจืช ืืฉืืืื ืืงืื ืฉืืื ืืื ืืืื. ืื ืื ืืืคืฉืจ ืื ืืืฆืืจ ืชืฉืชืืืช ืืืืฉืืช ืื ืืชื ืืช ืื ืืืื ืฉืืืืืืช ืืืชืืืื ืขื ืืจืืื ืืืืืื ืืืืช ืฉื ืืงืฉืืช. ืืื ื-RPC ืืชืขืืืื ืืืฉืืื ืืื...
ืื ืืื ืืืืชืืก ืฉืืงืฉืืช ืืฆืืื (RPC) ืืืืจืืช ืืืชืจ ืืื ืื ืื ืืชืืฉื? ืืืืคื ืืืฉื, ื ืจืื ืื ืฉืจืื ืืคืจืืืงืืื ืคืฉืื ืื ืืืืขืื ืืจืืช ืคืืชืื ืฉืื REST ืืกืืื ืืืจืืืช ืืช ืืืื. ืืชืจื ืืื, ืืคืจืืืงืืื ืงืื ืื, ืืื ืืืื ืืืชืจ ืืืจืืืช ืืช ืืืืืฉืืช ืฉืื.
ืืืืืจื ืฉื REST ืื RPC ืืื ื ืืืืจื ืืจืฆืื ืฉื ืืื ืืคืจืืืงื. ืืืืจื ืื ืืืืืช ืืขืืื ืืืจืืฉืืช ืืคืจืืืงื. ืื ืคืจืืืงื ืืกืืื ืืกืืื ืื ืื ืฉืืื ืืืืช ืืืื ืืชืื REST, ืืืื ืืืืช ืฆืจืื ืืช ืื, ืื REST ืชืืื ืืืืจื ืืฆืืื ืช.
ืืื ืื, ืืื ืืงืื ืืช ืื ืืืชืจืื ืืช ืฉื REST, ืืชื ืฆืจืื ืืฉืืืจ ืืืืื devops ืืคืจืืืงื ืืื ืืืืืื ืืช ืืชืฉืชืืช ืืืืืจืืช, ืื ืืืื ืื ืื ืืช ืืชืฉืชืืช, ืืจืืืืงื ืฉืืชืื ื ืืช ืื ืืฉืืืืช ืฉื ืฉืืจืืช WEB... ืืืคืจืืืงื , ืืืงืืื, ืืืืจ ืฉืืืฉ ืืืืืืช ืืจืืจืื ื ืืืื... ืื ื ืืืืชื ื ืฉืืจ ืขื RPC, ืื... ืืคืจืืืืงืื ืืื ืืืชืจ ืชืืขืืชื ื. ืื ืื ืืืจืืฉ ืืืข ืืขืืืง ืืืฆื ืืืืื ืื ืืชืฉืชืืืช ืขืืืืื, ืืื ืืืงื ืืช ืืืคืชื ืืงืจืืืืช ืคืฉืืืืช ืืืืื ืืช ืืืืืืื ืฉืืื ืฆืจืื. ืืขืกืง ืืฉืื.
ืืงืฉืืช RPC ืืืื ืืช ืืืชืจ ืืืืืื ืฉืื ืืืืืืช ืืืฆืข ืืงืฉืืช ืืฆืืื ืืชืื ืขืกืงื ืืืช
ืชืืื ื ืื ืฉื RPC ืืื ืืชืจืื ืืืืืง, ืืืืืื ืงื ืืฉืืืจ ืขื ืขืงืืืืช ืืกื ืื ืชืื ืื. ืืื ืขื REST ืื ื ืืื ืืืชืจ ืืืืชืจ ืืกืืื. ืืงืฉืืช ืขืฉืืืืช ืืืืืข ืืืืคื ืื ืขืงืื ืืฆืืชืื ืขืืจืคืืื ืฉืื ืื.
ื"ืืืกืจืื" ืืื ืฉื REST ืืื ืืฆื ืืฉื ื ืฉื ืืืชืจืื ืฉืื ืฉืชืืืจ ืืขืื - ืืืืืืช ืืืฉืชืืฉ ืืืขืืืืช ืืื ืืฉืืื ืืชืฉืชืืช. ืื ืืชืฉืชืืช ืืชืืื ื ืช ืืฆืืจื ืืจืืขื, ืืขืื ืืืชืจ ืื ืืืจืืืืงืืืจื ืฉื ืืคืจืืืงื ืืืกื ืื ืชืื ืื ืืคืจื ืืชืืื ื ืืช ืืฆืืจื ืืจืืขื, ืื ืื ืืืืช ืืื ืืืื.
ืืื ืืื ืืงืฉืืช ืืฆืืื ืืืื ืืช ืืคื ืฉืื ื ืจืืืช? ืืืื ื ืกืชืื ืขื ืืงืจื: ืื ืื ื ืืืฆืจืื ืืฉืชืืฉ, ืืขืฉืืจืื ืืช ืืคืจืืคืื ืฉืื ืืชืืืืจ ืืืฉืื ืืฉืืืืื ืื SMS ืขื ืกืื ืืืฉืืืช ืืจืืฉืื. ืึธืึตื. ืฉืืืฉ ืฉืืืืช ืืืงืฉืช ืืฆืืื ืืืช.
ืืื ื ืชืืื ื ืืชืจืฉืื. ืืื ืืฆืื ืชืฉืชืืช ืขื ืืืื ืืื ืฉื ืืืื ืืช ืืืืื. ืืฉื ื ืฉื ื ืขืจืืฆื ืชืงืฉืืจืช ืขืฆืืืืื ืขื ืฉืขืจื SMS. ืืื... ืื ืื ืื ื ืจืืืื? ืืขืช ืฉืืืืช ืืืืขืช SMS ืืชืจืืฉืช ืฉืืืื 503 - ืืฉืืจืืช ืืื ื ืืืื ืืืืคื ืืื ื. ืื ืฉืืืืช SMS ืืจืืื ืืืงืฉืช ืืฆืืื, ืืื ืืฉ ืืืืืืจ ืืช ืื ืืืงืฉื ืืืืืจ. ืคืขืืืืช ื-DBMS ืืืืืืืช. ืืืงืื ืืงืื ืฉืืืื.
ืื ืืกืืื ืืื ืืื ืืืจืื. ืื ืฉืืืงืฉื ืชืคืืข ืืืืชื ืฆืืืช ืฉืื ืืฉืื ืชืืืืจ ืฉืืืื, ืื ืฉืืืื ืื ืืื ืืืื ืชืชืืฆืข. ืืื ืืขืืงืจ ืฉืืคืืืช ืคืขื ืืืช ืืชืฉืชืืช ืฉืื ื ืืืจ ืขืืื ืืฉืืื. ืืื ืขืืืก, ืืื ืื ืจืืื.
ืืืงืื, ืืืื ื ืืืืื ืฉืืชืืืฆื ื (!) ืืืฉืื ื ืขื ืืืคืฉืจืืช ืืชื ื ืืชื ืืืื ืืืฉืืื ืืช ืืืงืฉื ืืืืคื ืืืงื ืืืฆืืื. ืื ื ืกื ืืืฉืืื ืืช ืืฉืืจ ืฉืื ืืืืจ ืืจืืื ืืื ืืกืืื (ืืืื? ืืื ืืืืืช ืืืืืื?). ืืื ืืืืจืื ื ืฉืืจื ืืืชื ืืืืจ. ืืืงืฉื ืืฉืืื SMS ืืฉ ืกืืืื ืฉื 50/50 ืืืืืฉื ืฉืื.
ืืกืืื, ืืฆื ืืืงืื ืืฉืืจืืช ืื ื ืจืื ืืืื ืืื ืฉืืืื ื ืจืืฆืื... ืื ืขื REST?
REST ืืฉืชืืฉ ืฉืื ืืงืกื ืฉื HTTP, ืืื ืขืืฉืื ืขื ืงืืื ืชืืืื. ืืืฉืจ ืืชืจืืฉืช ืฉืืืื 503 ืืฉืขืจ ื-SMS, ืืงืฆื ืืืืืจื ืืฉืืจ ืฉืืืื ืื ืืืืื. ืืืืื ืืงืื ืฉืืืื ืื ืืืืื ืื ืชืง ืืช ืืงืฉืจ ืขื ืืืงืื, ืฉืืื ืืช ืืืงืฉื ืืฆืืืช ืืืจ, ืืฉืจ ืืขืื ืืืฆืืื ืืช ืืืงืฉื. ืึธืึตื. ืืืงืื ืืงืื ืืช ืืชืืฆืื ืืฆืคืืื, ืืืชืฉืชืืช ืืืฉืจืช ืืช ืืชืืืจ ืืืืื ืฉืื "ื ืืืฉ ืืืืชืจ". ืืืฉืชืืฉ ืืจืืฆื.
ืืฉืื ืื ืื ืืื. ืืืืื ืื ืงืืื ืกืชื ืงืื ืชืืืื ืฉื 503. ืืฉืืืืืื, ืืคื ืืชืงื, ืจืฆืื ืืกืคืง ืงืื ืื ืขื ืืืืชืจืช "Retry-After". ืืืืชืจืช ืืืืืจื ืืืืื ืฉืื ืืืื ืืืคืจืืข ืืฆืืืช ืื ืืืกืืื ืื ืืืื ืืืืืจ. ืืืืงืฉืืช ืืืืืช ืืฉืืืืช SMS ืืืฉืืื ืืฉืืจืืช ืืฆืืืช ืฉืืื ืื ืืขืืืช ืขื ืฉืขืจ ื-SMS.
ืืคื ืฉืื ื ืืืืืื ืืจืืืช, ืืืืื ืืช ืฉื JSON-RPC ืืืขืจืืช ืืชืจ ืขื ืืืืื. ืืื, ืงื ืืืชืจ ืืืจืื ืขืงืืืืช ืืืกื ืื ืชืื ืื. ืืื ืืืงืจืื, ืืืงืจื ืื, ืชืืื ืืืืื ืืช ืฉื ืืืขืจืืช ืืืื.
ืืืกืงื ื ืืืื ืืืืื ืจืื ืืงืืืืชื. ืืืฉืจ ืืชืฉืชืืช ืคืฉืืื, ืืืืื ืืืืื ืฉื JSON-RPC ืืื ืืืืื ืืชืจืื. ืื ืืคืจืืืงื ืืืื ืืืื ืืช ืืืืื ืขื ืขืืืก ืืืื, REST ื ืจืื ืืื ืคืชืจืื ื ืืื ืืืชืจ, ืื ืื ืืืจืื ืืืชืจ.
ืกืฃ ืืื ืืกื ื-REST ื ืืื ืืืชืจ
ืื ื ืืืฉื ืฉืื ืืชืื ืฉืืขืื, ืฉืืคืจืื ืืช ืืกืืจืืืืืืคืื ืืืืืกืกืื ืขื RPC, ืืจืื ืืืืจืืจ ืฉืืกืฃ ืืื ืืกื ื-REST ืืื ืืื ืกืคืง ืืืื ืืืชืจ ืืืฉืจ ื-RPC. ืื ื ืืืข ืืืฆืืจื ืืืื ื ืืขืืืงื ืฉื ืืืคื ืคืขืืืช ื-HTTP, ืืื ืื ืืืฆืืจื ืืืืข ืืกืคืืง ืขื ืจืืืื ืชืฉืชืืช ืงืืืืื ืฉื ืืชื ืืฆืจืืืื ืืฉืืฉ ืืคืจืืืงืื WEB.
ืื ืืื ืื ืฉืื ืจืืื ืืืฉืืื ืฉ-REST ืืืื ืคืฉืื ืืืชืจ? ืืขืชื ืืืืฉืืช ืืื ืฉืืคืฉืืืช ืื ืจืืืช ืืขืื ืืืืขื ืืืืืืื ื-REST ืขืฆืื. ืึธืึตื. REST ืืื ืื ืคืจืืืืงืื ืืื ืืืฉื... ื-REST ืืื ืชืงื, ืืฉ ืืื ืื ืืืืช... REST ืื ืืืชืจ ืืกืืื ื-HTTP. ืืืคืฉ ืืื ืจืืื ืืืืืจื ืืืฉืืื "ืืื ืื ืืืคืฉืืื".
ืืืืื, REST ืืื ื ืืกืืื ืืืชืจ ื-HTTP. ืืื HTTP ืขืฆืื ืืื ืคืจืืืืงืื ืืขืืฆื ืืืื ืฉืืืืื ืืช ืขืจืื ืืืฉื ืขืฉืจืืช ืฉื ืื. ืื ืืื ืืื ื ืขืืืงื ืฉื HTTP ืขืฆืื, ืืื ืื ื ืืชื ืืฉืคืื REST.
ืืื ืืืื RPC - ืืชื ืืืื. ืืกืคืืง ืืงืืช ืืช ืืืคืจื ืฉืื. ืื ืืชื ืฆืจืื
ืื ื ืืืื ืืงืืื ืฉืื ืืืืืชื ืืช ืืื ื.
ืืงืืจ: www.habr.com