рдкрд╛рдБрдЪ рд╡рд┐рджреНрдпрд╛рд░реНрдереА рд░ рддреАрди рдЬрдирд╛рд▓реЗ рдХреБрдЮреНрдЬреА-рдореВрд▓реНрдп рд╕реНрдЯреЛрд░рд╣рд░реВ рд╡рд┐рддрд░рдг рдЧрд░реЗ

рд╡рд╛ рд╣рд╛рдореАрд▓реЗ рдХрд╕рд░реА ZooKeeper, etcd рд░ Consul KV рдХреЛ рд▓рд╛рдЧрд┐ рдЧреНрд░рд╛рд╣рдХ C++ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓реЗрдЦреНрдпреМрдВ

рд╡рд┐рддрд░рд┐рдд рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдХреЛ рд╕рдВрд╕рд╛рд░рдорд╛, рддреНрдпрд╣рд╛рдБ рдзреЗрд░реИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпрд╣рд░реВ рдЫрдиреН: рдХреНрд▓рд╕реНрдЯрд░рдХреЛ рд╕рдВрд░рдЪрдирд╛рдХреЛ рдмрд╛рд░реЗрдорд╛ рдЬрд╛рдирдХрд╛рд░реА рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрдиреЗ, рдиреЛрдбрд╣рд░реВрдХреЛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдкреНрд░рдмрдиреНрдз рдЧрд░реНрдиреЗ, рджреЛрд╖рдкреВрд░реНрдг рдиреЛрдбрд╣рд░реВ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрдиреЗ, рдиреЗрддрд╛ рдЫрдиреМрдЯ рдЧрд░реНрдиреЗред рд░ рдЕрдиреНрдпред рдпреА рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди, рд╡рд┐рд╢реЗрд╖ рд╡рд┐рддрд░рдг рдкреНрд░рдгрд╛рд▓реА рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдЫ - рд╕рдордиреНрд╡рдп рд╕реЗрд╡рд╛рд╣рд░реВред рдЕрдм рд╣рд╛рдореА рддреА рдордзреНрдпреЗ рддреАрдирдорд╛ рд░реБрдЪрд┐ рд░рд╛рдЦреНрдиреЗрдЫреМрдВ: ZooKeeper, etcd рд░ Consulред Consul рдХреЛ рд╕рдмреИ рд╕рдореГрджреНрдз рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛рд╣рд░реБ рдордзреНрдпреЗ, рд╣рд╛рдореА Consul KV рдорд╛ рдзреНрдпрд╛рди рдХреЗрдиреНрджреНрд░рд┐рдд рдЧрд░реНрдиреЗрдЫреМрдВред

рдкрд╛рдБрдЪ рд╡рд┐рджреНрдпрд╛рд░реНрдереА рд░ рддреАрди рдЬрдирд╛рд▓реЗ рдХреБрдЮреНрдЬреА-рдореВрд▓реНрдп рд╕реНрдЯреЛрд░рд╣рд░реВ рд╡рд┐рддрд░рдг рдЧрд░реЗ

рд╕рдВрдХреНрд╖реЗрдкрдорд╛, рдпреА рд╕рдмреИ рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВ рдЧрд▓реНрддреА-рд╕рд╣рд┐рд╖реНрдгреБ, рд░реИрдЦрд┐рдХ рдХреБрдЮреНрдЬреА-рдорд╛рди рднрдгреНрдбрд╛рд░рд╣рд░реВ рд╣реБрдиреНред рдпрджреНрдпрдкрд┐ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдбреЗрдЯрд╛ рдореЛрдбреЗрд▓рд╣рд░реВрдорд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рднрд┐рдиреНрдирддрд╛рд╣рд░реВ рдЫрдиреН, рдЬреБрди рд╣рд╛рдореА рдкрдЫрд┐ рдЫрд▓рдлрд▓ рдЧрд░реНрдиреЗрдЫреМрдВ, рддрд┐рдиреАрд╣рд░реВрд▓реЗ рд╕рдорд╛рди рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдЫрдиреНред рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛, рд╕рдордиреНрд╡рдп рд╕реЗрд╡рд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рддрд┐рдиреАрд╣рд░реВ рдордзреНрдпреЗ рдПрдХрд╕рдБрдЧ рдЬреЛрдбрд┐рдПрдХреЛ рдЫ, рдЬрд╕рд▓реЗ рд╡рд┐рднрд┐рдиреНрди рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдиреЗ рдПрдХ рдбреЗрдЯрд╛ рдХреЗрдиреНрджреНрд░рдорд╛ рдзреЗрд░реИ рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рд╣реБрди рд╕рдХреНрдЫред

рдпреЛ рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдиреЗ рд╡рд┐рдЪрд╛рд░ рдПрдХ рдЕрд╖реНрдЯреНрд░реЗрд▓рд┐рдпрд╛рд▓реА рдкрд░рд╛рдорд░реНрд╢ рдПрдЬреЗрдиреНрд╕реА рдорд╛ рдЙрддреНрдкрдиреНрди рднрдПрдХреЛ рдерд┐рдпреЛ, рд░ рдпреЛ рд╣рд╛рдореА рдорд╛ рдкрд░реНрдпреЛ, рд╡рд┐рджреНрдпрд╛рд░реНрдереАрд╣рд░реВрдХреЛ рд╕рд╛рдиреЛ рдЯреЛрд▓реА, рдпрд╕рд▓рд╛рдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди, рдЬрд╕рдХреЛ рдмрд╛рд░реЗрдорд╛ рдо рдХреБрд░рд╛ рдЧрд░реНрди рдЧрдЗрд░рд╣реЗрдХреЛ рдЫреБред

рд╣рд╛рдореАрд▓реЗ ZooKeeper, etcd рд░ Consul KV рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рд╕рд╛рдЭрд╛ рдЗрдиреНрдЯрд░рдлреЗрд╕ рдкреНрд░рджрд╛рди рдЧрд░реНрдиреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реНрдпреМрдВред рдкреБрд╕реНрддрдХрд╛рд▓рдп C++ рдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рдЫ, рддрд░ рдпрд╕рд▓рд╛рдИ рдЕрдиреНрдп рднрд╛рд╖рд╛рд╣рд░реВрдорд╛ рдкреЛрд░реНрдЯ рдЧрд░реНрдиреЗ рдпреЛрдЬрдирд╛рд╣рд░реВ рдЫрдиреНред

рдбрд╛рдЯрд╛ рдореЛрдбреЗрд▓рд╣рд░реВ

рддреАрди рдлрд░рдХ рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рд╛рдЭрд╛ рдЗрдиреНрдЯрд░рдлреЗрд╕ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрди, рддрдкрд╛рдИрдВрд▓реЗ рддрд┐рдиреАрд╣рд░реВрдорд╛ рдХреЗ рд╕рд╛рдЭрд╛ рдЫ рд░ рддрд┐рдиреАрд╣рд░реВ рдХрд╕рд░реА рдлрд░рдХ рдЫрдиреН рднрдиреЗрд░ рдмреБрдЭреНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдпрд╕рд▓рд╛рдИ рдмрд╛рд╣рд┐рд░ рдирд┐рдХрд╛рд▓реМрдВред

рдЪрд┐рдбрд┐рдпрд╛рдЦрд╛рдирд╛

рдкрд╛рдБрдЪ рд╡рд┐рджреНрдпрд╛рд░реНрдереА рд░ рддреАрди рдЬрдирд╛рд▓реЗ рдХреБрдЮреНрдЬреА-рдореВрд▓реНрдп рд╕реНрдЯреЛрд░рд╣рд░реВ рд╡рд┐рддрд░рдг рдЧрд░реЗ

