рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░ рдХреАрдкрд░ рдпрд╛ рд╡рд┐рддрд░рд┐рдд рд▓реЙрдХ рд╕реЗрд╡рд╛ рд▓рд┐рдЦреЗрдВ

рдЕрд╕реНрд╡реАрдХрд░рдг рдРрд╕рд╛ рд╣реБрдЖ рдХрд┐ рдкрд┐рдЫрд▓реЗ рдорд╣реАрдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рдЬрд╝реВрдХрд┐рдкрд░ рдХреЗ рд╕рд╛рде рдЫрдВрдЯрдиреА рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдореБрдЭреЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рдереА рдХрд┐ рдореБрдЭреЗ рдХреНрдпрд╛ рдорд┐рд▓рд╛, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреЛрд╕реНрдЯ, рдФрд░ рд▓реЙрдХ рд╕реЗрд╡рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдирд╛рдо рд╕реЗ рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВред рдЪрд▓реЛ рдЪрд▓рддреЗ рд╣реИрдВ!

рдорд▓реНрдЯреА-рдереНрд░реЗрдбреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреА рдЧрдИ рд╡рд┐рддрд░рд┐рдд рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ рдЬрд╛рдиреЗ рдкрд░, рдХрдИ рдорд╛рдирдХ рддрдХрдиреАрдХреЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддреА рд╣реИрдВред рдЗрди рддрдХрдиреАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХрд╛ рджрд╛рдпрд░рд╛ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рддрдХ рд╕реАрдорд┐рдд рд╣реИ, рдЗрд╕рд▓рд┐рдП, рд╡реЗ рди рдХреЗрд╡рд▓ рд╡рд┐рддрд░рд┐рдд рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдиреЛрдбреНрд╕ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдПрдХ рд╣реА рдорд╢реАрди рдкрд░ рд╡рд┐рднрд┐рдиреНрди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЗ рдмреАрдЪ рднреА рдирд╣реАрдВ; рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд▓реЙрдХрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рддрдВрддреНрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╡рд┐рддрд░рд┐рдд рд▓реЙрдХ рд╕реЗрд╡рд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЙрдЪрд┐рдд рд╣реИ:
  1. рдиреЗрдЯрд╡рд░реНрдХ рдмреНрд▓рд┐рдВрдХрд┐рдВрдЧ рдХреА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ (рд╡рд┐рддрд░рд┐рдд рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдкрд╣рд▓рд╛ рдирд┐рдпрдо рдпрд╣ рд╣реИ рдХрд┐ рд╡рд┐рддрд░рд┐рдд рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреЗрдЯрд╡рд░реНрдХ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдирд╣реАрдВ рд╣реИ )
  2. рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдПрдХ рднреА рдмрд┐рдВрджреБ рдХреА рдХрдореА

ZooKeeper рд╣рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреА рд╕реЗрд╡рд╛ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред

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

рдПрдХ рдЕрдкрд░рд┐рдЪрд┐рдд рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рд╛рде рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдирд╛ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЗрд╕реЗ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП

рд╕рдорд░реНрдерд┐рдд рдХрд╛рд░реНрдп


рдореМрдЬреВрдж рд╣реИznode рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрд╕рдХрд╛ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ
рдмрдирд╛рдиреЗznode рдмрдирд╛рддрд╛ рд╣реИ
рд╣рдЯрд╛рдирд╛znode рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИ
GetDataрдбреЗрдЯрд╛ znode рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ
setDataрдирдП рдбреЗрдЯрд╛ рдХреЛ znode рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рддрд╛ рд╣реИ
getChildrenрдирд┐рд░реНрджрд┐рд╖реНрдЯ znode рдХреЗ рдмрдЪреНрдЪреЗ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ
рд╕рд┐рдВрдХрдХреНрд▓рд╕реНрдЯрд░ рдиреЛрдб рдХреЗ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рд╕рд╕реЗ рд╣рдо рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВ, рдФрд░ рд╡рд┐рдЬрд╝рд╛рд░реНрдбред

рдЗрди рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдореВрд╣реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдХреЙрд▓рдмреИрдХрдХреИрд╕
рдореМрдЬреВрдж рд╣реИрд╣рдЯрд╛рдирд╛
GetDatasetData
getChildrenрдмрдирд╛рдиреЗ
рд╕рд┐рдВрдХ

рдХреЙрд▓рдмреИрдХ - рд░реАрдб-рдУрдирд▓реА рдСрдкрд░реЗрд╢рдВрд╕ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдХреЙрд▓рдмреИрдХ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЕрдиреБрд░реЛрдзрд┐рдд рдЗрдХрд╛рдИ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрдиреЗ рдкрд░ рдХреЙрд▓рдмреИрдХ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдХреЙрд▓рдмреИрдХ рдПрдХ рдмрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЬрдм рдЖрдкрдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдореВрд▓реНрдп рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рд▓рдЧрд╛рддрд╛рд░ рд╕рд╛рдЗрди-рдЗрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ ред

рдХреИрд╕ - рдЕрдиреБрд░реЛрдз рд▓рд┐рдЦреЗрдВред рдЬрд╝реВрдХреЗрдкрд░ рдореЗрдВ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛рддреНрдордХ рдкрд╣реБрдВрдЪ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреА рддреБрд▓рдирд╛ рдФрд░-рд╕реНрд╡реИрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреА рдЧрдИ рд╣реИ : рдЗрд╕рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рддреНрдпреЗрдХ znode рдХреЗ рд╕рд╛рде рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕реЗ рдмрджрд▓рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ znode рдкрд╣рд▓реЗ рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╕рдВрд╕реНрдХрд░рдг рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдЗрд╕рдХреЗ рдЕрдиреБрд░реВрдк рдЕрдкрд╡рд╛рдж рдорд┐рд▓реЗрдЧрд╛ред рдЗрд╕ рд╕рдореВрд╣ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

