рд╣рдордиреЗ 1рд╕реА рдХреЗ рд▓рд┐рдП рд╣рд╛рдИ-рд▓реЛрдб рд╕реНрдХреЗрд▓реЗрдмрд▓ рд╕реЗрд╡рд╛ рдХреИрд╕реЗ рдФрд░ рдХреНрдпреЛрдВ рд▓рд┐рдЦреА: рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝: рдЬрд╛рд╡рд╛, рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓, рд╣реЗрдЬрд╝реЗрд▓рдХрд╛рд╕реНрдЯ

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╣рдо рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ рдХрд┐ рд╣рдордиреЗ рдХреИрд╕реЗ рдФрд░ рдХреНрдпреЛрдВ рд╡рд┐рдХрд╛рд╕ рдХрд┐рдпрд╛ рдЗрдВрдЯрд░реЗрдХреНрд╢рди рд╕рд┐рд╕реНрдЯрдо - рдПрдХ рддрдВрддреНрд░ рдЬреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ 1C:рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝ рд╕рд░реНрд╡рд░ рдХреЗ рдмреАрдЪ рдЬрд╛рдирдХрд╛рд░реА рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ - рдХрд┐рд╕реА рдХрд╛рд░реНрдп рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рд▓реЗрдХрд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рддрдХред

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

рдПрд╕рд╡реА рд╡рд┐рддрд░рд┐рдд рднрдВрдбрд╛рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рд╣реЗрдЬрд╝рд▓рдХрд╛рд╕реНрдЯ рдФрд░ рдЦреЛрдЬ рдЗрдВрдЬрди Elasticsearch. рд╣рдо рдЬрд╛рд╡рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ рдФрд░ рд╣рдо PostgreSQL рдХреЛ рдХреНрд╖реИрддрд┐рдЬ рд░реВрдк рд╕реЗ рдХреИрд╕реЗ рдорд╛рдкрддреЗ рд╣реИрдВред
рд╣рдордиреЗ 1рд╕реА рдХреЗ рд▓рд┐рдП рд╣рд╛рдИ-рд▓реЛрдб рд╕реНрдХреЗрд▓реЗрдмрд▓ рд╕реЗрд╡рд╛ рдХреИрд╕реЗ рдФрд░ рдХреНрдпреЛрдВ рд▓рд┐рдЦреА: рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝: рдЬрд╛рд╡рд╛, рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓, рд╣реЗрдЬрд╝реЗрд▓рдХрд╛рд╕реНрдЯ

рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдирд┐рд░реВрдкрдг

рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╣рдордиреЗ рдЗрдВрдЯрд░реЗрдХреНрд╢рди рд╕рд┐рд╕реНрдЯрдо рдХреНрдпреЛрдВ рдмрдирд╛рдпрд╛, рдореИрдВ рдЖрдкрдХреЛ рдереЛрдбрд╝рд╛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ 1рд╕реА рдореЗрдВ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

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

рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд░реНрд╡рд░ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рддрд┐рдорд╛рди

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

рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдореЗрдВ, рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╣реЗрдбрд░ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреЛрдб рдХрд╣рд╛рдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ - &AtClient / &AtServer рдирд┐рд░реНрджреЗрд╢реЛрдВ (рднрд╛рд╖рд╛ рдХреЗ рдЕрдВрдЧреНрд░реЗрдЬреА рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ &AtClient / &AtServer) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗред 1C рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЕрдм рдореБрдЭреЗ рдпрд╣ рдХрд╣рдХрд░ рд╕рд╣реА рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдирд┐рд░реНрджреЗрд╢ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣реИрдВ рдмреЗрд╣рддрд░, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдпрд╣ рдЕрдм рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ.

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

рд╣рдордиреЗ 1рд╕реА рдХреЗ рд▓рд┐рдП рд╣рд╛рдИ-рд▓реЛрдб рд╕реНрдХреЗрд▓реЗрдмрд▓ рд╕реЗрд╡рд╛ рдХреИрд╕реЗ рдФрд░ рдХреНрдпреЛрдВ рд▓рд┐рдЦреА: рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝: рдЬрд╛рд╡рд╛, рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓, рд╣реЗрдЬрд╝реЗрд▓рдХрд╛рд╕реНрдЯ
рдХреЛрдб рдЬреЛ рдПрдХ рдмрдЯрди рдХреНрд▓рд┐рдХ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ: рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рд╕рд░реНрд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рд╕рд░реНрд╡рд░ рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдирд╣реАрдВ

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

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

рдЙрддреНрдкрд╛рджрди рд╣реА

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

рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдХреНрд╖реИрддрд┐рдЬ рд░реВрдк рд╕реЗ рд╕реНрдХреЗрд▓реЗрдмрд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░реЗрдВред рдмрдврд╝рддреЗ рд▓реЛрдб рдХреЛ рдиреЛрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрдврд╝рд╛рдХрд░ рдХрд╡рд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди

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

рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдПрд╕рд╡реА рдХреЛ рдПрдХ рдЕрд▓рдЧ рдЙрддреНрдкрд╛рдж рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рд╣рдо рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЫреЛрдЯреА рдХрдВрдкрдирд┐рдпрд╛рдБ рд╕реАрдмреА рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдЕрдкрдиреЗ рдХреНрд▓рд╛рдЙрдб (wss://1cdialog.com) рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рддрд╛рдХрд┐ рд╕рд░реНрд╡рд░ рдХреА рд╕реНрдерд╛рдиреАрдп рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗ рдЬреБрдбрд╝реА рдУрд╡рд░рд╣реЗрдб рд▓рд╛рдЧрдд рд╕реЗ рдмрдЪрд╛ рдЬрд╛ рд╕рдХреЗред рдмрдбрд╝реЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдЕрдкрдиреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдкрд░ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рд╕реАрдмреА рд╕рд░реНрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред рд╣рдордиреЗ рдЕрдкрдиреЗ рдХреНрд▓рд╛рдЙрдб SaaS рдЙрддреНрдкрд╛рдж рдореЗрдВ рдПрдХ рд╕рдорд╛рди рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ 1рд╕реАрддрд╛рдЬрд╛ - рдЗрд╕реЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреА рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЗ рд▓рд┐рдП рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдЙрддреНрдкрд╛рджрд┐рдд рдЙрддреНрдкрд╛рдж рдХреЗ рд░реВрдк рдореЗрдВ рдЙрддреНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рд╣рдорд╛рд░реЗ рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рднреА рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ https://1cfresh.com/.

рдЕрдиреБрдкреНрд░рдпреЛрдЧ

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

рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рдХреЗ рдмреАрдЪ рд╕рдВрдЪрд╛рд░ рд╡реЗрдмрд╕реЛрдХреЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рд░реАрдпрд▓-рдЯрд╛рдЗрдо рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИред

рд╡рд┐рддрд░рд┐рдд рдХреИрд╢

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

рд╣рдорд╛рд░реЗ рд▓рд┐рдП, рд╣реЗрдЬрд╝рд▓рдХрд╛рд╕реНрдЯ рд╣реИ:

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

conversationKeyChecker.check("╨С╨Х╨Э╨Ч╨Ю╨Ъ╨Ю╨Ы╨Ю╨Э╨Ъ╨Р");

      doInClusterLock("╨С╨Х╨Э╨Ч╨Ю╨Ъ╨Ю╨Ы╨Ю╨Э╨Ъ╨Р", () -> {

          conversationKeyChecker.check("╨С╨Х╨Э╨Ч╨Ю╨Ъ╨Ю╨Ы╨Ю╨Э╨Ъ╨Р");

          createChannel("╨С╨Х╨Э╨Ч╨Ю╨Ъ╨Ю╨Ы╨Ю╨Э╨Ъ╨Р");
      });

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

DBMS рдЪреБрдирдирд╛

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ PostgreSQL рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдФрд░ рдЗрд╕ DBMS рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд╕рд╛рде рд╕рд╣рдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╡реНрдпрд╛рдкрдХ рдФрд░ рд╕рдлрд▓ рдЕрдиреБрднрд╡ рд╣реИред

PostgreSQL рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд╕рд╛рде рдпрд╣ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ - рд╡рд╣рд╛рдБ рд╣реИ XL, XC, рд╕рд╛рдЗрдЯрд╕, рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ рдпреЗ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рд╕реНрдХреЗрд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ NoSQL рдирд╣реАрдВ рд╣реИрдВред рд╣рдордиреЗ NoSQL рдХреЛ рдореБрдЦреНрдп рд╕реНрдЯреЛрд░реЗрдЬ рдирд╣реАрдВ рдорд╛рдирд╛; рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рдерд╛ рдХрд┐ рд╣рдордиреЗ рд╣реЗрдЬрд╝реЗрд▓рдХрд╛рд╕реНрдЯ рд▓рд┐рдпрд╛, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╣рдордиреЗ рдкрд╣рд▓реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛ред

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

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

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдмрд╣реБ-рдХрд┐рд░рд╛рдпреЗрджрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рд╕рд╛рдЗрдЯрд╕ рдбреЗрдЯрд╛.

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

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдореБрдЦреНрдп рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИ рдЬрд╣рд╛рдВ рд╕рднреА рдЧреНрд░рд╛рд╣рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕реНрдерд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдПрдХ рд░реВрдЯрд┐рдВрдЧ рдЯреЗрдмрд▓ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред

рд╣рдордиреЗ 1рд╕реА рдХреЗ рд▓рд┐рдП рд╣рд╛рдИ-рд▓реЛрдб рд╕реНрдХреЗрд▓реЗрдмрд▓ рд╕реЗрд╡рд╛ рдХреИрд╕реЗ рдФрд░ рдХреНрдпреЛрдВ рд▓рд┐рдЦреА: рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝: рдЬрд╛рд╡рд╛, рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓, рд╣реЗрдЬрд╝реЗрд▓рдХрд╛рд╕реНрдЯ

рдореБрдЦреНрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдмрд╛рдзрд╛ рдмрдирдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд░рд╛рдЙрдЯрд┐рдВрдЧ рдЯреЗрдмрд▓ (рдФрд░ рдЕрдиреНрдп рдЕрдХреНрд╕рд░ рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛) рдХреЛ рдХреИрд╢ рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВред

рдпрджрд┐ рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдмрд░ рдХрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдзреАрдорд╛ рд╣реЛрдиреЗ рд▓рдЧрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕реЗ рдЕрдВрджрд░ рдХреЗ рд╡рд┐рднрд╛рдЬрдиреЛрдВ рдореЗрдВ рдХрд╛рдЯ рджреЗрдВрдЧреЗред рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдкрд░ рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ pg_pathman.

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

рдпрджрд┐ рдПрдХ рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░рддрд┐рдХреГрддрд┐ рдЦреЛ рдЬрд╛рддреА рд╣реИ, рддреЛ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░рддрд┐рдХреГрддрд┐ рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдмрди рдЬрд╛рддреА рд╣реИред
рдпрджрд┐ рдореБрдЦреНрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдЦреЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдкреНрд░рддрд┐рдХреГрддрд┐ рдореБрдЦреНрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдмрди рдЬрд╛рддреА рд╣реИ, рдФрд░ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдкреНрд░рддрд┐рдХреГрддрд┐ рдПрдХ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдкреНрд░рддрд┐рдХреГрддрд┐ рдмрди рдЬрд╛рддреА рд╣реИред

рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП рдЗрд▓рд╛рд╕реНрдЯрд┐рдХреНрд╕ рдЦреЛрдЬ

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

рдЬреАрдердм рдкрд░ рд╣рдордиреЗ рдкрд╛рдпрд╛ рд░реВрд╕реА рдЖрдХреГрддрд┐ рд╡рд┐рдЬреНрдЮрд╛рди рдкреНрд▓рдЧрдЗрди Elasticsearch рдХреЗ рд▓рд┐рдП рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЗрд▓рд╛рд╕реНрдЯрд┐рдХреНрд╕ рдЦреЛрдЬ рд╕реВрдЪрдХрд╛рдВрдХ рдореЗрдВ рд╣рдо рд╢рдмреНрдж рдЬрдбрд╝реЛрдВ (рдЬрд┐рд╕реЗ рдкреНрд▓рдЧрдЗрди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ) рдФрд░ рдПрди-рдЧреНрд░рд╛рдо рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВред рдЬреИрд╕реЗ рд╣реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП рдкрд╛рда рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИ, рд╣рдо рдПрди-рдЧреНрд░рд╛рдо рдХреЗ рдмреАрдЪ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рдкрд╛рда рдХреА рддрд▓рд╛рд╢ рдХрд░рддреЗ рд╣реИрдВред рд╕реВрдЪрдХрд╛рдВрдХ рдореЗрдВ рд╕рд╣реЗрдЬреЗ рдЬрд╛рдиреЗ рдкрд░, рд╢рдмреНрдж "рдЯреЗрдХреНрд╕реНрдЯ" рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрди-рдЧреНрд░рд╛рдо рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:

[рд╡реЗ, рдЯреЗрдХ, рдЯреЗрдХреНрд╕, рдЯреЗрдХреНрд╕реНрдЯ, рдЯреЗрдХреНрд╕реНрдЯ, рдПрдХ, рдкреВрд░реНрд╡, рдЯреЗрдХреНрд╕реНрдЯ, рдЯреЗрдХреНрд╕реНрдЯ, рдХреЗрдПрд╕, рдХреЗрдПрд╕рдЯреА, рдХреЗрдПрд╕рдЯреАрд╡рд╛рдИ, рдПрд╕рдЯреА, рд╕реНрдЯрд╛рдИ, рдЖрдк],

рдФрд░ "рдкрд╛рда" рд╢рдмреНрдж рдХрд╛ рдореВрд▓ рднреА рд╕рдВрд░рдХреНрд╖рд┐рдд рд░рд╣реЗрдЧрд╛ред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЖрдкрдХреЛ рд╢рдмреНрдж рдХреЗ рдЖрд░рдВрдн, рдордзреНрдп рдФрд░ рдЕрдВрдд рдореЗрдВ рдЦреЛрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░ рддрд╕реНрд╡реАрд░

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

  • рдмреИрд▓реЗрдВрд╕рд░ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЙрдЬрд╛рдЧрд░; рд╣рдорд╛рд░реЗ рдкрд╛рд╕ nginx рд╣реИ, рдпрд╣ рдХреЛрдИ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
  • рдЬрд╛рд╡рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд╣реЗрдЬрд╝рд▓рдХрд╛рд╕реНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред
  • рд╡реЗрдм рд╕реЙрдХреЗрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ Netty.
  • рдЬрд╛рд╡рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЬрд╛рд╡рд╛ 8 рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдмрдВрдбрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдУрдПрд╕рдЬреАрдЖрдИ. рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЬрд╛рд╡рд╛ 10 рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдФрд░ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╕рдВрдХреНрд░рдордг рд╢рд╛рдорд┐рд▓ рд╣реИред

рд╡рд┐рдХрд╛рд╕ рдПрд╡рдВ рдкрд░реАрдХреНрд╖рдг

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

рд▓реЛрдб рдкрд░реАрдХреНрд╖рдг рдФрд░ рдореЗрдореЛрд░реА рд▓реАрдХ

рдкреНрд░рддреНрдпреЗрдХ рдПрд╕рд╡реА рд░рд┐рд▓реАрдЬ рдХреА рд░рд┐рд▓реАрдЬ рдореЗрдВ рд▓реЛрдб рдкрд░реАрдХреНрд╖рдг рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрд╣ рддрдм рд╕рдлрд▓ рд╣реЛрддрд╛ рд╣реИ рдЬрдм:

  • рдкрд░реАрдХреНрд╖рдг рдХрдИ рджрд┐рдиреЛрдВ рддрдХ рдХрд╛рдо рдХрд░рддрд╛ рд░рд╣рд╛ рдФрд░ рдХреЛрдИ рд╕реЗрд╡рд╛ рд╡рд┐рдлрд▓рддрд╛ рдирд╣реАрдВ рд╣реБрдИ
  • рдкреНрд░рдореБрдЦ рдкрд░рд┐рдЪрд╛рд▓рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп рдПрдХ рдЖрд░рд╛рдорджрд╛рдпрдХ рд╕реАрдорд╛ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рдерд╛
  • рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдЧрд┐рд░рд╛рд╡рдЯ 10% рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИ

рд╣рдо рдкрд░реАрдХреНрд╖рдг рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдбреЗрдЯрд╛ рд╕реЗ рднрд░рддреЗ рд╣реИрдВ - рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЙрддреНрдкрд╛рджрди рд╕рд░реНрд╡рд░ рд╕реЗ рд╕рдмрд╕реЗ рд╕рдХреНрд░рд┐рдп рдЧреНрд░рд╛рд╣рдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ 5 рд╕реЗ рдЧреБрдгрд╛ рдХрд░рддреЗ рд╣реИрдВ (рд╕рдВрджреЗрд╢реЛрдВ, рдЪрд░реНрдЪрд╛рдУрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛) рдФрд░ рдЗрд╕ рддрд░рд╣ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВред

рд╣рдо рддреАрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдЗрдВрдЯрд░реЗрдХреНрд╢рди рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рд▓реЛрдб рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВ:

  1. рддрдирд╛рд╡ рдХреА рдЬрд╛рдВрдЪ
  2. рдХреЗрд╡рд▓ рдХрдиреЗрдХреНрд╢рди
  3. рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдмрд░ рдкрдВрдЬреАрдХрд░рдг

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

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рддрдирд╛рд╡ рдкрд░реАрдХреНрд╖рдг рдХрд╛ рднрд╛рдЧ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рджрд┐рдЦрддрд╛ рд╣реИ:

  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд▓реЙрдЧ рдЗрди рдХрд░рддрд╛ рд╣реИ
    • рдЖрдкрдХреА рдЕрдкрдард┐рдд рдЪрд░реНрдЪрд╛рдУрдВ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реВрдБ
    • рд╕рдВрджреЗрд╢ рдкрдврд╝рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ 50% рд╣реИ
    • рдкрд╛рда рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ 50% рд╣реИ
    • рдЕрдЧрд▓рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛:
      • рдирдИ рдЪрд░реНрдЪрд╛ рдкреИрджрд╛ рд╣реЛрдиреЗ рдХреА 20% рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ
      • рдЕрдкрдиреА рдХрд┐рд╕реА рднреА рдЪрд░реНрдЪрд╛ рдХреЛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рдЪреБрдирддрд╛ рд╣реИ
      • рдЕрдВрджрд░ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ
      • рдЕрдиреБрд░реЛрдз рд╕рдВрджреЗрд╢, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓
      • рдЗрд╕ рдЪрд░реНрдЪрд╛ рд╕реЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдкрд╛рдВрдЪ рд╕рдВрджреЗрд╢ рдмрдирд╛рддрд╛ рд╣реИ
      • рдЪрд░реНрдЪрд╛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ
      • 20 рдмрд╛рд░ рджреЛрд╣рд░рд╛рддрд╛ рд╣реИ
      • рд▓реЙрдЧ рдЖрдЙрдЯ рдХрд░рддрд╛ рд╣реИ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╡рд╛рдкрд╕ рдЬрд╛рддрд╛ рд╣реИ

    • рдПрдХ рдЪреИрдЯрдмреЙрдЯ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИ (рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рд╕реЗ рдореИрд╕реЗрдЬрд┐рдВрдЧ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рддрд╛ рд╣реИ)
      • рдбреЗрдЯрд╛ рд╡рд┐рдирд┐рдордп рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдЪреИрдирд▓ рдмрдирд╛рдиреЗ рдХреА 50% рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ (рд╡рд┐рд╢реЗрд╖ рдЪрд░реНрдЪрд╛)
      • рдХрд┐рд╕реА рднреА рдореМрдЬреВрджрд╛ рдЪреИрдирд▓ рдкрд░ рд╕рдВрджреЗрд╢ рд▓рд┐рдЦрдиреЗ рдХреА 50% рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ

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

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

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

рдпрд╣реАрдВ рд╕реЗ рд╣рдордиреЗ рд╢реБрд░реБрдЖрдд рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред

рдЧрдВрднреАрд░ рдкрд░реАрдХреНрд╖рдг рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рдЧрднрдЧ рддреБрд░рдВрдд рдмрд╛рдж, рд╣рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ JMeter рдиреЗ рдореЗрдореЛрд░реА рд▓реАрдХ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИред

рдкреНрд▓рдЧрдЗрди рдПрдХ рдЕрд▓рдЧ рдмрдбрд╝реА рдХрд╣рд╛рдиреА рд╣реИ; 176 рд╕рд┐рддрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде, рдЬреАрдердм рдкрд░ рдЗрд╕рдХреЗ 132 рдлреЛрд░реНрдХ рд╣реИрдВред рд▓реЗрдЦрдХ рдиреЗ рд╕реНрд╡рдпрдВ 2015 рдХреЗ рдмрд╛рдж рд╕реЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдмрджреНрдз рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ (рд╣рдордиреЗ рдЗрд╕реЗ 2015 рдореЗрдВ рд▓рд┐рдпрд╛ рдерд╛, рддрдм рдЗрд╕рдиреЗ рд╕рдВрджреЗрд╣ рдкреИрджрд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛), рдореЗрдореЛрд░реА рд▓реАрдХ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдХрдИ рдЬреАрдердм рдореБрджреНрджреЗ, 7 рдЕрдЬреНрдЮрд╛рдд рдкреБрд▓ рдЕрдиреБрд░реЛрдзред
рдпрджрд┐ рдЖрдк рдЗрд╕ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реЛрдб рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд░реНрдЪрд╛рдУрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ:

  1. рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ, рдПрдХ рдирд┐рдпрдорд┐рдд рд▓рд┐рдВрдХреНрдбрд▓рд┐рд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдкрд░рд┐рдгрд╛рдо рдпрд╣ рдерд╛ рдПрдирдкреАрдИ рд░рдирдЯрд╛рдЗрдо рдореЗрдВ. рдЗрд╕реЗ рдпрд╛ рддреЛ ConcurrentLinkedDeque рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдХреЗ рдпрд╛ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реНрдб рдмреНрд▓реЙрдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рдордиреЗ рдЕрдкрдиреЗ рд▓рд┐рдП рдкрд╣рд▓рд╛ рд╡рд┐рдХрд▓реНрдк рдЪреБрдирд╛ (https://github.com/maciejzaleski/JMeter-WebSocketSampler/issues/43).
  2. рдореЗрдореЛрд░реА рд▓реАрдХ; рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдкрд░, рдХрдиреЗрдХреНрд╢рди рдЬрд╛рдирдХрд╛рд░реА рд╣рдЯрд╛рдИ рдирд╣реАрдВ рдЬрд╛рддреА рд╣реИ (https://github.com/maciejzaleski/JMeter-WebSocketSampler/issues/44).
  3. рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдореЛрдб рдореЗрдВ (рдЬрдм рд╡реЗрдмрд╕реЙрдХреЗрдЯ рдирдореВрдиреЗ рдХреЗ рдЕрдВрдд рдореЗрдВ рдмрдВрдж рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╛рдж рдореЗрдВ рдпреЛрдЬрдирд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреИрдЯрд░реНрди рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ (https://github.com/maciejzaleski/JMeter-WebSocketSampler/issues/19).

рдпрд╣ рдЬреАрдердм рдкрд░ рдореМрдЬреВрдж рд▓реЛрдЧреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рд╣рдордиреЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдерд╛:

  1. рд▓реЗ рд▓рд┐рдпрд╛ рд╣реИ рдХрд╛рдВрдЯрд╛ рдПрд▓реАрд░рди рдХреЛрдЧрди (@elyrank) - рдпрд╣ рд╕рдорд╕реНрдпрд╛ 1 рдФрд░ 3 рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИ
  2. рд╣рд▓ рд╣реБрдИ рд╕рдорд╕реНрдпрд╛ 2
  3. рдЬреЗрдЯреА рдХреЛ 9.2.14 рд╕реЗ 9.3.12 рддрдХ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЧрдпрд╛
  4. ThreadLocal рдореЗрдВ SimpleDateFormat рд▓рдкреЗрдЯрд╛ рдЧрдпрд╛; SimpleDateFormat рдереНрд░реЗрдб-рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рд░рдирдЯрд╛рдЗрдо рдкрд░ NPE рд╣реЛ рдЧрдпрд╛
  5. рдПрдХ рдФрд░ рдореЗрдореЛрд░реА рд▓реАрдХ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ (рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдкрд░ рдХрдиреЗрдХреНрд╢рди рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдмрдВрдж рд╣реЛ рдЧрдпрд╛ рдерд╛)

рдФрд░ рдлрд┐рд░ рднреА рдпрд╣ рдмрд╣рддреА рд╣реИ!

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

рджреЛ рджрд┐рди рдмреАрдд рдЧрдП...

рдЕрдм рд╣реЗрдЬрд╝рд▓рдХрд╛рд╕реНрдЯ рдХреА рд╕реНрдореГрддрд┐ рдЦрд╝рддреНрдо рд╣реЛ рд░рд╣реА рд╣реИ. рд▓реЙрдЧ рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдХреБрдЫ рджрд┐рдиреЛрдВ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрд╛рдж, рд╣реЗрдЬрд╝рд▓рдХрд╛рд╕реНрдЯ рдиреЗ рдореЗрдореЛрд░реА рдХреА рдХрдореА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢рд┐рдХрд╛рдпрдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛, рдФрд░ рдХреБрдЫ рд╕рдордп рдмрд╛рдж рдХреНрд▓рд╕реНрдЯрд░ рдЯреВрдЯ рдЧрдпрд╛, рдФрд░ рдиреЛрдбреНрд╕ рдПрдХ-рдПрдХ рдХрд░рдХреЗ рдорд░рддреЗ рд░рд╣реЗред рд╣рдордиреЗ JVisualVM рдХреЛ рд╣реЗрдЬрд╝рд▓рдХрд╛рд╕реНрдЯ рд╕реЗ рдЬреЛрдбрд╝рд╛ рдФрд░ рдПрдХ "рд░рд╛рдЗрдЬрд┐рдВрдЧ рд╕реЙ" рджреЗрдЦрд╛ - рдпрд╣ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ GC рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореЗрдореЛрд░реА рдХреЛ рд╕рд╛рдлрд╝ рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ред

рд╣рдордиреЗ 1рд╕реА рдХреЗ рд▓рд┐рдП рд╣рд╛рдИ-рд▓реЛрдб рд╕реНрдХреЗрд▓реЗрдмрд▓ рд╕реЗрд╡рд╛ рдХреИрд╕реЗ рдФрд░ рдХреНрдпреЛрдВ рд▓рд┐рдЦреА: рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝: рдЬрд╛рд╡рд╛, рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓, рд╣реЗрдЬрд╝реЗрд▓рдХрд╛рд╕реНрдЯ

рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд╣реЗрдЬрд╝реЗрд▓рдХрд╛рд╕реНрдЯ 3.4 рдореЗрдВ, рдорд╛рдирдЪрд┐рддреНрд░ / рдорд▓реНрдЯреАрдореИрдк (map.destroy()) рдХреЛ рд╣рдЯрд╛рддреЗ рд╕рдордп, рдореЗрдореЛрд░реА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореБрдХреНрдд рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ:

github.com/hazelcast/hazelcast/issues/6317
github.com/hazelcast/hazelcast/issues/4888

рдмрдЧ рдХреЛ рдЕрдм 3.5 рдореЗрдВ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рддрдм рдпрд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдереАред рд╣рдордиреЗ рдЧрддрд┐рд╢реАрд▓ рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдирдП рдорд▓реНрдЯреАрдореИрдкреНрд╕ рдмрдирд╛рдП рдФрд░ рдЕрдкрдиреЗ рддрд░реНрдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ред рдХреЛрдб рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рдерд╛:

public void join(Authentication auth, String sub) {
    MultiMap<UUID, Authentication> sessions = instance.getMultiMap(sub);
    sessions.put(auth.getUserId(), auth);
}

public void leave(Authentication auth, String sub) {
    MultiMap<UUID, Authentication> sessions = instance.getMultiMap(sub);
    sessions.remove(auth.getUserId(), auth);

    if (sessions.size() == 0) {
        sessions.destroy();
    }
}

рдкреБрдХрд╛рд░рдирд╛:

service.join(auth1, "╨Э╨Ю╨Т╨л╨Х_╨б╨Ю╨Ю╨С╨й╨Х╨Э╨Ш╨п_╨Т_╨Ю╨С╨б╨г╨Ц╨Ф╨Х╨Э╨Ш╨Ш_UUID1");
service.join(auth2, "╨Э╨Ю╨Т╨л╨Х_╨б╨Ю╨Ю╨С╨й╨Х╨Э╨Ш╨п_╨Т_╨Ю╨С╨б╨г╨Ц╨Ф╨Х╨Э╨Ш╨Ш_UUID1");

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

public void join(Authentication auth, String sub) {
    addValueToMap(sub, auth.getSessionId());
}

public void leave(Authentication auth, String sub) { 
    removeValueFromMap(sub, auth.getSessionId());
}

рдЪрд╛рд░реНрдЯ рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реБрдЖ рд╣реИ.

рд╣рдордиреЗ 1рд╕реА рдХреЗ рд▓рд┐рдП рд╣рд╛рдИ-рд▓реЛрдб рд╕реНрдХреЗрд▓реЗрдмрд▓ рд╕реЗрд╡рд╛ рдХреИрд╕реЗ рдФрд░ рдХреНрдпреЛрдВ рд▓рд┐рдЦреА: рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝: рдЬрд╛рд╡рд╛, рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓, рд╣реЗрдЬрд╝реЗрд▓рдХрд╛рд╕реНрдЯ

рд▓реЛрдб рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдордиреЗ рдФрд░ рдХреНрдпрд╛ рд╕реАрдЦрд╛ рд╣реИ?

  1. JSR223 рдХреЛ рдЧреНрд░реВрд╡реА рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдФрд░ рд╕рдВрдХрд▓рди рдХреИрд╢ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдпрд╣ рдмрд╣реБрдд рддреЗрдЬрд╝ рд╣реИред рд▓рд┐рдВрдХ.
  2. рдЬреЗрдореАрдЯрд░-рдкреНрд▓рдЧрдЗрдиреНрд╕ рдЧреНрд░рд╛рдлрд╝ рдХреЛ рдорд╛рдирдХ рдЧреНрд░рд╛рдлрд╝ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реИред рд▓рд┐рдВрдХ.

рд╣реЗрдЬрд╝рд▓рдХрд╛рд╕реНрдЯ рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реЗ рдЕрдиреБрднрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ

рд╣реЗрдЬрд╝рд▓рдХрд╛рд╕реНрдЯ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдЙрддреНрдкрд╛рдж рдерд╛, рд╣рдордиреЗ рд╕рдВрд╕реНрдХрд░рдг 3.4.1 рд╕реЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рдЕрдм рд╣рдорд╛рд░рд╛ рдЙрддреНрдкрд╛рджрди рд╕рд░реНрд╡рд░ рд╕рдВрд╕реНрдХрд░рдг 3.9.2 рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реИ (рд▓реЗрдЦрди рдХреЗ рд╕рдордп, рд╣реЗрдЬрд╝рд▓рдХрд╛рд╕реНрдЯ рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг 3.10 рд╣реИ)ред

рдЖрдИрдбреА рдЬрдирд░реЗрд╢рди

рд╣рдордиреЗ рдкреВрд░реНрдгрд╛рдВрдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХреАред рдЖрдЗрдП рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рд╣рдореЗрдВ рдПрдХ рдирдИ рдЗрдХрд╛рдИ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рд▓реЙрдиреНрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЕрдиреБрдХреНрд░рдо рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ, рддрд╛рд▓рд┐рдХрд╛рдПрдБ рд╢рд╛рд░реНрдбрд┐рдВрдЧ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ - рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ DB1 рдореЗрдВ рдПрдХ рд╕рдВрджреЗрд╢ ID=1 рд╣реИ рдФрд░ DB1 рдореЗрдВ рдПрдХ рд╕рдВрджреЗрд╢ ID=2 рд╣реИ, рдЖрдк рдЗрд╕ ID рдХреЛ Elasticsearch рдореЗрдВ рдирд╣реАрдВ рдбрд╛рд▓ рд╕рдХрддреЗ, рди рд╣реА рд╣реЗрдЬрд╝реЗрд▓рдХрд╛рд╕реНрдЯ рдореЗрдВ , рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдмреБрд░реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдбреЗрдЯрд╛ рдХреЛ рджреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдПрдХ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдирд┐рд░реНрдгрдп рд▓реЗрдирд╛ рдХрд┐ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдЗрди рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ)ред рдЖрдк рд╣реЗрдЬрд╝рд▓рдХрд╛рд╕реНрдЯ рдореЗрдВ рдХрдИ рдПрдЯреЙрдорд┐рдХрд▓реЙрдиреНрдЧ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рд╡рд╣рд╛рдВ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдлрд┐рд░ рдПрдХ рдирдИ рдЖрдИрдбреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕рд╛рде рд╣реА рд╣реЗрдЬрд╝рд▓рдХрд╛рд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХрд╛ рд╕рдордп рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣реЗрдЬрд╝рд▓рдХрд╛рд╕реНрдЯ рдХреЗ рдкрд╛рд╕ рдХреБрдЫ рдЕрдзрд┐рдХ рдЗрд╖реНрдЯрддрдо рд╣реИ - FlakeIdGeneratorред рдкреНрд░рддреНрдпреЗрдХ рдЧреНрд░рд╛рд╣рдХ рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░рдиреЗ рдкрд░, рдЙрдиреНрд╣реЗрдВ рдПрдХ рдЖрдИрдбреА рд░реЗрдВрдЬ рджреА рдЬрд╛рддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓рд╛ - 1 рд╕реЗ 10 рддрдХ, рджреВрд╕рд░рд╛ - 000 рд╕реЗ 10 рддрдХ, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдЕрдм рдЧреНрд░рд╛рд╣рдХ рдЕрдкрдиреЗ рдЖрдк рдирдП рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдЬрд╛рд░реА рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЙрд╕реЗ рдЬрд╛рд░реА рдХреА рдЧрдИ рд╕реАрдорд╛ рд╕рдорд╛рдкреНрдд рди рд╣реЛ рдЬрд╛рдПред рдпрд╣ рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдЖрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди (рдФрд░ рд╣реЗрдЬрд╝реЗрд▓рдХрд╛рд╕реНрдЯ рдХреНрд▓рд╛рдЗрдВрдЯ) рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдирдпрд╛ рдЕрдиреБрдХреНрд░рдо рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ - рдЗрд╕рд▓рд┐рдП рд╕реНрдХрд┐рдк рдЖрджрд┐ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдирд╣реАрдВ рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдИрдбреА рдкреВрд░реНрдгрд╛рдВрдХ рдХреНрдпреЛрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрддрдиреА рдЕрд╕рдВрдЧрдд рд╣реИрдВред рд╣рдордиреЗ рд╕рдм рдХреБрдЫ рддреМрд▓рд╛ рдФрд░ рдпреВрдпреВрдЖрдИрдбреА рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ред

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

github.com/noctarius/snowcast
github.com/twitter/snowflake

рд▓реЗрдХрд┐рди рд╣рдо рдЕрдм рддрдХ рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдирд╣реАрдВ рдкрд╣реБрдВрдЪреЗ рд╣реИрдВред

рдЯреНрд░рд╛рдВрдЬреЗрдХреНрд╢рдирд▓рдореИрдк.рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди

рдПрдХ рдФрд░ рдЖрд╢реНрдЪрд░реНрдп: TransactionalMap.replace рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ред рдпрд╣рд╛рдБ рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╣реИ:

@Test
public void replaceInMap_putsAndGetsInsideTransaction() {

    hazelcastInstance.executeTransaction(context -> {
        HazelcastTransactionContextHolder.setContext(context);
        try {
            context.getMap("map").put("key", "oldValue");
            context.getMap("map").replace("key", "oldValue", "newValue");
            
            String value = (String) context.getMap("map").get("key");
            assertEquals("newValue", value);

            return null;
        } finally {
            HazelcastTransactionContextHolder.clearContext();
        }        
    });
}

Expected : newValue
Actual : oldValue

рдореБрдЭреЗ getForUpdate рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд▓рд┐рдЦрдирд╛ рдкрдбрд╝рд╛:

protected <K,V> boolean replaceInMap(String mapName, K key, V oldValue, V newValue) {
    TransactionalTaskContext context = HazelcastTransactionContextHolder.getContext();
    if (context != null) {
        log.trace("[CACHE] Replacing value in a transactional map");
        TransactionalMap<K, V> map = context.getMap(mapName);
        V value = map.getForUpdate(key);
        if (oldValue.equals(value)) {
            map.put(key, newValue);
            return true;
        }

        return false;
    }
    log.trace("[CACHE] Replacing value in a not transactional map");
    IMap<K, V> map = hazelcastInstance.getMap(mapName);
    return map.replace(key, oldValue, newValue);
}

рди рдХреЗрд╡рд▓ рдирд┐рдпрдорд┐рдд рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВ, рдмрд▓реНрдХрд┐ рдЙрдирдХреЗ рд▓реЗрдирджреЗрди рд╕рдВрдмрдВрдзреА рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рднреА рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВред рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ IMAp рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди TransactionalMap рдЕрдм рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред

рдмрд┐рдирд╛ рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдХреЗ рдирдпрд╛ JAR рдбрд╛рд▓реЗрдВ

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдордиреЗ рдЕрдкрдиреА рдХрдХреНрд╖рд╛рдУрдВ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╣реЗрдЬрд╝рд▓рдХрд╛рд╕реНрдЯ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреНрд▓рд╛рд╕ рд╣реИ, рд╣рдо рдЗрд╕реЗ рд╕рд╣реЗрдЬрдирд╛ рдФрд░ рдкрдврд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдмрдЪрд╛рдирд╛:

IMap<UUID, Application> map = hazelcastInstance.getMap("application");
map.set(id, application);

рд╣рдо рдкрдврд╝рддреЗ рд╣реИрдВ:

IMap<UUID, Application> map = hazelcastInstance.getMap("application");
return map.get(id);

рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ. рдлрд┐рд░ рд╣рдордиреЗ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЗрдЬрд╝рд▓рдХрд╛рд╕реНрдЯ рдореЗрдВ рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рдмрдирд╛рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛:

map.addIndex("subscriberId", false);

рдФрд░ рдПрдХ рдирдИ рдЗрдХрд╛рдИ рд▓рд┐рдЦрддреЗ рд╕рдордп, рдЙрдиреНрд╣реЗрдВ ClassNotFoundException рдкреНрд░рд╛рдкреНрдд рд╣реЛрдирд╛ рд╢реБрд░реВ рд╣реЛ рдЧрдпрд╛ред рд╣реЗрдЬрд╝рд▓рдХрд╛рд╕реНрдЯ рдиреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рд╡рд╣ рд╣рдорд╛рд░реА рдХрдХреНрд╖рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдерд╛ рдФрд░ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдЗрд╕ рдХрдХреНрд╖рд╛ рдХреЗ рд╕рд╛рде рдПрдХ JAR рдЙрд╕реЗ рдЖрдкреВрд░реНрддрд┐ рдХреА рдЬрд╛рдПред рд╣рдордиреЗ рд╡реИрд╕рд╛ рд╣реА рдХрд┐рдпрд╛, рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рдПрдХ рдирдИ рд╕рдорд╕реНрдпрд╛ рд╕рд╛рдордиреЗ рдЖрдИ: рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрдВрдж рдХрд┐рдП рдмрд┐рдирд╛ JAR рдХреЛ рдХреИрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдП? рдиреЛрдб-рджрд░-рдиреЛрдб рдЕрдкрдбреЗрдЯ рдХреЗ рджреМрд░рд╛рди рд╣реЗрдЬрд╝рд▓рдХрд╛рд╕реНрдЯ рдирдпрд╛ JAR рдирд╣реАрдВ рдЙрдард╛рддрд╛ рд╣реИред рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рд╣рдордиреЗ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдХрд┐ рд╣рдо рд╕реВрдЪрдХрд╛рдВрдХ рдЦреЛрдЬ рдХреЗ рдмрд┐рдирд╛ рд░рд╣ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдЦрд╝рд┐рд░рдХрд╛рд░, рдпрджрд┐ рдЖрдк рд╣реЗрдЬрд╝рд▓рдХрд╛рд╕реНрдЯ рдХреЛ рдХреА-рд╡реИрд▓реНрдпреВ рд╕реНрдЯреЛрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░реЗрдЧрд╛? рдЬрд╝рд░реВрд░реА рдирд╣реАрдВред рдпрд╣рд╛рдВ рднреА IMAp рдФрд░ TransactionalMap рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрд▓рдЧ рд╣реИред рдЬрд╣рд╛рдВ IMAp рдХреЛ рдХреЛрдИ рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рд╣реИ, рд╡рд╣рд╛рдВ TransactionalMap рдПрдХ рддреНрд░реБрдЯрд┐ рджреЗрддрд╛ рд╣реИред

рдЖрдИрдореИрдк. рд╣рдо 5000 рд╡рд╕реНрддреБрдПрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдкрдврд╝рддреЗ рд╣реИрдВред рд╕рдм рдХреБрдЫ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИ.

@Test
void get5000() {
    IMap<UUID, Application> map = hazelcastInstance.getMap("application");
    UUID subscriberId = UUID.randomUUID();

    for (int i = 0; i < 5000; i++) {
        UUID id = UUID.randomUUID();
        String title = RandomStringUtils.random(5);
        Application application = new Application(id, title, subscriberId);
        
        map.set(id, application);
        Application retrieved = map.get(id);
        assertEquals(id, retrieved.getId());
    }
}

рд▓реЗрдХрд┐рди рдпрд╣ рд▓реЗрди-рджреЗрди рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд╣рдореЗрдВ рдПрдХ ClassNotFoundException рдорд┐рд▓рддрд╛ рд╣реИ:

@Test
void get_transaction() {
    IMap<UUID, Application> map = hazelcastInstance.getMap("application_t");
    UUID subscriberId = UUID.randomUUID();
    UUID id = UUID.randomUUID();

    Application application = new Application(id, "qwer", subscriberId);
    map.set(id, application);
    
    Application retrievedOutside = map.get(id);
    assertEquals(id, retrievedOutside.getId());

    hazelcastInstance.executeTransaction(context -> {
        HazelcastTransactionContextHolder.setContext(context);
        try {
            TransactionalMap<UUID, Application> transactionalMap = context.getMap("application_t");
            Application retrievedInside = transactionalMap.get(id);

            assertEquals(id, retrievedInside.getId());
            return null;
        } finally {
            HazelcastTransactionContextHolder.clearContext();
        }
    });
}

3.8 рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд░реНрдЧ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рддрдВрддреНрд░ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ред рдЖрдк рдПрдХ рдорд╛рд╕реНрдЯрд░ рдиреЛрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕ рдкрд░ JAR рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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

рд╣рдо рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди рдХреИрд╕реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВ

рд╣реЗрдЬрд╝рд▓рдХрд╛рд╕реНрдЯ рдХреА рдЪрд╛рд░ рдпрд╛рддреНрд░рд╛рдПрдБ - рдЕрдЪреНрдЫреА, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рджреЛ - рдЦрд╝рд░рд╛рдм

рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдХреИрд╢ рдореЗрдВ рдЬрд╛рдирд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рдЬрд╛рдиреЗ рд╕реЗ рд╣рдореЗрд╢рд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдЕрдкреНрд░рдпреБрдХреНрдд рд░рд┐рдХреЙрд░реНрдб рдХреЛ рднреА рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╣рдо рд╡рд┐рдХрд╛рд╕ рдХреЗ рдЕрдВрддрд┐рдо рдЪрд░рдг рддрдХ рдХреНрдпрд╛ рдХреИрд╢ рдХрд░рдирд╛ рд╣реИ рдЗрд╕рдХрд╛ рдирд┐рд░реНрдгрдп рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВред рдЬрдм рдирдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛрдбрд┐рдд рд╣реЛ рдЬрд╛рддреА рд╣реИ, рддреЛ рд╣рдо PostgreSQL (log_min_duration_statement to 0) рдореЗрдВ рд╕рднреА рдкреНрд░рд╢реНрдиреЛрдВ рдХреА рд▓реЙрдЧрд┐рдВрдЧ рдЪрд╛рд▓реВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ 20 рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП рд▓реЛрдб рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддреЗ рд╣реИрдВред рдПрдХрддреНрд░рд┐рдд рд▓реЙрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, pgFouine рдФрд░ pgBadger рдЬреИрд╕реА рдЙрдкрдпреЛрдЧрд┐рддрд╛рдПрдБ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рд░рд┐рдкреЛрд░реНрдЯ рдмрдирд╛ рд╕рдХрддреА рд╣реИрдВред рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ, рд╣рдо рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдзреАрдореА рдФрд░ рдмрд╛рд░-рдмрд╛рд░ рдЖрдиреЗ рд╡рд╛рд▓реА рдХреНрд╡реЗрд░реАрдЬрд╝ рдкрд░ рдзреНрдпрд╛рди рджреЗрддреЗ рд╣реИрдВред рдзреАрдореА рдХреНрд╡реЗрд░реА рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЬрдирд╛ (EXPLAIN) рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдРрд╕реА рдХреНрд╡реЗрд░реА рдХреЛ рддреНрд╡рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рдорд╛рди рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдмрд╛рд░-рдмрд╛рд░ рдЕрдиреБрд░реЛрдз рдХреИрд╢ рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдлрд┐рдЯ рд╣реЛрддреЗ рд╣реИрдВред рд╣рдо рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ "рд╕рдкрд╛рдЯ" рд░рдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рдкреНрд░рддрд┐ рдкреНрд░рд╢реНрди рдПрдХ рддрд╛рд▓рд┐рдХрд╛ред

рд╢реЛрд╖рдг

рдПрдХ рдСрдирд▓рд╛рдЗрди рд╕реЗрд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдПрд╕рд╡реА рдХреЛ 2017 рдХреЗ рд╡рд╕рдВрдд рдореЗрдВ рдкрд░рд┐рдЪрд╛рд▓рди рдореЗрдВ рд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдПрдХ рдЕрд▓рдЧ рдЙрддреНрдкрд╛рдж рдХреЗ рд░реВрдк рдореЗрдВ, рдПрд╕рд╡реА рдХреЛ рдирд╡рдВрдмрд░ 2017 рдореЗрдВ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдЙрд╕ рд╕рдордп рдмреАрдЯрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд┐рддрд┐ рдореЗрдВ)ред

рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдПрдХ рд╡рд░реНрд╖ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рдореЗрдВ, рд╕реАрдмреА рдСрдирд▓рд╛рдЗрди рд╕реЗрд╡рд╛ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ рдХреЛрдИ рдЧрдВрднреАрд░ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдЖрдИ рд╣реИред рд╣рдо рдСрдирд▓рд╛рдЗрди рд╕реЗрд╡рд╛ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддреЗ рд╣реИрдВ Zabbix, рд╕реЗ рдПрдХрддреНрд░ рдХрд░реЗрдВ рдФрд░ рддреИрдирд╛рдд рдХрд░реЗрдВ рдмрд╛рдВрд╕.

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

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