рдХреБрдЮреНрдЬреАрд╣рд░реВ рд░реВрдЦрдорд╛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реБрдиреНрдЫрдиреН рд░ рдиреЛрдбрд╣рд░реВ рднрдирд┐рдиреНрдЫред рддрджрдиреБрд╕рд╛рд░, рдиреЛрдбрдХреЛ рд▓рд╛рдЧрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдпрд╕рдХреЛ рдмрдЪреНрдЪрд╛рд╣рд░реВрдХреЛ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдПрдХ znode (рд╕рд┐рд░реНрдЬрдирд╛) рд░ рдорд╛рди (setData) рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреЗ рдХрд╛рд░реНрдпрд╣рд░реВ рдЕрд▓рдЧ рдЧрд░рд┐рдПрдХреЛ рдЫ: рдЕрд╡рд╕реНрдерд┐рдд рдХреБрдЮреНрдЬреАрд╣рд░реВ рдорд╛рддреНрд░ рдкрдвреНрди рд░ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдШрдбреАрд╣рд░реВ рдиреЛрдбрдХреЛ рдЕрд╕реНрддрд┐рддреНрд╡ рдЬрд╛рдБрдЪ рдЧрд░реНрдиреЗ, рдореВрд▓реНрдп рдкрдвреНрдиреЗ рд░ рдмрдЪреНрдЪрд╛рд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗ рдХрд╛рд░реНрдпрд╣рд░реВрдорд╛ рд╕рдВрд▓рдЧреНрди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рд╡рд╛рдЪ рдПрдХ рдкрдЯрдХрдХреЛ рдЯреНрд░рд┐рдЧрд░ рд╣реЛ рдЬреБрди рд╕рд░реНрднрд░рдорд╛ рд╕рдореНрдмрдиреНрдзрд┐рдд рдбрд╛рдЯрд╛рдХреЛ рд╕рдВрд╕реНрдХрд░рдг рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдБрджрд╛ рд╕рдХреНрд░рд┐рдп рд╣реБрдиреНрдЫред Ephemeral рдиреЛрдбрд╣рд░реВ рд╡рд┐рдлрд▓рддрд╛рд╣рд░реВ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред рддрд┐рдиреАрд╣рд░реВ рдЧреНрд░рд╛рд╣рдХрдХреЛ рд╕рддреНрд░рдорд╛ рдмрд╛рдБрдзрд┐рдПрдХрд╛ рдЫрдиреН рдЬрд╕рд▓реЗ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реЗрдХреЛ рдЫред рдЬрдм рдХреНрд▓рд╛рдЗрдиреНрдЯрд▓реЗ рд╕рддреНрд░ рдмрдиреНрдж рдЧрд░реНрдЫ рд╡рд╛ ZooKeeper рд▓рд╛рдИ рдпрд╕рдХреЛ рдЕрд╕реНрддрд┐рддреНрд╡рдХреЛ рд╕реВрдЪрд┐рдд рдЧрд░реНрди рд░реЛрдХреНрдЫ, рдпреА рдиреЛрдбрд╣рд░реВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдореЗрдЯрд┐рдиреНрдЫрдиреНред рд╕рд╛рдзрд╛рд░рдг рд▓реЗрдирджреЗрдирд╣рд░реВ рд╕рдорд░реНрдерд┐рдд рдЫрдиреН - рдЕрдкрд░реЗрд╕рдирд╣рд░реВрдХреЛ рд╕реЗрдЯ рдЬреБрди рдХрд┐ рдд рд╕рдмреИ рд╕рдлрд▓ рд╣реБрдиреНрдЫрдиреН рд╡рд╛ рдЕрд╕рдлрд▓ рд╣реБрдиреНрдЫрдиреН рдпрджрд┐ рдпреЛ рдХрдореНрддрд┐рдорд╛ рдПрдХрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдореНрднрд╡ рдЫреИрдиред

рдЖрджрд┐

рдкрд╛рдБрдЪ рд╡рд┐рджреНрдпрд╛рд░реНрдереА рд░ рддреАрди рдЬрдирд╛рд▓реЗ рдХреБрдЮреНрдЬреА-рдореВрд▓реНрдп рд╕реНрдЯреЛрд░рд╣рд░реВ рд╡рд┐рддрд░рдг рдЧрд░реЗ

рдпрд╕ рдкреНрд░рдгрд╛рд▓реАрдХрд╛ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ ZooKeeper рджреНрд╡рд╛рд░рд╛ рдкреНрд░реЗрд░рд┐рдд рдерд┐рдП, рд░ рддреНрдпрд╕реИрд▓реЗ рд╕рдмреИ рдХреБрд░рд╛ рдлрд░рдХ рддрд░рд┐рдХрд╛рд▓реЗ рдЧрд░реЗред рддреНрдпрд╣рд╛рдБ рдХреБрдЮреНрдЬреАрд╣рд░реВрдХреЛ рдХреБрдиреИ рдкрджрд╛рдиреБрдХреНрд░рдо рдЫреИрди, рддрд░ рддрд┐рдиреАрд╣рд░реВ рд▓реЗрдХреНрд╕реЛрдЧреНрд░рд╛рдлрд┐рдХ рд░реВрдкрдорд╛ рдХреНрд░рдордмрджреНрдз рд╕реЗрдЯ рдмрдирд╛рдЙрдБрдЫрдиреНред рддрдкрд╛рдИрдВрд▓реЗ рдирд┐рд╢реНрдЪрд┐рдд рджрд╛рдпрд░рд╛рд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рд╕рдмреИ рдХреБрдЮреНрдЬреАрд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╡рд╛ рдореЗрдЯрд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдпреЛ рд╕рдВрд░рдЪрдирд╛ рдЕрдиреМрдареЛ рд▓рд╛рдЧреНрди рд╕рдХреНрдЫ, рддрд░ рдпреЛ рд╡рд╛рд╕реНрддрд╡рдорд╛ рдзреЗрд░реИ рдЕрднрд┐рд╡реНрдпрдХреНрдд рдЫ, рд░ рдПрдХ рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдд рджреГрд╢реНрдп рд╕рдЬрд┐рд▓реИ рдпрд╕рдХреЛ рдорд╛рдзреНрдпрдордмрд╛рдЯ рдЕрдиреБрдХрд░рдг рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

etcd рд╕рдБрдЧ рдорд╛рдирдХ рддреБрд▓рдирд╛-рд░-рд╕реЗрдЯ рдЕрдкрд░реЗрд╢рди рдЫреИрди, рддрд░ рдпрд╕рдорд╛ рдХреЗрд╣рд┐ рд░рд╛рдореНрд░реЛ рдЫ: рд▓реЗрдирджреЗрдиред рдЕрд╡рд╢реНрдп рдкрдирд┐, рддрд┐рдиреАрд╣рд░реВ рд╕рдмреИ рддреАрди рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдорд╛ рдЕрд╡рд╕реНрдерд┐рдд рдЫрдиреН, рддрд░ etcd рд▓реЗрдирджреЗрдирд╣рд░реВ рд╡рд┐рд╢реЗрд╖ рдЧрд░реА рд░рд╛рдореНрд░реЛ рдЫрдиреНред рддрд┐рдиреАрд╣рд░реВ рддреАрди рдмреНрд▓рдХрд╣рд░реВ рд╣реБрдиреНрдЫрдиреН: рдЬрд╛рдБрдЪ, рд╕рдлрд▓рддрд╛, рдЕрд╕рдлрд▓рддрд╛ред рдкрд╣рд┐рд▓реЛ рдмреНрд▓рдХрд▓реЗ рд╕рд░реНрддрд╣рд░реВрдХреЛ рд╕реЗрдЯ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ, рджреЛрд╕реНрд░реЛ рд░ рддреЗрд╕реНрд░реЛ - рд╕рдЮреНрдЪрд╛рд▓рдиред рд▓реЗрдирджреЗрди рдкрд░рдорд╛рдгреБ рд░реВрдкрдорд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдиреНрдЫред рдпрджрд┐ рд╕рдмреИ рд╕рд░реНрддрд╣рд░реВ рд╕рддреНрдп рдЫрдиреН рднрдиреЗ, рд╕рдлрд▓рддрд╛ рдмреНрд▓рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдиреНрдЫ, рдЕрдиреНрдпрдерд╛ рдЕрд╕рдлрд▓рддрд╛ рдмреНрд▓рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реБрдиреНрдЫред API 3.3 рдорд╛, рд╕рдлрд▓рддрд╛ рд░ рд╡рд┐рдлрд▓рддрд╛ рдмреНрд▓рдХрд╣рд░реВрд▓реЗ рдиреЗрд╕реНрдЯреЗрдб рд▓реЗрдирджреЗрдирд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрди рд╕рдХреНрдЫрдиреНред рддреНрдпреЛ рд╣реЛ, рд▓рдЧрднрдЧ рдордирдорд╛рдиреА рдиреЗрд╕реНрдЯрд┐рдВрдЧ рд╕реНрддрд░рдХреЛ рд╕рд╢рд░реНрдд рдирд┐рд░реНрдорд╛рдгрд╣рд░реВ рдкрд░рдорд╛рдгреБ рд░реВрдкрдорд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рд╕рдореНрднрд╡ рдЫред рддрдкрд╛рдИрд▓реЗ рдЬрд╛рдБрдЪ рд░ рд╕рдЮреНрдЪрд╛рд▓рдирд╣рд░реВ рдХреЗ рдмрд╛рдЯ рдЕрд╡рд╕реНрдерд┐рдд рдЫ рднрдиреНрдиреЗ рдмрд╛рд░реЗ рдердк рдЬрд╛рдиреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдХрд╛рдЧрдЬрд╛рдд.