create - рдПрдХ рдирдпрд╛ znode (key / value pair) рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдХреБрдВрдЬреА рджреЗрддрд╛ рд╣реИред рдпрд╣ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреБрдВрдЬреА рдХреЛ рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдкрд░ рд▓реМрдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░ рдХреАрдкрд░ рдХреЛ рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдЙрдкрд╕рд░реНрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЬрд╝реЗрдиреЛрдб рдЕрдиреБрдХреНрд░рдорд┐рдХ рд╣реИ, рдлрд┐рд░ рдПрдХ рдЙрдк рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЙрдкрд╕рд░реНрдЧ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдХреБрдВрдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдЧрд╛рд░рдВрдЯреА рд╣реИ рдХрд┐ рдПрдХ рд╣реА рдЙрдкрд╕рд░реНрдЧ рдХреЗ рд╕рд╛рде рдЕрдиреБрдХреНрд░рдорд┐рдХ рдЬрд╝рдиреЛрдб рдмрдирд╛рдХрд░, рдХреБрдВрдЬрд┐рдпрд╛рдБ рдПрдХ рд╡реГрджреНрдзрд┐ (рд▓реЗрдХреНрд╕рд┐рдХреЛ-рдЧреНрд░рд╛рдлрд┐рдХ рдЕрд░реНрде рдореЗрдВ) рдЕрдиреБрдХреНрд░рдо рдмрдирд╛рдПрдВрдЧреА ред

рд╕реАрд░рд┐рдпрд▓ рдЬрд╝реНрдиреЛрдб рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рдПрдкрд░реНрдЪрд░рд▓ рдЬрд╝рдиреЛрдб рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд▓реНрдж рд╣реА рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬрд┐рд╕рдиреЗ рдЙрдиреНрд╣реЗрдВ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░ рджрд┐рдпрд╛ (рдореБрдЭреЗ рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реИ рдХрд┐ рдЬрд╝реВрдХреЗрдкрд░ рдореЗрдВ рдХреНрд▓рд╕реНрдЯрд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдмреАрдЪ рдХрдиреЗрдХреНрд╢рди рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЦреБрд▓рд╛ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ)ред рдкрдВрдЪрд╛рдВрдЧ znode рдореЗрдВ рдмрдЪреНрдЪреЗ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗред

рдЬрд╝рдиреЛрдб, рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рдФрд░ рдЕрдиреБрдХреНрд░рдорд┐рдХ рджреЛрдиреЛрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рд╕рд┐рдВрдХ - рдЙрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдиреЛрдб рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рдорд╛рд╕реНрдЯрд░ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рдЕрдЪреНрдЫреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдЬрд▓реНрджреА рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╣реЛрддрд╛ рд╣реИред рдХрдм рдХреЙрд▓ рдХрд░рдирд╛ рд╣реИ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдиреАрдЪреЗ рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЙрдирдХреЗ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрд╛рддрд╛рд░ рдкрдВрдЪрд╛рдВрдЧ znode рдФрд░ рд╕рджрд╕реНрдпрддрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХ рд╡рд┐рддрд░рд┐рдд рд▓реЙрдХ рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ ред

рд╡рд┐рддрд░рд┐рдд рд▓реЙрдХ рд╕рд┐рд╕реНрдЯрдо


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

  1. рдПрдХ рдЙрдкрд╕рд░реНрдЧ рдХреЗ рд░реВрдк рдореЗрдВ "_locknode_ / guide-lock-" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рд╕реАрд░рд┐рдпрд▓ рдЬрд╝рдиреЛрдб рдмрдирд╛рдПрдВ, рдЬрд╣рд╛рдВ _locknode_ рдЙрд╕ рд╕рдВрд╕рд╛рдзрди рдХрд╛ рдирд╛рдо рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рд▓реЙрдХ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдЧрд╛рдЗрдб рд╣реМрд╕рд▓реЗ рд╕реЗ рдЬреЗрдирд░реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЧрд╛рдЗрдб рд╣реИ
  2. рд╣рдореЗрдВ рдШрдЯрдирд╛ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓рд┐рдП рдмрд┐рдирд╛ рдмрдЪреНрдЪреЛрдВ рдХреА рд╕реВрдЪреА _locknode_ рдорд┐рд▓рддреА рд╣реИ
  3. рдпрджрд┐ рдкрд╣рд▓реЗ рдЪрд░рдг рдореЗрдВ рдмрдирд╛рдП рдЧрдП znode рдореЗрдВ рдХреБрдВрдЬреА рдореЗрдВ рдиреНрдпреВрдирддрдо рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреНрд░рддреНрдпрдп рд╣реИ: рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ - рд╣рдордиреЗ рд╕рдВрд╕рд╛рдзрди рдХреЛ рдкрдХрдбрд╝ рд▓рд┐рдпрд╛
  4. рдЕрдиреНрдпрдерд╛, рд╣рдо рдкреНрд░рддреНрдпрдп рджреНрд╡рд╛рд░рд╛ рдмрдЪреНрдЪреЛрдВ рдХреА рд╕реВрдЪреА рдХреЛ рд╕реЙрд░реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХреЙрд▓ рдЬрд╝реЛрдиреЛрдб рдкрд░ рдХреЙрд▓рдмреИрдХ рдХреЗ рд╕рд╛рде рдореМрдЬреВрдж рд╣реИ, рдЬреЛ рдХрд┐ рдЪрд░рдг 1 рдореЗрдВ рд╣рдордиреЗ рдЬреЛ рдмрдирд╛рдпрд╛ рд╣реИ рдЙрд╕рд╕реЗ рдкрд╣рд▓реЗ рд╕реВрдЪреА рдореЗрдВ рд╣реИ
  5. рдпрджрд┐ рдЖрдк рдЭреВрдареЗ рд╣реИрдВ, рддреЛ рдЪрд░рдг 2 рдкрд░ рдЬрд╛рдПрдВ, рдЕрдиреНрдпрдерд╛ рд╣рдо рдШрдЯрдирд╛ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЪрд░рдг 2 рдкрд░ рдЬрд╛рдПрдВ

