ืื ืืื ืืชืื ื ืกืคืจืืืช ืืงืื C++ ืขืืืจ ZooKeeper, etcd ื-Consul KV
ืืขืืื ืืืขืจืืืช ืืืืืืจืืช ืงืืืืืช ืืกืคืจ ืืฉืืืืช ืืืคืืื ืืืช: ืืืกืื ืืืืข ืขื ืืจืื ืืืฉืืื, ื ืืืื ืชืฆืืจืช ืฆืืชืื, ืืืชืืจ ืฆืืชืื ืคืืืืื, ืืืืจืช ืืืืื.
ืืืืืช, ืื ืืืขืจืืืช ืืืื ืื ืืืืจื ืืคืชื-ืขืจื ืกืืืื ื ืชืงืืืช, ืื ืืชื ืื ืืืื ืืจืืืฆืื. ืืืจืืช ืฉืืืืืืื ืื ืชืื ืื ืฉืืื ืืฉ ืืืืืื ืืฉืืขืืชืืื, ืขืืืื ื ืืื ืืืืฉื, ืื ืคืืชืจืื ืืช ืืืชื ืืขืืืช ืืขืฉืืืช. ืืจืืจ ืฉืื ืืคืืืงืฆืื ืฉืืฉืชืืฉืช ืืฉืืจืืช ืืชืืืื ืงืฉืืจื ืืืืช ืืื, ืื ืฉืขืฉืื ืืืืืื ืืฆืืจื ืืชืืื ืืืกืคืจ ืืขืจืืืช ืืืื ืกื ืืจ ืืื ืืคืืชืจืืช ืืช ืืืชื ืืขืืืช ืขืืืจ ืืคืืืงืฆืืืช ืฉืื ืืช.
ืืจืขืืื ืืคืชืืจ ืืช ืืืขืื ืืื ืืงืืจื ืืกืืื ืืช ืืืขืืฅ ืืืกืืจืืืช, ืืื ื ืคื ืขืืื ื, ืฆืืืช ืงืื ืฉื ืกืืืื ืืื, ืืืืฉื ืืืชื, ืืขืืื ืื ื ืืืื ืืืืจ.
ืืฆืืื ื ืืืฆืืจ ืกืคืจืืื ืืืกืคืงืช ืืืฉืง ืืฉืืชืฃ ืืขืืืื ืขื ZooKeeper, etcd ื-Consul KV. ืืกืคืจืืื ืืชืืื ื-C++, ืืื ืืฉ ืชืืื ืืืช ืืืขืืืจ ืืืชื ืืฉืคืืช ืืืจืืช.
ืืืืืื ืฉื ื ืชืื ืื
ืืื ืืคืชื ืืืฉืง ืืฉืืชืฃ ืืฉืืืฉ ืืขืจืืืช ืฉืื ืืช, ืขืืื ืืืืื ืื ืืืฉืืชืฃ ืืื ืืืืฆื ืื ืฉืื ืืช. ืืื ื ืืื ืืช ืื.
ZooKeeper
ืืืคืชืืืช ืืืืจืื ืื ืืขืฅ ืื ืงืจืืื ืฆืืชืื. ืืืชืื, ืขืืืจ ืฆืืืช ืืชื ืืืื ืืงืื ืจืฉืืื ืฉื ืืืืืื ืฉืื. ืืคืขืืืืช ืฉื ืืฆืืจืช znode (create) ืืฉืื ืื ืขืจื (setData) ืืืคืจืืืช: ื ืืชื ืืงืจืื ืืืฉื ืืช ืจืง ืืคืชืืืช ืงืืืืื. ื ืืชื ืืฆืจืฃ ืฉืขืื ืื ืืคืขืืืืช ืืืืงืช ืงืืืื ืฉื ืฆืืืช, ืงืจืืืช ืขืจื ืืงืืืช ืืืืื. Watch ืืื ืืจืืืจ ืื ืคืขืื ืืืืคืขื ืืืฉืจ ืืืจืกื ืฉื ืื ืชืื ืื ืืชืืืืื ืืฉืจืช ืืฉืชื ื. ืฆืืชืื ืืจืขืืื ืืฉืืฉืื ืืืืชืืจ ืืฉืืื. ืื ืงืฉืืจืื ืืกืฉื ืฉื ืืืงืื ืฉืืฆืจ ืืืชื. ืืืฉืจ ืืงืื ืกืืืจ ืืคืขืื ืื ืืคืกืืง ืืืืืืข โโื-ZooKeeper ืขื ืงืืืื, ืืฆืืชืื ืืืื ื ืืืงืื ืืืืคื ืืืืืืื. ืขืกืงืืืช ืคืฉืืืืช ื ืชืืืืช - ืงืืืฆื ืฉื ืคืขืืืืช ืฉืืืื ืืฆืืืืืช ืื ื ืืฉืืืช ืื ืื ืื ืืคืฉืจื ืขืืืจ ืืคืืืช ืืืช ืืื.
ืืื '
ืืคืชืื ืืืขืจืืช ืืื ืงืืืื ืืฉืจืื ืืจืืจื ื-ZooKeeper, ืืืื ืขืฉื ืืื ืืืจืช. ืืื ืืืจืจืืื ืฉื ืืคืชืืืช, ืืื ืื ืืืฆืจืื ืงืืืฆื ืืกืืืจืช ืืืืื ื ืืงืกืืงืืืจืคืืช. ืืชื ืืืื ืืงืื ืื ืืืืืง ืืช ืื ืืืคืชืืืช ืืฉืืืืื ืืืืื ืืกืืื. ืืืื ื ืืื ืืืื ื ืจืื ืืืืจ, ืืื ืืื ืืืขืฉื ืืงืกืคืจืกืืื ืืืื, ืื ืืชื ืืืงืืช ืืจืื ืืงืืืช ืืฉืงืคื ืืืจืจืืืช.
ื-etcd ืืื ืคืขืืืช ืืฉืืืื-ืืงืืข ืกืื ืืจืืืช, ืืื ืืฉ ืื ืืฉืื ืืื ืืืชืจ: ืขืกืงืืืช. ืืืืื ืฉืื ืงืืืืื ืืื ืฉืืืฉ ืืืขืจืืืช, ืืื ืขืกืงืืืช ืืื' ืืืืืช ืืืืืื. ืื ืืืจืืืื ืืฉืืืฉื ืืืืงืื: ืืืืงื, ืืฆืืื, ืืืฉืืื. ืืืืืง ืืจืืฉืื ืืืื ืงืืืฆื ืฉื ืชื ืืื, ืืฉื ื ืืืฉืืืฉื - ืคืขืืืืช. ืืขืกืงื ืืืืฆืขืช ืืฆืืจื ืืืืืืช. ืื ืื ืืชื ืืื ืืชืงืืืืื, ืืื ืืืืง ืืืฆืืื ืืืืฆืข, ืืืจืช ืืืืง ืืืฉื ืืืืฆืข. ื-API 3.3, ืืืืงืื ืฉื ืืฆืืื ืืืืฉืืื ืืืืืื ืืืืื ืืจื ืืงืฆืืืช ืืงืื ื ืืช. ืืืืืจ, ื ืืชื ืืืฆืข ืืฆืืจื ืืืืืืช ืืื ืื ืืืชื ืื ืืจืืช ืงืื ืื ืืืขื ืฉืจืืจืืชืืช. ืืชื ืืืื ืืืืื ืขืื ืขื ืื ืืืืงืืช ืืคืขืืืืช ืงืืืืื
ืฉืขืื ืื ืงืืืืื ืื ืืื, ืืืจืืช ืฉืื ืงืฆืช ืืืชืจ ืืกืืืืื ืื ืืชื ืื ืืฉืืืืฉ ืืืืจ. ืืืืืจ, ืืืืจ ืืชืงื ืช ืฉืขืื ืขื ืืืื ืืคืชืืืช ืชืงืืื ืืช ืื ืืขืืืื ืื ืืืืื ืืื ืขื ืฉืชืืืื ืืช ืืฉืขืื, ืืื ืจืง ืืช ืืจืืฉืื. ื-etcd, ืืื ืืืื ืฉื ืืคืขืืืช ืฉื ืืงืื ZooKeeper ืื ืืืื ืฉืืืจืืช.
ืงืื ืกืื K.V.
ืืื ืืื ืื ืืื ื ืืืจืจืื ืงืคืื ื, ืืื ืงืื ืกืื ืืืื ืืืฆืืจ ืืช ืืืจืื ืฉืืื ืงืืื: ืืชื ืืืื ืืงืื ืืืืืืง ืืช ืื ืืืคืชืืืช ืขื ืืงืืืืืช ืฉืฆืืื ื, ืืืืืจ ืืขืืื ืขื "ืชืช ืืขืฅ" ืฉื ืืืคืชื. ืฉืืืืชืืช ืืืื ื ืงืจืืืช ืจืงืืจืกืืืืืช. ืื ืืกืฃ, ืงืื ืกืื ืืืื ืืืืืจ ืจืง ืืคืชืืืช ืฉืืื ื ืืืืืื ืืช ืืชื ืฉืฆืืื ืืืืจ ืืงืืืืืช, ืืืชืืื ืืืฉืืช "ืืืืื" ืืืืืืช. ืืื ืืืื ืืืืืจ ืฉืื ืืืืืง ืืืจืื ืฉื ืืื ื ืืืจืจืื: ืืืืื ืืคืฉืจ ืืืฆืืจ ืืคืชื ืื ืืืืจื ืฉืื ืื ืงืืื ืื ืืืืืง ืืคืชื ืฉืืฉ ืื ืืืืื, ืืขืื ืืืืืื ืืืฉืืื ืืืืืช ืืืืืกื ืื ืืืขืจืืช.
ืืืงืื ืฉืขืื ืื, ืืงืื ืกืื ืืฉ ืืงืฉืืช HTTP ืืกืืืืช. ืืขืฆื, ืืืืืจ ืืงืจืืืืช ืจืืืืืช ืืฉืืืช ืงืจืืืช ืื ืชืื ืื, ืฉืืืืืื, ืืื ืขื ืคืจืืืจืื ื ืืกืคืื, ืืฆืืื ืช ืืืจืกื ืืืืืขื ืืืืจืื ื ืฉื ืื ืชืื ืื. ืื ืืืจืกื ืื ืืืืืช ืฉื ืื ืชืื ืื ืืืชืืืืื ืืฉืจืช ืืืืื ืืืืจืกื ืฉืฆืืื ื, ืืชืืืื ืืืืืจืช ืืื, ืืืจืช - ืืืฉืจ ืืขืจื ืืฉืชื ื. ืืฉื ื ืื ืืคืขืืืช ืฉื ืืชื ืืฆืจืฃ ืืืคืชืืืช ืืื ืขืช. ืจืืื ืืฆืืื ืฉืื ืืืื ื-etcd ื-ZooKeeper, ืืืฉืจ ืืืืงืช ืืคืขืืืช ืืืืืื ืืืืืงืช ืืืคืชืืืช ืืืฉืืืืื, ืืฉื ื ืืฆื ืฉืื ืืกืฉื ืคืฉืื ืื ืืชืง ืืื. ืืืื
ืืืืจืื ืืช ืืื ืืืื
ื-ZooKeeper ืืฉ ืืช ืืืื ืื ืชืื ืื ืืืืืืจ ืืืืชืจ. ืื ื ืืชื ืืืงืืช ืืืขืืืืช ืืช ืฉืืืืชืืช ืืืื ืืืืืื ืืืืื ืืช ื-etcd ื-ZooKeeper ืื ื-Consul. ืื ืืกืืื ืืฉืื ืืช ืืืื ืืืืชืจ ืืื ืืฉืืจืืชืื, ืืืขื ื ืืืืฉืง ืืืขื ืฉืืื ืขืจื ืืืืฉืง ZooKeeper ืขื ืืืจืืืื ืืืฉืืขืืชืืื ืืืืื:
ืฆืืชื ืจืฆืฃ, ืืืื ื-TTL ืืื ื ื ืชืื- ืจืฉืืืืช ACL ืืื ื ื ืชืืืืช
- ืฉืืืช ืืกื ืืืฆืจืช ืืคืชื ืื ืืื ืื ืงืืื (ื-ZK setData ืืืืืจื ืฉืืืื ืืืงืจื ืื)
- ืฉืืืืช set ื-cas ืืืคืจืืืช (ื-ZK ืื ืืขืฆื ืืืชื ืืืจ)
- ืฉืืืช ืืืืืงื ืืืืงืช ืฆืืืช ืืื ืขื ืชืช ืืขืฅ ืฉืื (ื-ZK ืืืืงื ืืืืืจื ืฉืืืื ืื โโืืฆืืืช ืืฉ ืืืืื)
- ืืื ืืคืชื ืืฉ ืจืง ืืจืกื ืืืช - ืืจืกืช ืืขืจื (ื-ZK
ืืฉ ืฉืืืฉื ืืื )
ืืืืืื ืฉื ืฆืืชืื ืขืืงืืื ื ืืืขืช ืืืขืืืื ืฉื-etcd ื-Consul ืืื ืชืืืื ืืืื ืืช ืขืืืจื, ืื ืืชื ืืืืฉื ืืืชื ืืงืืืช ืขื ืืื ืืืฉืชืืฉ ืขื ืืื ืืืฉืง ืืกืคืจืืื ืืืชืงืื.
ืืืฉืื ืืชื ืืืืช ืืืื ื-ZooKeeper ืืขืช ืืืืงืช ืงืืืงืื ืืืจืืฉ ืฉืืืจื ืขื ืืื ื ืืื ื ืคืจื ืขืืืจ ืื ืืคืชื ื-etcd ืื-Consul. ืืืืืื ืฉื ืืกืื ื ืืืืื ืข ืืืืืกืื ืืื ืืืืข, ืืืืื ืืืืืง ืืช ืื ืืืฉื ื.
ืืงืืืืช ืฉื ืืืฉืื
ืืืื ื ืกืชืื ืืงืจืื ืขื ืืื ืืืืืื ืฉื ืืืืขืช ืืืฉืง ืืกืคืจืืื ืืืขืจืืืช ืฉืื ืืช.
ืืืจืจืืื ื ืืื'
ืฉืืืจื ืขื ืืฉืงืคื ืืืจืจืืืช ื-etcd ืืชืืจืจื ืืืืช ืืืฉืืืืช ืืืขื ืืื ืืช ืืืืชืจ. ืฉืืืืชืืช ืืืื ืืงืืืช ืขื ืืืืืจ ืจืฉืืื ืฉื ืืคืชืืืช ืขื ืงืืืืืช ืืืืืจืช. ืืืืืื, ืื ืืชื ืฆืจืื ืื ืื ืฉืืชืืื ืขื "/foo"
, ืืชื ืืืงืฉ ืืืื ["/foo", "/fop")
. ืืื ืื ืืืืืจ ืืช ืื ืืืฉื ื ืฉื ืืืคืชื, ืื ืฉืืืื ืื ืืืื ืืงืืื ืื ืชืช ืืขืฅ ืืืื. ืืืชืืื ืชืื ื ื ืืืฉืชืืฉ ืืื ืื ืื ืชืจืืื ืืจืืื,
"/foo" -> "u01/foo"
"/foo/bar" -> "u02/foo/bar"
ืื ืงืื ืืช ืื ืืืืืื ืืืืืืืื ืฉื ืืืคืชื "/foo"
ืืคืฉืจื ืขื ืืื ืืงืฉืช ืืืื ["u02/foo/", "u02/foo0")
. ืื, ื-ASCII "0"
ืขืืื ืืื ืืืจื "/"
.
ืืื ืืื ืืืืฉื ืืช ืืกืจืช ืงืืืงืื ืืืงืจื ืื? ืืกืชืืจ ืฉืฆืจืื ืืืืืง ืืช ืื ืืืืืืื ืืืกืื ["uXX/foo/", "uXX/foo0")
ืขืืืจ XX ื-01 ืขื FF. ืืื ื ืชืงืื ื
ืืชืืฆืื ืืื ืืืืฆืื ืืขืจืืช ืืืจืช ืืคืชื ืคืฉืืื, ืฉืืคืฉืจื ืืืืฉื ืืืขืืืืช ืื ืืืืงืช ืืคืชื ืืื ืงืืืช ืจืฉืืืช ืืืืื. ืืกืคืืง ืืืืกืืฃ ืชื ืืืืื ืืคื ื ืืืกืืืื ืืืืจืื. ืืืืืื:
"/very" -> "/u00very"
"/very/long" -> "/very/u00long"
"/very/long/path" -> "/very/long/u00path"
ืืื ืืืืืง ืืช ืืืคืชื "/very"
ืืืคื ืืืืืงื "/u00very"
ืืืืื ["/very/", "/very0")
, ืืงืืืช ืื ืืืืืื - ืืืงืฉื ืืืคืชืืืช ืืืืืืื ["/very/u00", "/very/u01")
.
ืืกืจืช ืืคืชื ื-ZooKeeper
ืืคื ืฉืืืจ ืฆืืื ืชื, ื-ZooKeeper ืื ื ืืชื ืืืืืง ืฆืืืช ืื ืืฉ ืื ืืืืื. ืื ื ืจืืฆืื ืืืืืง ืืช ืืืคืชื ืืื ืขื ืขืฅ ืืืฉื ื. ืื ืขืื ืืขืฉืืช? ืื ืื ื ืขืืฉืื ืืช ืื ืืืืคืืืืืืช. ืจืืฉืืช, ืื ื ืืืฆืื ืืืืคื ืจืงืืจืกืืื ืืช ืชืช-ืืขืฅ, ืืืฉืืืื ืืช ืืืืืื ืฉื ืื ืงืืืงืื ืืืืฆืขืืช ืฉืืืืชื ื ืคืจืืช. ืืืืจ ืืื ืื ื ืืื ืื ืืจื ืืงืฆืื ืฉืื ืกื ืืืืืง ืืช ืื ืืฆืืชืื ืฉื ืชืช-ืืขืฅ ืืกืืจ ืื ืืื. ืืืืื, ืฉืื ืืืื ืืืืืื ืืืชืจืืฉ ืืื ืงืจืืืช ืชืช-ืขืฅ ืืืื ืืืืงืชื. ืืืงืจื ืื, ืืขืกืงื ืชืืืฉื. ืืชืจ ืขื ืื, ืชืช ืืขืฅ ืขืฉืื ืืืฉืชื ืืช ืืืืื ืชืืืื ืืงืจืืื. ืืงืฉื ืืืืืื ืฉื ืืฆืืืช ืืื ืขืฉืืื ืืืืืืจ ืฉืืืื ืื, ืืืฉื, ืฆืืืช ืื ืืืจ ื ืืืง. ืืฉื ื ืืืงืจืื, ืื ื ืืืืจืื ืขื ืื ืืชืืืื ืฉืื.
ืืืฉื ืื ืืืคืืช ืืืืงืช ืืคืชื ืืืืื ืื ืืขืืื ืื ืืฉ ืื ืืืืื, ืืขืื ืืืชืจ ืื ืืืคืืืงืฆืื ืืืฉืืื ืืขืืื ืขื ืชืช-ืขืฅ, ืืืืงื ืืืฆืืจืช ืืคืชืืืช. ืขื ืืืช, ืื ืืคืฉืจ ืื ื ืืืืื ืข ืืกืืืื ืฉื ืืืฉืื ืฉืืืืช ืืืจืืช ื-etcd ืืืงืื ืกืื.
ืืชืจืืฉ ื-ZooKeeper
ื-ZooKeeper ืืฉื ื ืฉืืืืช ื ืคืจืืืช ืฉืขืืืืืช ืขื ืืื ื ืืขืฅ (create, delete, getChildren) ืืขืืืืืช ืขื ื ืชืื ืื ืืฆืืชืื (setData, getData) ืืชืจื ืืื, ืืื ืืฉืืืืช ืืฉ ืชื ืืื ืืืงืืืื ืงืคืื ืืื: create ืชืืืืจ ืฉืืืื ืื โโืืฆืืืช ืืืจ ื ืืฆืจ, ืืืง ืื setData - ืื ืืื ืขืืืื ืื ืงืืื. ืืืื ื ืฆืจืืืื ืฉืืื ืืืืืจืช ืฉืืคืฉืจ ืืงืจืื ืื ืืื ืืืฉืื ืขื ื ืืืืืช ืฉื ืืคืชื.
ืืคืฉืจืืช ืืืช ืืื ืื ืงืื ืืืืฉื ืืืคืืืืืช, ืืื ืืืืืงื. ืืืืง ืื ืงืืื ืฆืืืช. ืื ืงืืื, ืืชืงืฉืจ ื-setData, ืืืจืช ืฆืืจ. ืื ืืฉืืื ืืืืจืื ื ืืืืืจื ืฉืืืื, ืืืืจ ืขืืื ืฉืื. ืืืืจ ืืจืืฉืื ืฉืืฉ ืืฆืืื ืืื ืฉืืืื ืืงืืื ืืื ืืกืจ ืืขื. ืืชื ืืืื ืืื ืืืชืงืฉืจ ืืืฆืืจ. ืืฉืืื ืืืฆืืืช ืชืืจืื ืืื ืฉืืฆืืืช ืื ืืื ืงืืื ืืืื ื ืืฆืจ. ืืืจืช, create ืชืืืืจ ืืช ืืฉืืืื ืืืชืืืื, ืืืืืจ ืืื ืขืืื ืืืชืงืฉืจ ื-setData. ืืืืื ืฉืืื ืงืจืืื, ืงืืืงืื ืืืื ืืืืืืง ืขื ืืื ืงืจืืื ืืชืืจื, ืืื setData ืืืืืจ ืฉืืืื. ืืืงืจื ืื, ืืชื ืืืื ืืขืฉืืช ืืื ืฉืื, ืืื ืืื ืื ืฉืืื ืืช ืื?
ืื ืฉืชื ืืฉืืืืช ืืืืืจืืช ืฉืืืื, ืื ืื ืื ื ืืืืขืื ืืืืืืืช ืฉืืชืจืืฉื ืืืืงื ืืชืืจื. ืืื ื ืืืืื ืฉืืืืืงื ืืื ืืชืจืืฉื ืืืืจ ืืงืจืืื ืืืืืืจ. ืื ืื ืืืฉืืขืืช ืฉืื ื ืื ืกืื ืืืกืก ืืืจ ื ืืืงื. ืื ืืืืจ ืฉืื ืื ื ืืืืืื ืืื ืื ืฉืืกื ืืืฆืข ืืืฆืืื, ืื ืื ืื ื ืืชื ืืืื.
ืคืจืืื ืืื ืืื ื ืืกืคืื
ืืืืง ืื ื ืืงื ืืคืกืงื ืืืขืจืืืช ืืืืืจืืช ืื ืืืจ ืขื ืงืืืื.
ืืืช ืืืจืืฉืืช ืืขืืงืจืืืช ืฉื ืืืงืื ืืืืชื ืืืฆื ืคืืืคืืจืืืช: ืืคืืืช ืืื ืืืฉืืจืืชืื ืืืื ืืืืืช ื ืชืื ื-Linux, MacOS ื-Windows. ืืชืืืื, ืคืืชืื ื ืจืง ืขืืืจ ืืื ืืงืก, ืืืชืืื ื ืืืืืง ืืืขืจืืืช ืืืจืืช ืืืืืจ ืืืชืจ. ืื ืืจื ืืืจืื ืืขืืืช, ืฉืืืฉื ืืื ืื ืืื ืืืืจื ืื ืืจืืจ ืืื ืืืฉืช. ืืชืืฆืื ืืื, ืื ืฉืืืฉืช ืฉืืจืืชื ืืชืืืื ื ืชืืืื ืืขืช ื-Linux ืื-MacOS, ืืขืื ืฉืจืง Consul KV ื ืชืื ื-Windows.
ืืืจ ืืืืชืืื ื ืืกืื ื ืืืฉืชืืฉ ืืกืคืจืืืช ืืืื ืืช ืืื ืืืฉืช ืืฉืืจืืชืื. ืืืงืจื ืฉื ZooKeeper, ืืืืืจื ื ืคืื ืขื
ืืืฉืจืืช ืืืืฉืง ืืืกืื ืืจืื ื ืฉื ืกืคืจืืืช ZooKeeper C++, ืืืืื ื ืืืืฉื ืื ืืืฉืง ืืกืื ืืจืื ื. ZooKeeper C++ ืืฉืชืืฉ ืืคืจืืืืืืืื ืขืชืืืืื/ืืืืืืช ืืฉื ืื. ื-STL, ืืืจืื ืืฆืขืจ, ืื ืืืืฉืืื ืืฆืืจื ืืืื ืฆื ืืขื. ืืืฉื, ืื
ืืืืฉืื ืฉืื ื ืื ืขืืื ืืื. ืืฉื ืงืจื, ื ืืฆืจ ืืื ืืืืื/ืขืชืื ื ืืกืฃ. ืืขืชืื ืืืืฉ ืืืืืจ, ืืืขืชืื ืฉืขืืจ ืืืฆื ืืื ืขื ืืคืื ืงืฆืื ืืืชืืืื ืืืืืื ื ืืกืคืช ืืชืืจ. ืฉืจืฉืืจ ืืืืืืจ ืืืืจ ืืกืคืจ ืขืชืืืื ืืืชืืจ ืืืกืงืจ ืืืชื ืืืืฆืขืืช wait_for. ืืืฉืจ ืชืืฆืื ืืืื ื, ืืคืื ืงืฆืื ืืืชืืืื ื ืงืจืืช ืืขืจื ืืืืืจ ืฉืื ืืืขืืจ ืืืืืื.
ืืฉืชืืฉื ื ืืืืชื ืืืืจ ืฉืจืฉืืจืื ืืื ืืืฆืข ืฉืืืืชืืช ื-etcd ืืConsul. ืืฉืืขืืช ืืืืจ ืืื ืฉื ืืชื ืืืฉืช ืืกืคืจืืืช ืืืกืืกืืืช ืืืืฆืขืืช ืฉืจืฉืืจืื ืฉืื ืื. ppconsul ืืื ื ืืืื ืืฉืจืฉืืจ, ืืืื ืฉืืืืช ืืืื ืืืื ืืช ืืื ืขืืืื.
ืืชื ืืืื ืืขืืื ืขื grpc ืืืกืคืจ ืฉืจืฉืืจืื, ืืื ืืฉ ืืงืืืืช. ื-etcd ืฉืขืื ืื ืืืืฉืืื ืืืืฆืขืืช ืืจืื grpc. ืืื ืื ืขืจืืฆืื ืื-ืืืืื ืืื ืืืืืขืืช ืืกืื ืืกืืื. ืืกืคืจืืื ืืืฆืจืช ืฉืจืฉืืจ ืืืื ืขืืืจ ืื ืืฉืขืื ืื ืืฉืจืฉืืจ ืืืื ืืืขืื ืืืืขืืช ื ืื ืกืืช. ืื grpc ืืืกืจ ืขื ืืชืืื ืืงืืืื ืืกืืจืืืื ื. ืืฉืืขืืช ืืืืจ ืืื ืฉืืขืช ืืชืืื ืื ืืืืงื ืฉื ืฉืขืื, ืขืืื ืืืืชืื ืขื ืืกืืื ืืฉืืืื ืฉื ืืืงืฉื ืืงืืืืช ืืคื ื ืฉืืืืช ืืืงืฉื ืืืื. ืื ื ืืฉืชืืฉืื ืืกื ืืจืื
ืกื ืืื
ืชืจืื ืืขืฆืื:
ืืฆืืืช ืฉืื ื:
ืืงืืจ: www.habr.com