рдШрдбреАрд╣рд░реВ рдпрд╣рд╛рдБ рдкрдирд┐ рдЕрд╡рд╕реНрдерд┐рдд рдЫрдиреН, рдпрджреНрдпрдкрд┐ рддрд┐рдиреАрд╣рд░реВ рдЕрд▓рд┐ рдмрдвреА рдЬрдЯрд┐рд▓ рдЫрдиреН рд░ рдкреБрди: рдкреНрд░рдпреЛрдЧрдпреЛрдЧреНрдп рдЫрдиреНред рддреНрдпреЛ рд╣реЛ, рдХреБрдЮреНрдЬреА рджрд╛рдпрд░рд╛рдорд╛ рдШрдбреА рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реЗрдкрдЫрд┐, рддрдкрд╛рдИрдВрд▓реЗ рдпреЛ рджрд╛рдпрд░рд╛рдорд╛ рд╕рдмреИ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХрд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрд╣реБрдиреЗрдЫ рдЬрдмрд╕рдореНрдо рддрдкрд╛рдИрдВрд▓реЗ рдШрдбреА рд░рджреНрдж рдирдЧрд░реЗрд╕рдореНрдо, рдкрд╣рд┐рд▓реЛ рдорд╛рддреНрд░ рд╣реЛрдЗрдиред рдЖрджрд┐рдорд╛, ZooKeeper рдЧреНрд░рд╛рд╣рдХ рд╕рддреНрд░рд╣рд░реВрдХреЛ рдПрдирд╛рд▓рдЧ рдкрдЯреНрдЯрд╛рд╣рд░реВ рд╣реБрдиреНред

рдХрдиреНрд╕реБрд▓ рдХреЗ.рд╡реА.

рдпрд╣рд╛рдБ рдХреБрдиреИ рд╕рдЦреНрдд рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдХ рд╕рдВрд░рдЪрдирд╛ рдкрдирд┐ рдЫреИрди, рддрд░ рдХрдиреНрд╕реБрд▓рд▓реЗ рдпреЛ рдЕрд╡рд╕реНрдерд┐рдд рдЙрдкрд╕реНрдерд┐рддрд┐ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд╕рдХреНрдЫ: рддрдкрд╛рдЗрдБ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЙрдкрд╕рд░реНрдЧрдХреЛ рд╕рд╛рде рд╕рдмреИ рдХреБрдЮреНрдЬреАрд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд░ рдореЗрдЯрд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рддреНрдпреЛ рд╣реЛ, рдХреБрдЮреНрдЬреАрдХреЛ "рд╕рдмрдЯреНрд░реА" рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреБрд╣реЛрд╕реНред рддреНрдпрд╕реНрддрд╛ рдкреНрд░рд╢реНрдирд╣рд░реВрд▓рд╛рдИ рдкреБрдирд░рд╛рд╡рд░реНрддреА рднрдирд┐рдиреНрдЫред рдердк рд░реВрдкрдорд╛, рдХрдиреНрд╕реБрд▓рд▓реЗ рдЙрдкрд╕рд░реНрдЧ рдкрдЫрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреНрдпрд╛рд░реЗрдХреНрдЯрд░ рд╕рдорд╛рд╡реЗрд╢ рдирдЧрд░реНрдиреЗ рдХреБрдЮреНрдЬреАрд╣рд░реВ рдорд╛рддреНрд░ рдЪрдпрди рдЧрд░реНрди рд╕рдХреНрдЫ, рдЬреБрди рддрддреНрдХрд╛рд▓ "рдмрдЪреНрдЪрд╛рд╣рд░реВ" рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдорд┐рд▓реНрдЫред рддрд░ рдпреЛ рдпрд╛рдж рдЧрд░реНрди рд▓рд╛рдпрдХ рдЫ рдХрд┐ рдпреЛ рдПрдХ рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдХ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд░реВрдк рджреЗрдЦрд┐ рдареАрдХ рдЫ: рдпреЛ рдПрдХ рдХреБрдЮреНрдЬреА рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рд╕рдореНрднрд╡ рдЫ рдпрджрд┐ рдпрд╕рдХреЛ рдЕрднрд┐рднрд╛рд╡рдХ рдЕрд╡рд╕реНрдерд┐рдд рдЫреИрди рд╡рд╛ рдмрдЪреНрдЪрд╛рд╣рд░реБ рднрдПрдХреЛ рдХреБрдЮреНрдЬреА рдореЗрдЯрд╛рдЙрди, рдЬрдмрдХрд┐ рдмрдЪреНрдЪрд╛рд╣рд░реБ рд▓рд╛рдИ рдкреНрд░рдгрд╛рд▓реА рдорд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрди рдЬрд╛рд░реА рд░рд╣рдиреЗрдЫред

рдкрд╛рдБрдЪ рд╡рд┐рджреНрдпрд╛рд░реНрдереА рд░ рддреАрди рдЬрдирд╛рд▓реЗ рдХреБрдЮреНрдЬреА-рдореВрд▓реНрдп рд╕реНрдЯреЛрд░рд╣рд░реВ рд╡рд┐рддрд░рдг рдЧрд░реЗ
рдШрдбреАрд╣рд░реВрдХреЛ рд╕рдЯреНрдЯрд╛, рдХрдиреНрд╕реБрд▓рд▓реЗ HTTP рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдЕрд╡рд░реБрджреНрдз рдЧрд░реЗрдХреЛ рдЫред рд╕рдВрдХреНрд╖реЗрдкрдорд╛, рдпреА рдбрд╛рдЯрд╛ рдкрдвреНрдиреЗ рд╡рд┐рдзрд┐рдорд╛ рд╕рд╛рдорд╛рдиреНрдп рдХрд▓рд╣рд░реВ рд╣реБрдиреН, рдЬрд╕рдХреЛ рд▓рд╛рдЧрд┐, рдЕрдиреНрдп рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВрд╕рдБрдЧреИ, рдбрд╛рдЯрд╛рдХреЛ рдЕрдиреНрддрд┐рдо рдЬреНрдЮрд╛рдд рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдХреЗрдд рдЧрд░рд┐рдПрдХреЛ рдЫред рдпрджрд┐ рд╕рд░реНрднрд░рдорд╛ рд╕рдореНрдмрдиреНрдзрд┐рдд рдбрд╛рдЯрд╛рдХреЛ рд╣рд╛рд▓рдХреЛ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░рд┐рдПрдХреЛ рднрдиреНрджрд╛ рдареВрд▓реЛ рдЫ рднрдиреЗ, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рддреБрд░реБрдиреНрддреИ рдлрд░реНрдХрд╛рдЗрдиреНрдЫ, рдЕрдиреНрдпрдерд╛ - рдЬрдм рдорд╛рди рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдиреНрдЫред рддреНрдпрд╣рд╛рдБ рдХреБрдиреИ рдкрдирд┐ рд╕рдордпрдорд╛ рдХреБрдЮреНрдЬреАрд╣рд░реВ рд╕рдВрд▓рдЧреНрди рдЧрд░реНрди рд╕рдХрд┐рдиреЗ рд╕рддреНрд░рд╣рд░реВ рдЫрдиреНред рдпреЛ рдиреЛрдЯ рдЧрд░реНрди рд▓рд╛рдпрдХ рдЫ рдХрд┐ etcd рд░ ZooKeeper рдХреЛ рд╡рд┐рдкрд░реАрдд, рдЬрд╣рд╛рдБ рд╕рддреНрд░рд╣рд░реВ рдореЗрдЯрд╛рдЙрдБрджрд╛ рд╕рдореНрдмрдиреНрдзрд┐рдд рдХреБрдЮреНрдЬреАрд╣рд░реВ рдореЗрдЯрд┐рдиреНрдЫ, рддреНрдпрд╣рд╛рдБ рдПрдХ рдореЛрдб рдЫ рдЬрд╕рдорд╛ рд╕рддреНрд░ рддрд┐рдиреАрд╣рд░реВрдмрд╛рдЯ рдорд╛рддреНрд░ рдЕрдирд▓рд┐рдЩреНрдХ рдЧрд░рд┐рдПрдХреЛ рдЫред рдЙрдкрд▓рдмреНрдз рдЫ рд▓реЗрдирджреЗрди, рд╢рд╛рдЦрд╛рд╣рд░реВ рдмрд┐рдирд╛, рддрд░ рд╕рдмреИ рдкреНрд░рдХрд╛рд░рдХрд╛ рдЪреЗрдХрд╣рд░реВрдХреЛ рд╕рд╛рдеред