рд╕рд╛рдордЧреНрд░реА рдХреА рдЖрддреНрдорд╕рд╛рдд рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ, рдЕрд╡рд░реЛрд╣реА рдпрд╛ рдЖрд░реЛрд╣реА рдХреНрд░рдо рдореЗрдВ, рдЖрдкрдХреЛ рдЪрд░рдг 4 рдореЗрдВ рд╕реВрдЪреА рдХреЛ рд╕реЙрд░реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЪреВрдВрдХрд┐, рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░рдХреАрдкрд░ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рджреМрд░рд╛рди рдХрд┐рд╕реА рднреА рдСрдкрд░реЗрд╢рди рдХреЗ рдЧрд┐рд░рдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╣рдо рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдСрдкрд░реЗрд╢рди рдкрд╛рд╕ рд╣реБрдЖ рдпрд╛ рдирд╣реАрдВ , рд╣рдореЗрдВ рдЗрд╕ рдЬрд╛рдВрдЪ рдХреЛ рдЖрд╡реЗрджрди рд╕реНрддрд░ рддрдХ рд▓реЗ рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рдЗрд╕реЗ рдЬрд╛рдирдирд╛ рдФрд░ рдмрдЪреНрдЪреЛрдВ рд╕реЗ рдкреВрдЫрдирд╛, рд╣рдо рдЖрд╕рд╛рдиреА рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдордиреЗ рдПрдХ рдирдпрд╛ рдиреЛрдб рдмрдирд╛рдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдФрд░ рдСрдкрд░реЗрд╢рди рджреЛрд╣рд░рд╛рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИред

рд╡реИрд╕реЗ, рдореИрдВрдиреЗ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд▓рд┐рдпрд╛ рдерд╛ рдХрд┐ рдХреНрд░рдорд┐рдХ рд╢реВрдиреНрдп рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпрдп рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЙрдкрд╕рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдЕрдиреБрдХреНрд░рдо рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдЕрдиреБрдХреНрд░рдо рдЬрд┐рд╕рдореЗрдВ рдЬрд╝рдиреЛрдб рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

WTF


рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдХреЛрдИ рднреА рдЦрддреНрдо рдХрд░ рд╕рдХрддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдЕрднреНрдпрд╛рд╕ рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ, рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ - wtf рдХреАред Wtf рд╕реЗ, рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдФрд░ рдЗрд╕рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░, рдзреНрдпрд╛рди, wtf рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрд░реЗ рд╕рд╣рдЬ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рдмреАрдЪ рд╡рд┐рд╕рдВрдЧрддрд┐ рдПрдХ рдореВрд▓реНрдп рдирд┐рд░реНрдгрдп рдирд╣реАрдВ рд▓реЗрддреА рд╣реИ, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░рдХреАрдкрд░ рдХреЗ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдиреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡рд╛рд╕реНрддреБ рдирд┐рд░реНрдгрдп рдХреНрдпреЛрдВ рдХрд┐рдПред

рдбрдмреНрд▓реНрдпреВрдЯреАрдПрдл # 1 - рд╣рдо рдХреЛрдб рдХреЛ рдЕрдВрджрд░ рдмрд╛рд╣рд░ рдХрд░рддреЗ рд╣реИрдВ