рдпреЛ рд╕рдмреИ рдПрдХ рд╕рд╛рде рд░рд╛рдЦреНрджреИ

ZooKeeper рд╕рдБрдЧ рд╕рдмреИрднрдиреНрджрд╛ рдХрдареЛрд░ рдбрд╛рдЯрд╛ рдореЛрдбреЗрд▓ рдЫред etcd рдорд╛ рдЙрдкрд▓рдмреНрдз рдЕрднрд┐рд╡реНрдпрдХреНрдд рджрд╛рдпрд░рд╛ рдкреНрд░рд╢реНрдирд╣рд░реВ рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд░реВрдкрдорд╛ ZooKeeper рд╡рд╛ Consul рдорд╛ рдЕрдиреБрдХрд░рдг рдЧрд░реНрди рд╕рдХрд┐рдБрджреИрдиред рд╕рдмреИ рд╕реЗрд╡рд╛рд╣рд░реВрдмрд╛рдЯ рдЙрддреНрдХреГрд╖реНрдЯ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрджреИ, рд╣рд╛рдореАрд▓реЗ рдирд┐рдореНрди рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЕрдкрд╡рд╛рджрд╣рд░реВрдХреЛ рд╕рд╛рде ZooKeeper рдЗрдиреНрдЯрд░рдлреЗрд╕рдХреЛ рд▓рдЧрднрдЧ рдмрд░рд╛рдмрд░рдХреЛ рдЗрдиреНрдЯрд░рдлреЗрд╕рдХреЛ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рдЧрд░реНрдпреМрдВ:

  • рдЕрдиреБрдХреНрд░рдо, рдХрдиреНрдЯреЗрдирд░ рд░ TTL рдиреЛрдбрд╣рд░реВ рдореЗрд▓рд╛ рдЦрд╛рдПрди
  • ACL рд╣рд░реВ рд╕рдорд░реНрдерд┐рдд рдЫреИрдирдиреН
  • рдпрджрд┐ рдпреЛ рдЕрд╡рд╕реНрдерд┐рдд рдЫреИрди рднрдиреЗ рд╕реЗрдЯ рд╡рд┐рдзрд┐рд▓реЗ рдПрдЙрдЯрд╛ рдХреБрдЮреНрдЬреА рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрдЫ (ZK setData рдорд╛ рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛ рддреНрд░реБрдЯрд┐ рдлрд░реНрдХрд╛рдЙрдБрдЫ)
  • рд╕реЗрдЯ рд░ рдХреНрдпрд╛рд╕ рд╡рд┐рдзрд┐рд╣рд░реВ рдЕрд▓рдЧ рдЫрдиреН (ZK рдорд╛ рддрд┐рдиреАрд╣рд░реВ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдкрдорд╛ рдПрдЙрдЯреИ рдХреБрд░рд╛ рд╣реБрдиреН)
  • рдореЗрдЯрд╛рдЙрдиреЗ рд╡рд┐рдзрд┐рд▓реЗ рдиреЛрдбрд▓рд╛рдИ рдпрд╕рдХреЛ рд╕рдмрдЯреНрд░реАрдХреЛ рд╕рд╛рде рдореЗрдЯрд╛рдЙрдБрдЫ (рдЬреЗрдбрдХреЗ рдбрд┐рд▓рд┐рдЯрдорд╛ рдиреЛрдбрдорд╛ рдмрдЪреНрдЪрд╛рд╣рд░реВ рднрдПрдорд╛ рддреНрд░реБрдЯрд┐ рдлрд░реНрдХрд╛рдЙрдБрдЫ)
  • рдкреНрд░рддреНрдпреЗрдХ рдХреБрдЮреНрдЬреАрдХреЛ рд▓рд╛рдЧрд┐ рддреНрдпрд╣рд╛рдБ рдПрдХ рдорд╛рддреНрд░ рд╕рдВрд╕реНрдХрд░рдг рдЫ - рдореВрд▓реНрдп рд╕рдВрд╕реНрдХрд░рдг (ZK рдорд╛ рддреНрдпрд╣рд╛рдБ рддреА рдордзреНрдпреЗ рддреАрди рдЫрдиреН)

рдЕрдиреБрдХреНрд░рдорд┐рдХ рдиреЛрдбрд╣рд░реВрдХреЛ рдЕрд╕реНрд╡реАрдХреГрддрд┐ рддрдереНрдпрдХреЛ рдХрд╛рд░рдгрд▓реЗ рдЧрд░реНрджрд╛ рд╣реЛ рдХрд┐ etcd рд░ Consul рд╕рдБрдЧ рддрд┐рдиреАрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдирд┐рд░реНрдорд┐рдд рд╕рдорд░реНрдерди рдЫреИрди, рд░ рддрд┐рдиреАрд╣рд░реВ рд╕рдЬрд┐рд▓реИрд╕рдБрдЧ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рджреНрд╡рд╛рд░рд╛ рдирддрд┐рдЬрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЗрдиреНрдЯрд░рдлреЗрд╕рдХреЛ рд╢реАрд░реНрд╖рдорд╛ рд▓рд╛рдЧреВ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

рднреЗрд░реНрдЯреЗрдХреНрд╕ рдореЗрдЯрд╛рдЙрдБрджрд╛ ZooKeeper рдЬрд╕реНрддреИ рд╡реНрдпрд╡рд╣рд╛рд░ рд▓рд╛рдЧреВ рдЧрд░реНрди etcd рд░ Consul рдорд╛ рдкреНрд░рддреНрдпреЗрдХ рдХреБрдЮреНрдЬреАрдХреЛ рд▓рд╛рдЧрд┐ рдЫреБрдЯреНрдЯреИ рдЪрд╛рдЗрд▓реНрдб рдХрд╛рдЙрдиреНрдЯрд░ рдХрд╛рдпрдо рд░рд╛рдЦреНрди рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджрдЫред рд╣рд╛рдореАрд▓реЗ рдореЗрдЯрд╛ рдЬрд╛рдирдХрд╛рд░реА рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрдирдмрд╛рдЯ рдЬреЛрдЧрд┐рди рдкреНрд░рдпрд╛рд╕ рдЧрд░реЗрдХреЛрд▓реЗ, рдпреЛ рд╕рдореНрдкреВрд░реНрдг рд╕рдмрдЯреНрд░реА рдореЗрдЯрд╛рдЙрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░рд┐рдпреЛред

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд╕реВрдХреНрд╖реНрдорддрд╛рд╣рд░реВ

рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдорд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЗрдиреНрдЯрд░рдлреЗрд╕ рд▓рд╛рдЧреВ рдЧрд░реНрдиреЗ рдХреЗрд╣реА рдкрдХреНрд╖рд╣рд░реВрд▓рд╛рдИ рдирдЬрд┐рдХрдмрд╛рдЯ рд╣реЗрд░реМрдВред

рдЖрджрд┐рдорд╛ рдкрджрд╛рдиреБрдХреНрд░рдо

etcd рдорд╛ рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдХ рджреГрд╢реНрдп рдХрд╛рдпрдо рд░рд╛рдЦреНрдиреБ рд╕рдмреИрднрдиреНрджрд╛ рд░реЛрдЪрдХ рдХрд╛рд░реНрдпрд╣рд░реВ рдордзреНрдпреЗ рдПрдХ рд╣реБрди рдЧрдпреЛред рджрд╛рдпрд░рд╛ рдкреНрд░рд╢реНрдирд╣рд░реВрд▓реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЙрдкрд╕рд░реНрдЧрдХреЛ рд╕рд╛рде рдХреБрдЮреНрдЬреАрд╣рд░реВрдХреЛ рд╕реВрдЪреА рдкреБрди: рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рдмрдирд╛рдЙрдБрджрдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдпрджрд┐ рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╕реБрд░реБ рд╣реБрдиреЗ рд╕рдмреИ рдХреБрд░рд╛ рдЪрд╛рд╣рд┐рдиреНрдЫ "/foo", рддрдкрд╛рдЗрдБ рджрд╛рдпрд░рд╛рдХреЛ рд▓рд╛рдЧрд┐ рд╕реЛрдзреНрджреИ рд╣реБрдиреБрд╣реБрдиреНрдЫ ["/foo", "/fop")ред рддрд░ рдпрд╕рд▓реЗ рдХреБрдЮреНрдЬреАрдХреЛ рд╕рдореНрдкреВрд░реНрдг рд╕рдмрдЯреНрд░реА рдлрд░реНрдХрд╛рдЙрдиреЗрдЫ, рдЬреБрди рд╕рдмрдЯреНрд░реА рдареВрд▓реЛ рднрдПрдорд╛ рд╕реНрд╡реАрдХрд╛рд░реНрдп рдирд╣реБрди рд╕рдХреНрдЫред рд╕реБрд░реБрдорд╛ рд╣рд╛рдореАрд▓реЗ рдХреБрдЮреНрдЬреА рдЕрдиреБрд╡рд╛рдж рд╕рдВрдпрдиреНрддреНрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдпреЛрдЬрдирд╛ рдмрдирд╛рдпреМрдВ, zetcd рдорд╛ рд▓рд╛рдЧреВ рдЧрд░рд┐рдпреЛред рдпрд╕рд▓реЗ рдХреБрдЮреНрдЬреАрдХреЛ рд╕реБрд░реБрдорд╛ рдПрдЙрдЯрд╛ рдмрд╛рдЗрдЯ рдердкреНрдиреЗ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ, рд░реВрдЦрдХреЛ рдиреЛрдбрдХреЛ рдЧрд╣рд┐рд░рд╛рдЗ рдмрд░рд╛рдмрд░ред рдо рддрдкрд╛рдИрдВрд▓рд╛рдИ рдПрдЙрдЯрд╛ рдЙрджрд╛рд╣рд░рдг рджрд┐рдиреНрдЫреБред

"/foo" -> "u01/foo"
"/foo/bar" -> "u02/foo/bar"

рддреНрдпрд╕рдкрдЫрд┐ рдЪрд╛рдмреАрдХреЛ рд╕рдмреИ рддрддреНрдХрд╛рд▓ рдмрдЪреНрдЪрд╛рд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрд╣реЛрд╕реН "/foo" рджрд╛рдпрд░рд╛ рдЕрдиреБрд░реЛрдз рдЧрд░реЗрд░ рд╕рдореНрднрд╡ рдЫ ["u02/foo/", "u02/foo0")ред рд╣реЛ, ASCII рдорд╛ "0" рдареАрдХ рдкрдЫрд┐ рдЦрдбрд╛ рдЫ "/".

рддрд░ рдХрд╕рд░реА рдпрд╕ рдорд╛рдорд▓рд╛ рдорд╛ рдПрдХ рдард╛рдбреЛ рд╣рдЯрд╛рдЙрдиреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди? рдпреЛ рдмрд╛рд╣рд┐рд░ рдЬрд╛рдиреНрдЫ рдХрд┐ рддрдкрд╛рдЗрдБ рдкреНрд░рдХрд╛рд░ рдХреЛ рд╕рдмреИ рджрд╛рдпрд░рд╛ рдореЗрдЯрд╛рдЙрди рдЖрд╡рд╢реНрдпрдХ рдЫ ["uXX/foo/", "uXX/foo0") XX рдХреЛ рд▓рд╛рдЧрд┐ режрез рджреЗрдЦрд┐ FF рд╕рдореНрдоред рдЕрдирд┐ рд╣рд╛рдореА рднрд┐рддреНрд░ рдкрд╕реНрдпреМрдВ рд╕рдЮреНрдЪрд╛рд▓рди рд╕рдВрдЦреНрдпрд╛ рд╕реАрдорд╛ рдПрдХ рд▓реЗрдирджреЗрди рднрд┐рддреНрд░ред

рдирддрд┐рдЬрд╛рдХреЛ рд░реВрдкрдорд╛, рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХреБрдЮреНрдЬреА рд░реВрдкрд╛рдиреНрддрд░рдг рдкреНрд░рдгрд╛рд▓реА рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ, рдЬрд╕рд▓реЗ рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд░реВрдкрдорд╛ рдХреБрдЮреНрдЬреА рдореЗрдЯрд╛рдЙрдиреЗ рд░ рдмрдЪреНрдЪрд╛рд╣рд░реВрдХреЛ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рджреБрд╡реИрд▓рд╛рдИ рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд░реВрдкрдорд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рд╕рдореНрднрд╡ рдмрдирд╛рдпреЛред рдпреЛ рдЕрдиреНрддрд┐рдо рдЯреЛрдХрди рдЕрдШрд┐ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╡рд░реНрдг рдердкреНрди рдкрд░реНрдпрд╛рдкреНрдд рдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐:

"/very" -> "/u00very"
"/very/long" -> "/very/u00long"
"/very/long/path" -> "/very/long/u00path"

рддреНрдпрд╕рдкрдЫрд┐ рдХреБрдЮреНрдЬреА рдореЗрдЯрд╛рдЙрдиреЗ "/very" рдореЗрдЯрд╛рдЗрдорд╛ рдкрд░рд┐рдгрдд рд╣реБрдиреНрдЫ "/u00very" рд░ рджрд╛рдпрд░рд╛ ["/very/", "/very0"), рд░ рд╕рдмреИ рдмрдЪреНрдЪрд╛рд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджреИ - рджрд╛рдпрд░рд╛рдмрд╛рдЯ рдХреБрдЮреНрдЬреАрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЕрдиреБрд░реЛрдзрдорд╛ ["/very/u00", "/very/u01").

ZooKeeper рдорд╛ рдХреБрдЮреНрдЬреА рд╣рдЯрд╛рдЙрдБрджреИ