рдХреЛрдИ рднреА рдПрдкреАрдЖрдИ рд╡рд┐рдзрд┐ рдПрдХ рдЪреЗрдХ рдХрд┐рдП рдЧрдП рдЕрдкрд╡рд╛рдж рдХреЛ рдлреЗрдВрдХ рд╕рдХрддреА рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░ рд╕рдХрддреА рд╣реИред рдпрд╣ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд╣реА рд╣реИ, рдЪреВрдВрдХрд┐ рд╡рд┐рддрд░рд┐рдд рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдкрд╣рд▓рд╛ рдирд┐рдпрдо рдпрд╣ рд╣реИ рдХрд┐ рдиреЗрдЯрд╡рд░реНрдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдирд╣реАрдВ рд╣реИред рдЙрдбрд╝рдиреЗ рд╡рд╛рд▓реЗ рдЕрдкрд╡рд╛рджреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрдиреЗрдХреНрд╢рди (рдмреНрд▓рд┐рдВрдХрд┐рдВрдЧ рдиреЗрдЯрд╡рд░реНрдХ) рдХрд╛ рдиреБрдХрд╕рд╛рди рд╣реИред рдХреНрд▓рд╕реНрдЯрд░ рдиреЛрдб (CONNECTIONLOSS) рдХреЗ рд╕рд╛рде рдХрдиреЗрдХреНрд╢рди рдХреЗ рдиреБрдХрд╕рд╛рди рдХреЛ рднреНрд░рдорд┐рдд рди рдХрд░реЗрдВ, рдЬрд┐рд╕рдореЗрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рдЗрд╕реЗ рд╕рд╣реЗрдЬреЗ рдЧрдП рд╕рддреНрд░ рдФрд░ рдХреЙрд▓рдмреИрдХ (рджреВрд╕рд░реЗ рдпрд╛ рдкреНрд░рддреАрдХреНрд╖рд╛ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдЧрд╛) рдХреЗ рд╕рд╛рде рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдЧрд╛, рдФрд░ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдХреНрд▓рд╕реНрдЯрд░ рд╕реЗ рдмрдВрдж рдХрд░рдиреЗ рдФрд░ рд╕рднреА рдХреЙрд▓рдмреИрдХ (SESSIONEXPIRED) рдХреЗ рдиреБрдХрд╕рд╛рди рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░реЗрдЧрд╛, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рдВрджрд░реНрдн рдХреЛ рдмрд╣рд╛рд▓ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рдкрд╛рд╕ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕ рд╡рд┐рд╖рдп рд╕реЗ рджреВрд░ рдЪрд▓реЗ рдЧрдП ...

рд╡рд┐рдВрдХреНрд╕ рдХреЛ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рдирд╛ рд╣реИ? рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЬрдм рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдХрдиреЗрдХреНрд╢рди рдЦреЛрд▓рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдПрдХ рдХреЙрд▓рдмреИрдХ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдХрдИ рдмрд╛рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдмрд╛рд░ рдирд╣реАрдВ, рджреВрд╕рд░реЛрдВ рдХреА рддрд░рд╣, рдФрд░ рдЬреЛ рдХрдиреЗрдХреНрд╢рди рдЦреЛ рдЬрд╛рдиреЗ рдФрд░ рдмрд╣рд╛рд▓ рд╣реЛрдиреЗ рдХреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рдмрдЪрд╛рддрд╛ рд╣реИ ред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЬрдм рдХрдиреЗрдХреНрд╢рди рдЦреЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЧрдгрдирд╛ рдХреЛ рд░реЛрдХрдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рд╡рд╛рдВрдЫрд┐рдд рдШрдЯрдирд╛ рдЖрдиреЗ рдкрд░ рдЙрдиреНрд╣реЗрдВ рдЬрд╛рд░реА рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ред

рдХреНрдпрд╛ рдпрд╣ рдЖрдкрдХреЛ рдХреБрдЫ рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реИ? рдПрдХ рдУрд░ - рдШрдЯрдирд╛рдУрдВ, рджреВрд╕рд░реЗ рдкрд░ - рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдкреНрд░рд╡рд╛рд╣ рдХреЗ рд╕рд╛рде "рдЦреЗрд▓рдиреЗ" рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рдирд┐рд░рдВрддрд░рддрд╛ рдФрд░ рдореЛрдирд╛рдб рдХреЗ рдкрд╛рд╕ рдХрд╣реАрдВред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореИрдВрдиреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рдЪрд░рдгреЛрдВ рдХреЛ рд░реВрдк рдореЗрдВ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ:

public interface Task { Task continueWith(Task continuation); //     void run(Executor context, Object arg); //   void error(Executor context, Exception error); //  ,    -   } 

рдирд┐рд╖реНрдкрд╛рджрдХ рдХрд╣рд╛рдВ рд╣реИ