рдореИрд▓реЗ рдкрд╣рд┐рд▓реЗ рдиреИ рдЙрд▓реНрд▓реЗрдЦ рдЧрд░реЗрдЭреИрдВ, ZooKeeper рдорд╛ рддрдкрд╛рдИрд▓реЗ рдиреЛрдб рдореЗрдЯрд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрди рдпрджрд┐ рдпрд╕рдорд╛ рдмрдЪреНрдЪрд╛рд╣рд░реВ рдЫрдиреНред рд╣рд╛рдореА рд╕рдмрдЯреНрд░реАрдХреЛ рд╕рд╛рде рдХреБрдЮреНрдЬреА рдореЗрдЯрд╛рдЙрди рдЪрд╛рд╣рдиреНрдЫреМрдВред рдореИрд▓реЗ рдХреЗ рдЧрд░реНрдиреБрдкрд░реНрдЫ? рд╣рд╛рдореА рдпреЛ рдЖрд╢рд╛рд╡рд╛рджрдХрд╛ рд╕рд╛рде рдЧрд░реНрдЫреМрдВред рдкрд╣рд┐рд▓реЛ, рд╣рд╛рдореА рджреЛрд╣реЛрд░рд┐рдиреЗ рд░реВрдкрдорд╛ рд╕рдмрдЯреНрд░реА рдЯреНрд░реНрдпрд╛рднреНрд╕ рдЧрд░реНрдЫреМрдВ, рдкреНрд░рддреНрдпреЗрдХ рднреЗрд░реНрдЯреЗрдХреНрд╕рдХреЛ рдмрдЪреНрдЪрд╛рд╣рд░реВ рдЫреБрдЯреНрдЯреИ рдХреНрд╡реЗрд░реАрдХреЛ рд╕рд╛рде рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджреИред рддреНрдпрд╕рдкрдЫрд┐ рд╣рд╛рдореА рд▓реЗрдирджреЗрди рдмрдирд╛рдЙрдБрдЫреМрдВ рдЬрд╕рд▓реЗ рд╕рдмрдЯреНрд░реАрдХреЛ рд╕рдмреИ рдиреЛрдбрд╣рд░реВ рд╕рд╣реА рдХреНрд░рдордорд╛ рдореЗрдЯрд╛рдЙрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдЫред рдЕрд╡рд╢реНрдп рдкрдирд┐, рд╕рдмрдЯреНрд░реА рдкрдвреНрдиреЗ рд░ рдореЗрдЯрд╛рдЙрдиреЗ рдмреАрдЪрдорд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рд╣реБрди рд╕рдХреНрдЫрдиреНред рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рд▓реЗрдирджреЗрди рдЕрд╕рдлрд▓ рд╣реБрдиреЗрдЫред рдпрд╕рдмрд╛рд╣реЗрдХ, рдкрдвреНрдиреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рдХреНрд░рдордорд╛ рд╕рдмрдЯреНрд░реА рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрди рд╕рдХреНрдЫред рдЕрд░реНрдХреЛ рдиреЛрдбрдХрд╛ рдмрдЪреНрдЪрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЕрдиреБрд░реЛрдзрд▓реЗ рддреНрд░реБрдЯрд┐ рдлрд░реНрдХрд╛рдЙрди рд╕рдХреНрдЫ рдпрджрд┐, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдпреЛ рдиреЛрдб рдкрд╣рд┐рд▓реЗ рдиреИ рдореЗрдЯрд╛рдЗрдПрдХреЛ рдЫред рджреБрд╡реИ рдЕрд╡рд╕реНрдерд╛рдорд╛, рд╣рд╛рдореА рдлреЗрд░рд┐ рд╕рдореНрдкреВрд░реНрдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреЛрд╣реЛрд░реНрдпрд╛рдЙрдБрдЫреМрдВред

рдпреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдгрд▓реЗ рдХреБрдЮреНрдЬреА рдореЗрдЯрд╛рдЙрди рдзреЗрд░реИ рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рдмрдирд╛рдЙрдБрджрдЫ рдпрджрд┐ рдпрд╕рдорд╛ рдмрдЪреНрдЪрд╛рд╣рд░реВ рдЫрдиреН рднрдиреЗ, рд░ рдЕрдЭ рдмрдвреА рдпрджрд┐ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд▓реЗ рд╕рдмрдЯреНрд░реАрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрди рдЬрд╛рд░реА рд░рд╛рдЦреНрдЫ рднрдиреЗ, рдореЗрдЯрд╛рдЙрдиреЗ рд░ рдХреБрдЮреНрдЬреАрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрдЫред рдпрджреНрдпрдкрд┐, рдпрд╕рд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ etcd рд░ Consul рдорд╛ рдЕрдиреНрдп рд╡рд┐рдзрд┐рд╣рд░реВрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд▓рд╛рдИ рдЬрдЯрд┐рд▓ рдмрдирд╛рдЙрдирдмрд╛рдЯ рдЬреЛрдЧрд┐рди рдЕрдиреБрдорддрд┐ рджрд┐рдпреЛред

ZooKeeper рдорд╛ рд╕реЗрдЯ

ZooKeeper рдорд╛ рд░реВрдЦ рд╕рдВрд░рдЪрдирд╛ (create, delete, getChildren) рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреЗ рд░ рдиреЛрдбрд╣рд░реВрдорд╛ рдбреЗрдЯрд╛ (setData, getData) рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреЗ рдЫреБрдЯреНрдЯреИ рд╡рд┐рдзрд┐рд╣рд░реВ рдЫрдиреНред рдпрд╕рдмрд╛рд╣реЗрдХ, рд╕рдмреИ рд╡рд┐рдзрд┐рд╣рд░реВрдорд╛ рдХрдбрд╛ рдкреВрд░реНрд╡рд╕рд░реНрддрд╣рд░реВ рдЫрдиреН: рд╕рд┐рд░реНрдЬрдирд╛рд▓реЗ рддреНрд░реБрдЯрд┐ рдлрд░реНрдХрд╛рдЙрдиреЗрдЫ рдпрджрд┐ рдиреЛрдб рдкрд╣рд┐рд▓реЗ рдиреИ рдЫ рднрдиреЗред рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ, рдореЗрдЯрд╛рдЙрдиреЗ рд╡рд╛ рд╕реЗрдЯ рдбрд╛рдЯрд╛ - рдпрджрд┐ рдпреЛ рдкрд╣рд┐рд▓реЗ рдиреИ рдЕрд╡рд╕реНрдерд┐рдд рдЫреИрдиред рд╣рд╛рдореАрд▓рд╛рдИ рдПрдХ рд╕реЗрдЯ рд╡рд┐рдзрд┐ рдЪрд╛рд╣рд┐рдиреНрдЫ рдЬреБрди рдХреБрдЮреНрдЬреАрдХреЛ рдЙрдкрд╕реНрдерд┐рддрд┐рдХреЛ рдмрд╛рд░реЗрдорд╛ рд╕реЛрдЪ рдирдЧрд░реА рдХрд▓ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

рдПрдЙрдЯрд╛ рд╡рд┐рдХрд▓реНрдк рднрдиреЗрдХреЛ рдореЗрдЯрд╛рдЙрдиреЗ рдЬрд╕реНрддреИ рдЖрд╢рд╛рд╡рд╛рджреА рджреГрд╖реНрдЯрд┐рдХреЛрдг рд▓рд┐рдиреБ рд╣реЛред рдпрджрд┐ рдиреЛрдб рдЕрд╡рд╕реНрдерд┐рдд рдЫ рднрдиреЗ рдЬрд╛рдБрдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдпрджрд┐ рдЕрд╡рд╕реНрдерд┐рдд рдЫ рднрдиреЗ, рд╕реЗрдЯрдбреЗрдЯрд╛ рдХрд▓ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдЕрдиреНрдпрдерд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдпрджрд┐ рдЕрдиреНрддрд┐рдо рд╡рд┐рдзрд┐рд▓реЗ рддреНрд░реБрдЯрд┐ рдлрд░реНрдХрд╛рдЙрдБрдЫ рднрдиреЗ, рдпрд╕рд▓рд╛рдИ рдлреЗрд░рд┐ рджреЛрд╣реЛрд░реНрдпрд╛рдЙрдиреБрд╣реЛрд╕реНред рдзреНрдпрд╛рди рджрд┐рдиреБрдкрд░реНрдиреЗ рдкрд╣рд┐рд▓реЛ рдХреБрд░рд╛ рдпреЛ рд╣реЛ рдХрд┐ рдЕрд╕реНрддрд┐рддреНрд╡ рдкрд░реАрдХреНрд╖рдг рд╡реНрдпрд░реНрде рдЫред рддрдкрд╛рдИрдВ рддреБрд░реБрдиреНрддреИ рд╕рд┐рд░реНрдЬрдирд╛ рдХрд▓ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рд╕рдлрд▓ рд╕рдорд╛рдкрдирдХреЛ рдорддрд▓рдм рдиреЛрдб рдЕрд╡рд╕реНрдерд┐рдд рдерд┐рдПрди рд░ рдпреЛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рдЕрдиреНрдпрдерд╛, рд╕рд┐рд░реНрдЬрдирд╛рд▓реЗ рдЙрдкрдпреБрдХреНрдд рддреНрд░реБрдЯрд┐ рдлрд░реНрдХрд╛рдЙрдиреЗрдЫ, рдЬрд╕ рдкрдЫрд┐ рддрдкрд╛рдИрдВрд▓реЗ рд╕реЗрдЯрдбреЗрдЯрд╛рд▓рд╛рдИ рдХрд▓ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рдХрд▓рд╣рд░реВ рдмреАрдЪ, рдПрдХ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзреА рдХрд▓ рджреНрд╡рд╛рд░рд╛ vertex рдореЗрдЯрд╛рдЙрди рд╕рдХрд┐рдиреНрдЫ, рд░ setData рд▓реЗ рдкрдирд┐ рддреНрд░реБрдЯрд┐ рдлрд┐рд░реНрддрд╛ рдЧрд░реНрдиреЗрдЫред рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рддрдкрд╛рдЗрдБ рдпреЛ рд╕рдмреИ рдлреЗрд░рд┐ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рддрд░ рдХреЗ рдпреЛ рдпрд╕рдХреЛ рд▓рд╛рдпрдХ рдЫ?

рдпрджрд┐ рджреБрдмреИ рд╡рд┐рдзрд┐рд╣рд░реВрд▓реЗ рддреНрд░реБрдЯрд┐ рдлрд░реНрдХрд╛рдЙрдБрдЫ рднрдиреЗ, рд╣рд╛рдореА рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдкрдорд╛ рдЬрд╛рдиреНрджрдЫреМрдВ рдХрд┐ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛рддреНрдордХ рдореЗрдЯрд╛рдЗрдПрдХреЛ рдерд┐рдпреЛред рдХрд▓реНрдкрдирд╛ рдЧрд░реМрдВ рдХрд┐ рдпреЛ рдореЗрдЯрд╛рдЙрдиреЗ рдХрд▓ рд╕реЗрдЯ рдкрдЫрд┐ рднрдпреЛред рддреНрдпрд╕реЛрднрдП рд╣рд╛рдореАрд▓реЗ рд╕реНрдерд╛рдкрд┐рдд рдЧрд░реНрди рдЦреЛрдЬреЗрдХрд╛ рдЬреБрдирд╕реБрдХреИ рдЕрд░реНрде рдкрд╣рд┐рд▓реЗ рдиреИ рдореЗрдЯрд┐рдПрдХреЛ рдЫред рдпрд╕рдХреЛ рдорддрд▓рдм рд╣рд╛рдореА рдорд╛рдиреНрди рд╕рдХреНрдЫреМрдВ рдХрд┐ рд╕реЗрдЯ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ, рдпрджреНрдпрдкрд┐ рд╡рд╛рд╕реНрддрд╡рдорд╛ рдХреЗрд╣рд┐ рдкрдирд┐ рд▓реЗрдЦрд┐рдПрдХреЛ рдерд┐рдПрдиред

рдердк рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рд╡рд┐рд╡рд░рдг

рдпрд╕ рдЦрдгреНрдбрдорд╛ рд╣рд╛рдореА рд╡рд┐рддрд░рд┐рдд рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдмрд╛рдЯ рд╡рд┐рд╢реНрд░рд╛рдо рд▓рд┐рдиреЗрдЫреМрдВ рд░ рдХреЛрдбрд┐рдЩрдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреБрд░рд╛ рдЧрд░реНрдиреЗрдЫреМрдВред
рдЧреНрд░рд╛рд╣рдХрдХреЛ рдореБрдЦреНрдп рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВ рдордзреНрдпреЗ рдПрдХ рдХреНрд░рд╕-рдкреНрд▓реЗрдЯрдлрд░реНрдо рдерд┐рдпреЛ: рдХрдореНрддрд┐рдорд╛ рдПрдЙрдЯрд╛ рд╕реЗрд╡рд╛ рд▓рд┐рдирдХреНрд╕, MacOS рд░ Windows рдорд╛ рд╕рдорд░реНрдерд┐рдд рд╣реБрдиреБрдкрд░реНрдЫред рд╕реБрд░реБрдорд╛, рд╣рд╛рдореАрд▓реЗ рд▓рд┐рдирдХреНрд╕рдХреЛ рд▓рд╛рдЧрд┐ рдорд╛рддреНрд░ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрдпреМрдВ, рд░ рдкрдЫрд┐ рдЕрдиреНрдп рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдорд╛ рдкрд░реАрдХреНрд╖рдг рд╕реБрд░реБ рдЧрд░реНрдпреМрдВред рдпрд╕рд▓реЗ рдзреЗрд░реИ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдирд┐рдореНрддреНрдпрд╛рдпреЛ, рдЬреБрди рдХреЗрд╣рд┐ рд╕рдордпрдХреЛ рд▓рд╛рдЧрд┐ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдЕрд╕реНрдкрд╖реНрдЯ рдерд┐рдпреЛ рдХрд╕рд░реА рдкреБрдЧреНрдиреЗред рдлрд▓рд╕реНрд╡рд░реВрдк, рд╕рдмреИ рддреАрди рд╕рдордиреНрд╡рдп рд╕реЗрд╡рд╛рд╣рд░реВ рдЕрдм Linux рд░ MacOS рдорд╛ рд╕рдорд░реНрдерд┐рдд рдЫрдиреН, рдЬрдмрдХрд┐ Consul KV рдорд╛рддреНрд░ Windows рдорд╛ рд╕рдорд░реНрдерд┐рдд рдЫред

рд╕реБрд░реБрджреЗрдЦрд┐ рдиреИ, рд╣рд╛рдореАрд▓реЗ рд╕реЗрд╡рд╛рд╣рд░реВ рдкрд╣реБрдБрдЪ рдЧрд░реНрди рддрдпрд╛рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдпреМрдВред ZooKeeper рдХреЛ рдорд╛рдорд▓рд╛ рдорд╛, рдЫрдиреЛрдЯ рдорд╛ рдкрд░реНрдпреЛ ZooKeeper C++, рдЬреБрди рдЕрдиреНрддрддрдГ Windows рдорд╛ рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░реНрди рдЕрд╕рдлрд▓ рднрдпреЛред рдпреЛ, рддрдерд╛рдкрд┐, рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рдЫреИрди: рдкреБрд╕реНрддрдХрд╛рд▓рдп linux-рдорд╛рддреНрд░ рдХреЛ рд░реВрдкрдорд╛ рд╕реНрдерд┐рдд рдЫред рдХрдиреНрд╕реБрд▓рдХреЛ рд▓рд╛рдЧрд┐ рдПрдХрдорд╛рддреНрд░ рд╡рд┐рдХрд▓реНрдк рдерд┐рдпреЛ ppconsulред рдпрд╕рдорд╛ рд╕рдорд░реНрдерди рдердкреНрдиреБрдкрд░реНрдпреЛ рд╕рддреНрд░рд╣рд░реВ ╨╕ рд▓реЗрдирджреЗрдиред etcd рдХреЛ рд▓рд╛рдЧрд┐, рдкреНрд░реЛрдЯреЛрдХрд▓рдХреЛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рд╕рдорд░реНрдерди рдЧрд░реНрдиреЗ рдкреВрд░реНрдг рдкреБрд╕реНрддрдХрд╛рд▓рдп рдлреЗрд▓рд╛ рдкрд░реЗрди, рддреНрдпрд╕реИрд▓реЗ рд╣рд╛рдореА рдХреЗрд╡рд▓ рдЙрддреНрдкрдиреНрди grpc рдЧреНрд░рд╛рд╣рдХ.