 public interface Executor { void execute(Task task, Object arg, Timer timeout); // timeout     / TimeoutException  error ,   real-time } 

рдЖрд╡рд╢реНрдпрдХ рдХреЙрдореНрдмрд┐рдиреЗрдЯрд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реБрдП, рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХрд╣реАрдВ рдХрджрдореЛрдВ рдХреА рдЙрджрд╛рд╕реАрдирддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдХрд╣реАрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЧрд╛рд░рдмреЗрдЬ рдХреА рд╕рдлрд╛рдИ рдХрд░ рд░рд╣реЗ рд╣реИрдВ:

рдЫрд╡рд┐


рдПрдХреНрдЬрд╝реАрдХреНрдпреВрд╕рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп, рдореИрдВрдиреЗ рдЗрд╕рдореЗрдВ рдЬрд╝реВрдХреЗрдкрд░ рдХреНрд▓рд╛рд╕ рдХреЗ рд▓рд┐рдП рд░реИрдкрд░ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдЬреЛрдбрд╝реЗ, рддрд╛рдХрд┐ рдпрд╣ рд╕рднреА рдШрдЯрдирд╛рдУрдВ рдХрд╛ рд╣реИрдВрдбрд▓рд░ рд╣реЛ рдФрд░ рдЕрдкрдиреЗ рд▓рд┐рдП рддрдп рдХрд░реЗ рдХрд┐ рд╡реЙрдЪрд░ (рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ)ред рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдЕрдВрджрд░, рдореИрдВрдиреЗ рддреАрди рдмреНрд▓реЙрдХрд┐рдВрдЧ рдХреНрдпреВ рдФрд░ рддреАрди рдереНрд░реЗрдбреНрд╕ рд░рдЦреЗ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдкрдврд╝рддреЗ рд╣реИрдВ, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдпрд╣ рдирд┐рдХрд▓рд╛ рдХрд┐ рдЬрдм рдПрдХ рдШрдЯрдирд╛ рдЖрддреА рд╣реИ, рддреЛ рдЗрд╕реЗ рдИрд╡реЗрдВрдЯ рдХреНрдпреВ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдзрд╛рд░рд╛ рд▓рдЧрднрдЧ рддреБрд░рдВрдд рдЬрд╝реВрдХреЗрд░ рдЗрдВрдЯрд░реНрдирд▓реНрд╕ рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддреА рд╣реИ, рд╡реИрд╕реЗ, рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░рдХреАрдкрд░ рдХреЗ рдЕрдВрджрд░ рд╕рднреА рд╡реЙрдЪрд░реНрд╕ рдПрдХ рдереНрд░реЗрдб рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдПрдХ рд╕реНрдерд┐рддрд┐ рд╕рдВрднрд╡ рд╣реИ рдЬрдм рдПрдХ рдШрдЯрдирд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╣реБрдП рд╕рднреА рдЕрдиреНрдп рдФрд░ рдЬрд╝реВрдХрд┐рдкрд░ рдХреЛ рд╣реА рдмреНрд▓реЙрдХ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдП ред рдЯрд╛рд╕реНрдХрдХреНрдпреВ рдХреЗ рджреВрд╕рд░реЗ рдЯрд░реНрди рдореЗрдВ рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ рдЯрд╛рд╕реНрдХреНрдпреВ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрди рдХрддрд╛рд░реЛрдВ (EventQueue рдФрд░ taskQueue) рдХреЛ рдкреНрд░рд╡рд╛рд╣, EventThread рдФрд░ taskThread рдХреЗ рд▓рд┐рдП рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрд░рдорд╢рдГ, рдпреЗ рдереНрд░реЗрдбреНрд╕ рдЕрдкрдиреА рдХрддрд╛рд░реЛрдВ рдХреЛ рдкрдврд╝рддреЗ рд╣реИрдВ рдФрд░ рдЕрдпреНрдпреВрдм рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реА рдкреНрд░рддреНрдпреЗрдХ рд╡рд╕реНрддреБ рдХреЛ рд▓рдкреЗрдЯрддреЗ рд╣реИрдВ рдФрд░ рдЬреЙрдмрдХреНрдпреВ рдореЗрдВ рдбрд╛рд▓рддреЗ рд╣реИрдВ, рдЬреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рдЕрдкрдирд╛ рдзрд╛рдЧрд╛ рд╣реИ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рд░реНрдп рдХреЛрдб рдпрд╛ рд╣реИрдВрдбрд▓рд░ рдЪрд▓рд╛рддрд╛ рд╣реИред рдкреЛрд╕реНрдЯ рдирд╣реАрдВред рдХрдиреЗрдХреНрд╢рди рдХреА рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХрд╛рд░реНрдп рдереНрд░реЗрдб рдХреЛ рдирд┐рд▓рдВрдмрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рдЙрддреНрдерд╛рди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдПрдХ рдзрд╛рдЧреЗ рдореЗрдВ рдлреЗрд░рдмрджрд▓ рдФрд░ рд╣реИрдВрдбрд▓рд░реНрд╕ рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛрдб рдЖрдкрдХреЛ рддрд╛рд▓реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ рдФрд░ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рдХреА рд╕реБрд╡рд┐рдзрд╛ рджреЗрддрд╛ рд╣реИред

рдбрдмреНрд▓реНрдпреВрдЯреАрдПрдл # 2 - рдореБрдЦреНрдп рд╕рд░реНрд╡рд░


рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЬрд╝реВрдХреАрдкрд░ рдореЗрдВ рд╕рд░реНрд╡рд░ (рдХреНрд▓рд╕реНрдЯрд░) рдореБрдЦреНрдп рд╣реИ, рдФрд░ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдХреЛрдИ рдЕрдзрд┐рдХрд╛рд░ рдирд╣реАрдВ рд╣реИред рдХрднреА-рдХрднреА рдпрд╣ рдкреВрд░реНрдгрддрд╛ рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП ... рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░рдХреАрдкрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рд╕рддреНрд░ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдРрд╕рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ, рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрд▓рд╕реНрдЯрд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдмреАрдЪ рдХрд╛ рдХрдиреЗрдХреНрд╢рди рдХрд┐рддрдирд╛ рдЧрд╛рдпрдм рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрджрд┐ рдЕрдзрд┐рдХрддрдо рдкрд╛рд░ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЗрд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛ рд╕рддреНрд░ рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЗрд╕ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд╕рднреА рдкрдВрдЪрд╛рдВрдЧ znode рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛; рдпрджрд┐ рдХрдиреЗрдХреНрд╢рди рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХреНрд▓рд╛рдЗрдВрдЯ SESSIONEXPIRED рдИрд╡реЗрдВрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдЬрдм рдХрдиреЗрдХреНрд╢рди рдЦреЛ рдЬрд╛рддрд╛ рд╣реИ (CONNECTIONLOSS) рдФрд░ рд╕рддреНрд░ рдХрд╛ рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рдЗрдВрддрдЬрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡рд┐рдЪрд╛рд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╡рд╣ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддрд╛ рдерд╛ рдХрд┐ рд╕рддреНрд░ рдореГрдд рдерд╛ рдФрд░ рдЕрдкрдиреЗ рд╣реИрдВрдбрд▓рд░ рдХреЛ SESSIONEXPOSED рдлреЗрдВрдХ рджрд┐рдпрд╛ред

рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдХрд╛рд░рдг, рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░ рдбреЗрд╡рд▓рдкрд░ рдиреЗ рдЕрдкрдиреЗ рдмрд╛рд▓реЛрдВ рдХреЛ рдлрд╛рдбрд╝ рджрд┐рдпрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдиреЗ рдЬрд╝реВрдХреАрдкрд░ рд╕рд░реНрд╡рд░ рдХреЛ рдЙрдард╛рдпрд╛ рдФрд░ рдЗрд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЖрдкрдиреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдЧрд▓рддреА рдХреА рдФрд░ рдЧрд▓рдд рдкрддреЗ рдпрд╛ рдкреЛрд░реНрдЯ рдкрд░ рджрд╕реНрддрдХ рджреА, рдлрд┐рд░, рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ , рдЖрдк рдмрд╕ рддрдм рддрдХ рдЗрдВрддрдЬрд╛рд░ рдХрд░реЗрдВрдЧреЗ рдЬрдм рддрдХ рдЧреНрд░рд╛рд╣рдХ рдХрдиреЗрдХреНрдЯреЗрдб рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ MySQL рдпрд╛ рдХреБрдЫ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣реЛрдЧрд╛ред

рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдкрд░рд┐рджреГрд╢реНрдп рдЖрдкрдХреЛ рдЙрддреНрдкрд╛рджрди рдкрд░ рдЬрд╝реВрдХреЗрд░ рдХреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:

рд╡реИрд╕реЗ, рдпрд╣ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдХрд╛рд░рдг рдареАрдХ рд╣реИ рдХрд┐ рдореИрдВ рдПрдХреНрдЬрд╝реАрдХреНрдпреВрд╢рди рдЯрд╛рдЗрдорд░ рдХреЗ рдкрд╛рд╕ рдЬрд╛рддрд╛ рд╣реВрдВ, рдЬреЛ рдЯрд╛рд╕реНрдХ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рд░рджреНрдж рдХрд░ рджреЗрддрд╛ рд╣реИ рдпрджрд┐ рд╣рдо рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдбрдмреНрд▓реНрдпреВрдЯреАрдПрдл # 3 - рдЗрдВрдЯ рдУрд╡рд░рдлреНрд▓реЛ


рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдкрдиреЗ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдЕрдиреБрд╕рд╛рд░ рддрд╛рд▓реЗ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЗрд╕ рд╡реНрдпрд╡рд╕рд╛рдп рдХреЛ рдЙрдЪреНрдЪ рднрд╛рд░ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рд╢реБрд░реВ рдХрд┐рдпрд╛ рд╣реИ, рдЬрд╣рд╛рдВ, рдХрд╣рддреЗ рд╣реИрдВ, рдЖрдк рдкреНрд░рддрд┐ рджрд┐рди 10 рдорд┐рдореА рддрд╛рд▓реЗ рд▓реЗрддреЗ рд╣реИрдВред рд▓рдЧрднрдЧ рдПрдХ рд╕рд╛рд▓ рдмрд╛рдж, рдЖрдк рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдирд░рдХ рдореЗрдВ рдкрд╛рддреЗ рд╣реИрдВ - рддрд╛рд▓реЗ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрдВрдЧреЗред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рд╡рд░реНрд╖ рдХреЗ рдмрд╛рдж рдЬреНрд╡реЙрд╡рд░реНрд╢рди рдХрд╛рдЙрдВрдЯрд░ рдХреЗ рдУрд╡рд░рдлреНрд▓реЛ рдФрд░ рд▓рдЧрд╛рддрд╛рд░ рдЬрд╝рдиреЛрдЗрдб рдирд╛рдореЛрдВ рдХреЗ рдПрдХ рдиреАрд░рд╕ рд░реВрдк рд╕реЗ рдмрдврд╝рддреЗ рдЕрдиреБрдХреНрд░рдо рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ , рдФрд░ рдпрд╣ рддрд╛рд▓реЗ рдХреЗ рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЖрдзрд╛рд░ рд╣реИред

рдХреНрдпрд╛ рдХрд░реЗрдВ? рдпрд╣ рд╕рдордп-рд╕рдордп рдкрд░ / рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ _locknode_ - рдЬрдмрдХрд┐ рдЗрд╕рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реЗ рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдХ рдиреАрд░рд╕ рдЕрдиреБрдХреНрд░рдо рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдлрд┐рд░ рд╕реЗ рдЙрд▓реНрд▓рдВрдШрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ znode рдХреЛ рдХреЗрд╡рд▓ рддрднреА рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдЗрд╕рдХреЗ рдХреЛрдИ рдмрдЪреНрдЪреЗ рди рд╣реЛрдВ , рдФрд░ рдЕрдм рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдПрдВ рдХрд┐ _versionnode_ cversion рдХрдм рд░реАрд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИ рдЗрд╕рдХрд╛ рдХреЛрдИ рдмрдЪреНрдЪрд╛ рдирд╣реАрдВ рд╣реИ рдЬреЛ рд▓реЙрдХ рдПрд▓реНрдЧреЛрд░рд┐рдердо рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдбрдмреНрд▓реНрдпреВрдЯреАрдПрдл # 4 - рдХреЛрд░рдо рд▓рд┐рдЦрдирд╛ рд▓реЗрдХрд┐рди рдкрдврд╝рдирд╛ рдирд╣реАрдВ


рдЬрдм ZooKeeper рдиреЗ рд░рд╛рдЗрдЯ рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рдкрд░ рдУрдХреЗ рдХрд┐рдпрд╛, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рдХреЛрд░рдо (рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╢реАрдиреЗрдВ, 3 рдорд╢реАрдиреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХреЛрд░рдо 2 рдХреЗ рд╣реЛрддреЗ рд╣реИрдВ) рдХреЛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ , рд▓реЗрдХрд┐рди рдкрдврд╝рдиреЗ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЙрд╕ рдорд╢реАрди рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рд╡рд╣ рдЬреБрдбрд╝рд╛ рдерд╛ред рдЕрд░реНрдерд╛рддреН, рдПрдХ рд╕реНрдерд┐рддрд┐ рд╕рдВрднрд╡ рд╣реИ рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреБрд░рд╛рдирд╛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред

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

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

рдЙрддреНрдкрд╛рджрдХрддрд╛


рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡рд┐рддрд░рд┐рдд рдХреБрдВрдЬреА / рдорд╛рди рднрдВрдбрд╛рд░рдг рдбреЗрдЯрд╛ рдХреА рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рддрд░рд┐рдд рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рд▓рд┐рдЦрд╛ рдерд╛, рдЬреЛ рдбреЗрдЯрд╛ рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░рдХреАрдкрд░ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд░рддрд╛ рд╣реИ, рд╡рд╣ рд░реИрдо рдХреЗ рдЖрдХрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╣ рдкреВрдЫрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХреНрдпреЛрдВ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХреЛрд░рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдпрд╛рдж рдХрд░рддреЗ рд╣реБрдП, рдпрд╣ рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдПрдХ рдорд╢реАрди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рддреАрди рдорд╢реАрдиреЛрдВ рдХреЗ рдХреНрд▓рд╕реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдкреНрд░рджрд░реНрд╢рди 15% рддрдХ рдЧрд┐рд░ рдЬрд╛рддрд╛ рд╣реИред

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

рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рдЖрдЦрд┐рд░реА рдЭрдЯрдХрд╛ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд╕рдЦреНрдд рдЖрджреЗрд╢ рдХреЗ рдХрд╛рд░рдг рд╣реИ - рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╕рднреА рд▓рд┐рдЦрд┐рдд рдЕрдиреБрд░реЛрдз рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рдорд╢реАрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рддреЗ рд╣реИрдВред

рдореИрдВрдиреЗ рдПрдХ рд╕реНрдерд╛рдиреАрдп рд▓реИрдкрдЯреЙрдк рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛, рд╣рд╛рдБ рдпрд╣ рджреГрдврд╝рддрд╛ рд╕реЗ рдорд┐рд▓рддрд╛ рдЬреБрд▓рддрд╛ рд╣реИ:
рдЫрд╡рд┐
рджреЗрд╡реЛрдкреНрд╕ рдмреЛрд░рдЯ
рдмрд┐рдЧ рдбреЗрдЯрд╛ рдПрдирд╛рд▓рд┐рдЯрд┐рдХреНрд╕ 90% рдбреЗрдкреЙрдкреНрд╕ рд╣реИ рдЬреЛ рд╡рд╛рдХреНрдп рдореЗрдВ 'рдмреЗрдВрдЪрдорд╛рд░реНрдХ' рд╢рдмреНрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕реА рд╡рд╛рдХреНрдп рдореЗрдВ 'рд▓реИрдкрдЯреЙрдк' рд╢рдмреНрдж рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░рдХреАрдкрд░ рдПрдХрд▓-рдиреЛрдб рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рддрд╛ рд╣реИ, рдПрдХ рддреЗрдЬ рдбрд┐рд╕реНрдХ рдФрд░ рдбреЗрдЯрд╛ рдХреА рдереЛрдбрд╝реА рдорд╛рддреНрд░рд╛ рдХреЗ рд╕рд╛рде, рдЗрд╕рд▓рд┐рдП рдПрд╕рдПрд╕рдбреА рдФрд░ рдЖрдИ 7 рдХреЗ рд╕рд╛рде рдореЗрд░рд╛ рдПрдХреНрд╕220 рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрджрд░реНрд╢ рдерд╛ред рдореИрдВрдиреЗ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд▓реЗрдЦрди рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред

рдЧрд╣рди рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рдкреНрд░рджрд░реНрд╢рди рдЫрдд рд▓рдЧрднрдЧ 10K рд╕рдВрдЪрд╛рд▓рди рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдерд╛, рдпрд╣ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП 1ms рд▓реЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдПрдХ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рд╕рд░реНрд╡рд░ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 1K рд╕рдВрдЪрд╛рд▓рди рд╕реЗ рдЕрдзрд┐рдХ рддреЗрдЬреА рд╕реЗ рдирд╣реАрдВ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ? рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЬрдм рд╣рдо рдбрд┐рд╕реНрдХ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЖрд░рд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ (10% рдХреЗ рд╕реНрддрд░ рдкрд░ ssd рдХрд╛ рдЙрдкрдпреЛрдЧ, рдирд┐рд╖реНрдард╛ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рд░реИрдордлреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореЗрдореЛрд░реА рдореЗрдВ рдбреЗрдЯрд╛ рдбрд╛рд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рднреА рдХреА - рдореБрдЭреЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдереЛрдбрд╝реА рд╡реГрджреНрдзрд┐ рд╣реБрдИ), рд╣рдо рд╕реАрдкреАрдпреВ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЬрд╝реВрдХреЗрдкрд░ рд╕рд╛рдЗрдЯ рдкрд░ рдЕрдкрдиреЗ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдмрддрд╛рдП рдЧрдП рдЕрдВрдХреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреЗрд╡рд▓ 2 рдЧреБрдирд╛ рдзреАрдорд╛ рд╣реИ, рдЬреЛ рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕рд╕реЗ рд╕рдм рдХреБрдЫ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдПред

рд╕рд╛рд░рд╛рдВрд╢


рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рдЬреЛ рдХреБрдЫ рднреА рд▓рд┐рдЦрд╛ рд╣реИ, рдЙрд╕рдХреЗ рдмрд╛рд╡рдЬреВрдж рдЬрд╝реВрдХрд┐рдкрд░ рдЙрддрдирд╛ рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИ рдЬрд┐рддрдирд╛ рдпрд╣ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред рдореБрдЭреЗ рдЗрд╕рдХрд╛ рд▓реИрдХреЛрдирд┐рдЬрд╝реНрдо (рдХреЗрд╡рд▓ 7 рдЯреАрдореЗрдВ) рдкрд╕рдВрдж рд╣реИ, рдореБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рд╣реИ рдХрд┐ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдпрд╣ рдЕрдкрдиреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдПрдкреАрдЖрдИ рдХреЛ рд╡рд┐рддрд░рд┐рдд рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд╕рд╣реА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд▓рд┐рдП рдзрдХреНрдХрд╛ рджреЗрддрд╛ рд╣реИ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, рд╕рдм рдХреБрдЫ рдХрд┐рд╕реА рднреА рд╕рдордп рдЧрд┐рд░ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдСрдкрд░реЗрд╢рди рдХреЛ рдПрдХ рд╕реБрд╕рдВрдЧрдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЫреЛрдбрд╝ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП ред рд▓реЗрдХрд┐рди рдпреЗ рдореЗрд░реЗ рдЗрдВрдкреНрд░реЗрд╢рди рд╣реИрдВ, рд╡реЗ рдЗрд╕ рддрдереНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИрдВ рдХрд┐ рдЬрд╝реВрдХреЗрдкрд░ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: рдХреНрд▓рд╕реНрдЯрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди, рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдХреНрд▓рд╕реНрдЯрд░ рд╕реНрдерд┐рддрд┐ (рдХрдиреЗрдХреНрдЯреЗрдб рдиреЛрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛, рдиреЛрдб рд╕реНрдерд┐рддрд┐), рдиреЛрдб рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди (рдЕрд╡рд░реБрджреНрдз рдХрд░рдирд╛) , рдмреИрд░рд┐рдпрд░) рдФрд░ рд╡рд┐рддрд░рд┐рдд рд╕рд┐рд╕реНрдЯрдо рдиреЛрдбреНрд╕ (рдП-рд▓рд╛ рдЬреИрдмрд░) рдХрд╛ рд╕рдВрдЪрд╛рд░ред

рдПрдХ рдмрд╛рд░ рдлрд┐рд░, рдореИрдВ рд╕реВрдЪреА рдмрдирд╛рдКрдВрдЧрд╛ рдХрд┐ рдЖрдкрдХреЛ рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░рдХреАрдкрд░ рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд╛рд╕ рдХрд░рддреЗ рд╕рдордп рдХреНрдпрд╛ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:


рд╡рд┐рддрд░рд┐рдд рддрд╛рд▓реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ


рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдЕрд╡рд░реБрджреНрдз рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкрд░ рд▓реМрдЯрдХрд░, рдореИрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдпрд╣ рддрдм рддрдХ рд╕реБрдЪрд╛рд░реВ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЦрдВрдб рдХреЗ рдЕрдВрджрд░ рдХреА рдХреНрд░рд┐рдпрд╛рдПрдВ рд╕рдорд╛рди рдФрд░ рдХреЗрд╡рд▓ рдЙрд╕реА рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░рдХреАрдкрд░ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВ рдЬреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдРрд╕рд╛ рдХреНрдпреЛрдВ? - рдЕрдкрдиреЗ рд▓рд┐рдП рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред рдФрд░ рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рд▓рд┐рдЦреВрдВрдЧрд╛ рдХрд┐ рд╡рд┐рддрд░рд┐рдд рддрд╛рд▓реЗ рдХреЛ рдХреИрд╕реЗ рдЕрдзрд┐рдХ рдИрдорд╛рдирджрд╛рд░ рдмрдирд╛рдпрд╛ рдЬрд╛рдП рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдиреБрднрд╛рдЧ рдХреЗ рдЕрдВрджрд░ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╡рд░реНрдЧ рдХреЛ рд╕реАрдПрдПрд╕ рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рдХреБрдВрдЬреА / рдорд╛рди рднрдВрдбрд╛рд░рдг рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред

рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░рдХреАрдкрд░ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд▓рд┐рдВрдХ


zookeeper.apache.org
outerthought.org/blog/435-ot.html
highscalability.com/zookeeper-reliable-scalable-distributed-coordination-system
research.yahoo.com/node/3280

Source: https://habr.com/ru/post/In144708/


All Articles