ZooKeeper C++ рдкреБрд╕реНрддрдХрд╛рд▓рдпрдХреЛ рдПрд╕рд┐рдиреНрдХреНрд░реЛрдирд╕ рдЗрдиреНрдЯрд░рдлреЗрд╕рдмрд╛рдЯ рдкреНрд░реЗрд░рд┐рдд рднрдПрд░, рд╣рд╛рдореАрд▓реЗ рдПрд╕рд┐рдиреНрдХреНрд░реЛрдирд╕ рдЗрдиреНрдЯрд░рдлреЗрд╕ рдкрдирд┐ рд▓рд╛рдЧреВ рдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реНрдпреМрдВред ZooKeeper C++ рд▓реЗ рдпрд╕рдХрд╛ рд▓рд╛рдЧрд┐ рднрд╡рд┐рд╖реНрдп/рдкреНрд░реЛрдорд┐рд╕ рдкреНрд░рд┐рдорд┐рдЯрд┐рд╡рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫред STL рдорд╛, рджреБрд░реНрднрд╛рдЧреНрдпрд╡рд╢, рддрд┐рдиреАрд╣рд░реВ рдзреЗрд░реИ рдирдореНрд░рддрд╛рдкреВрд░реНрд╡рдХ рд▓рд╛рдЧреВ рд╣реБрдиреНрдЫрдиреНред рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, рдЫреИрди рддреНрдпрд╕рдкрдЫрд┐ рд╡рд┐рдзрд┐, рдЬрд╕рд▓реЗ рдкрд╛рд╕ рднрдПрдХреЛ рдкреНрд░рдХрд╛рд░реНрдпрд▓рд╛рдИ рднрд╡рд┐рд╖реНрдпрдХреЛ рдирддрд┐рдЬрд╛рдорд╛ рд▓рд╛рдЧреВ рдЧрд░реНрдЫ рдЬрдм рдпреЛ рдЙрдкрд▓рдмреНрдз рд╣реБрдиреНрдЫред рд╣рд╛рдореНрд░реЛ рдЕрд╡рд╕реНрдерд╛рдорд╛, рд╣рд╛рдореНрд░реЛ рдкреБрд╕реНрддрдХрд╛рд▓рдпрдХреЛ рдврд╛рдБрдЪрд╛рдорд╛ рдкрд░рд┐рдгрд╛рдо рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрди рдпрд╕реНрддреЛ рд╡рд┐рдзрд┐ рдЖрд╡рд╢реНрдпрдХ рдЫред рдпрд╕ рд╕рдорд╕реНрдпрд╛рдХреЛ рд╡рд░рд┐рдкрд░рд┐ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди, рд╣рд╛рдореАрд▓реЗ рд╣рд╛рдореНрд░реЛ рдЖрдлреНрдиреИ рд╕рд░рд▓ рдереНрд░реЗрдб рдкреВрд▓ рд▓рд╛рдЧреВ рдЧрд░реНрдиреБрдкрд░реНтАНрдпреЛ, рдХрд┐рдирдХрд┐ рдЧреНрд░рд╛рд╣рдХрдХреЛ рдЕрдиреБрд░реЛрдзрдорд╛ рд╣рд╛рдореАрд▓реЗ рдмреВрд╕реНрдЯ рдЬрд╕реНрддрд╛ рднрд╛рд░реА рддреЗрд╕реНрд░реЛ-рдкрдХреНрд╖ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреЗрдиреМрдВред

рд╣рд╛рдореНрд░реЛ рддреНрдпрд╕рдмреЗрд▓рд╛рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд▓реЗ рдпрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдЫред рдмреЛрд▓рд╛рдЙрдБрджрд╛, рдердк рд╡рд╛рдЪрд╛/рднрд╡рд┐рд╖реНрдпрдХреЛ рдЬреЛрдбреА рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдиреНрдЫред рдирдпрд╛рдБ рднрд╡рд┐рд╖реНрдп рдлрд░реНрдХрд╛рдЗрдиреНрдЫ, рд░ рдкрд╛рд╕ рднрдПрдХреЛрд▓рд╛рдИ рд╕рдореНрдмрдиреНрдзрд┐рдд рдкреНрд░рдХрд╛рд░реНрдп рд░ рд▓рд╛рдордорд╛ рдердк рд╡рд╛рдЪрд╛ рд╕рд╣рд┐рдд рд░рд╛рдЦрд┐рдПрдХреЛ рдЫред рдкреВрд▓рдмрд╛рдЯ рдПрдЙрдЯрд╛ рдереНрд░реЗрдбрд▓реЗ рд▓рд╛рдордмрд╛рдЯ рдзреЗрд░реИ рдлреНрдпреБрдЪрд░рд╣рд░реВ рдЪрдпрди рдЧрд░реНрдЫ рд░ wait_for рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдорддрджрд╛рди рдЧрд░реНрдЫред рдЬрдм рдирддрд┐рдЬрд╛ рдЙрдкрд▓рдмреНрдз рд╣реБрдиреНрдЫ, рд╕рдореНрдмрдиреНрдзрд┐рдд рдкреНрд░рдХрд╛рд░реНрдп рднрдирд┐рдиреНрдЫ рд░ рдпрд╕рдХреЛ рдлрд┐рд░реНрддреА рдореВрд▓реНрдп рдкреНрд░рддрд┐рдЬреНрдЮрд╛рдорд╛ рдкрд╛рд░рд┐рдд рд╣реБрдиреНрдЫред

рд╣рд╛рдореАрд▓реЗ etcd рд░ Consul рд▓рд╛рдИ рдкреНрд░рд╢реНрдирд╣рд░реВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рдПрдЙрдЯреИ рдереНрд░реЗрдб рдкреВрд▓ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдпреМрдВред рдпрд╕рдХреЛ рдорддрд▓рдм рдЕрдиреНрддрд░реНрдирд┐рд╣рд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВ рдзреЗрд░реИ рдлрд░рдХ рдереНрд░реЗрдбрд╣рд░реВрджреНрд╡рд╛рд░рд╛ рдкрд╣реБрдБрдЪ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред ppconsul рдереНрд░реЗрдб рд╕реБрд░рдХреНрд╖рд┐рдд рдЫреИрди, рддреНрдпрд╕реИрд▓реЗ рдпрд╕рдорд╛ рдХрд▓рд╣рд░реВ рд▓рдХрд╣рд░реВрджреНрд╡рд╛рд░рд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рдЫрдиреНред
рддрдкрд╛рдИрдВ рдзреЗрд░реИ рдереНрд░реЗрдбрд╣рд░реВрдмрд╛рдЯ grpc рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рддрд░ рддреНрдпрд╣рд╛рдБ рд╕реВрдХреНрд╖реНрдорддрд╛рд╣рд░реВ рдЫрдиреНред рдЖрджрд┐рдорд╛ рдШрдбреАрд╣рд░реВ grpc рд╕реНрдЯреНрд░рд┐рдорд╣рд░реВ рдорд╛рд░реНрдлрдд рд▓рд╛рдЧреВ рдЧрд░рд┐рдиреНрдЫред рдпреА рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рдХрд╛рд░рдХрд╛ рд╕рдиреНрджреЗрд╢рд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рджреНрд╡рд┐рджрд┐рд╢рд╛рддреНрдордХ рдЪреНрдпрд╛рдирд▓рд╣рд░реВ рд╣реБрдиреНред рдкреБрд╕реНрддрдХрд╛рд▓рдпрд▓реЗ рд╕рдмреИ рдШрдбреАрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдПрдХрд▓ рдереНрд░реЗрдб рд░ рдЖрдЧрдорди рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрдиреЗ рдПрдХрд▓ рдереНрд░реЗрдб рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрдЫред рддреНрдпрд╕реИрд▓реЗ grpc рд▓реЗ рд╕реНрдЯреНрд░рд┐рдордорд╛ рд╕рдорд╛рдирд╛рдиреНрддрд░ рд▓реЗрдЦреНрди рдирд┐рд╖реЗрдз рдЧрд░реНрдЫред рдпрд╕рдХреЛ рдорддрд▓рдм рдпреЛ рд╣реЛ рдХрд┐ рдШрдбреА рд╕реБрд░реБ рдЧрд░реНрджрд╛ рд╡рд╛ рдореЗрдЯрд╛рдЙрдБрджрд╛, рддрдкрд╛рдИрдВрд▓реЗ рдЕрд░реНрдХреЛ рдкрдард╛рдЙрдиреБ рдЕрдШрд┐ рдЕрдШрд┐рд▓реНрд▓реЛ рдЕрдиреБрд░реЛрдз рдкрдард╛рдЙрди рдкреВрд░рд╛ рдирднрдПрд╕рдореНрдо рдкрд░реНрдЦрдиреБ рдкрд░реНрдЫред рд╣рд╛рдореА рд╕рд┐рдЩреНрдХреНрд░реЛрдирд╛рдЗрдЬреЗрд╕рдирдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВ рд╕рд╢рд░реНрдд рдЪрд░рд╣рд░реВ.

рдкрд░рд┐рдгрд╛рдо

рдЖрдлреИрд▓рд╛рдИ рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН: liboffkv.

рд╣рд╛рдореНрд░реЛ рд╕рдореВрд╣: Raed Romanov, рдЗрд╡рд╛рди рдЧреНрд▓реБрд╕реЗрдиреНрдХреЛрдн, рджрд┐рдорд┐рддреНрд░реА рдХрдорд▓рджрд┐рдиреЛрдн, рднрд┐рдХреНрдЯрд░ рдХреНрд░рд╛рдкрд┐рднреЗрдиреНрд╕реНрдХреА, Vitaly Ivanin.

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди