рдЖрдореНрд╣реА 1C рд╕рд╛рдареА рдЙрдЪреНрдЪ-рд▓реЛрдб рд╕реНрдХреЗрд▓реЗрдмрд▓ рд╕реЗрд╡рд╛ рдХрд╢реА рдЖрдгрд┐ рдХрд╛ рд▓рд┐рд╣рд┐рд▓реА: Enterprise: Java, PostgreSQL, Hazelcast

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

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

SV рд╡рд┐рддрд░рд┐рдд рд╕реНрдЯреЛрд░реЗрдЬ рд╡рд╛рдкрд░рддреЗ рд╣реЗрдЭреЗрд▓рдХрд╛рд╕реНрдЯ рдЖрдгрд┐ рд╢реЛрдз рдЗрдВрдЬрд┐рди Elasticsearch. рдЖрдореНрд╣реА Java рдмрджреНрджрд▓ рдЖрдгрд┐ PostgreSQL рдХреНрд╖реИрддрд┐рдЬрд░рд┐рддреНрдпрд╛ рдХрд╕реЗ рд╕реНрдХреЗрд▓ рдХрд░рддреЛ рдпрд╛рдмрджреНрджрд▓ рджреЗрдЦреАрд▓ рдмреЛрд▓реВ.
рдЖрдореНрд╣реА 1C рд╕рд╛рдареА рдЙрдЪреНрдЪ-рд▓реЛрдб рд╕реНрдХреЗрд▓реЗрдмрд▓ рд╕реЗрд╡рд╛ рдХрд╢реА рдЖрдгрд┐ рдХрд╛ рд▓рд┐рд╣рд┐рд▓реА: Enterprise: Java, PostgreSQL, Hazelcast

рд╕рдорд╕реНрдпреЗрдЪреА рдирд┐рд░реНрдорд┐рддреА

рдЖрдореНрд╣реА рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рдж рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рддрдпрд╛рд░ рдХреЗрд▓реА рд╣реЗ рд╕реНрдкрд╖реНрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдореА рддреБрдореНрд╣рд╛рд▓рд╛ 1C рдордзреНрдпреЗ рд╡реНрдпрд╡рд╕рд╛рдп рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрдЪрд╛ рд╡рд┐рдХрд╛рд╕ рдХрд╕рд╛ рдХрд╛рд░реНрдп рдХрд░рддреЛ рдпрд╛рдмрджреНрджрд▓ рдереЛрдбреЗрд╕реЗ рд╕рд╛рдВрдЧреЗрди.

рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛, рдЖрдореНрд╣реА рдХрд╛рдп рдХрд░рддреЛ рд╣реЗ рдЕрджреНрдпрд╛рдк рдорд╛рд╣рд┐рдд рдирд╕рд▓реЗрд▓реНрдпрд╛рдВрд╕рд╛рдареА рдЖрдордЪреНрдпрд╛рдмрджреНрджрд▓ рдереЛрдбреЗрд╕реЗ :) рдЖрдореНрд╣реА 1C:Enterprise рддрдВрддреНрд░рдЬреНрдЮрд╛рди рдордВрдЪ рдмрдирд╡рдд рдЖрд╣реЛрдд. рдкреНрд▓реЕрдЯрдлреЙрд░реНрдордордзреНрдпреЗ рдмрд┐рдЭрдиреЗрд╕ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрд╡реНрд╣рд▓рдкрдореЗрдВрдЯ рдЯреВрд▓, рддрд╕реЗрдЪ рд░рдирдЯрд╛рдЗрдо рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ рдЬреЛ рдХреНрд░реЙрд╕-рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд рдмрд┐рдЭрдиреЗрд╕ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЪрд╛рд▓рд╡рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЛ.

рдХреНрд▓рд╛рдпрдВрдЯ-рд╕рд░реНрд╡реНрд╣рд░ рд╡рд┐рдХрд╛рд╕ рдирдореБрдирд╛

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

рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдбрдордзреНрдпреЗ, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЖрдгрд┐ рдлрдВрдХреНрд╢рдиреНрд╕рдЪреНрдпрд╛ рд╢реАрд░реНрд╖рд▓реЗрдЦрд╛рдВрдиреА рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рд╕реВрдЪрд┐рдд рдХреЗрд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ рдХреА рдХреЛрдб рдХреБрдареЗ рдЕрдВрдорд▓рд╛рдд рдЖрдгрд▓рд╛ рдЬрд╛рдИрд▓ - &AtClient / &AtServer рдирд┐рд░реНрджреЗрд╢рд╛рдВрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди (&AtClient / &AtServer рднрд╛рд╖реЗрдЪреНрдпрд╛ рдЗрдВрдЧреНрд░рдЬреА рдЖрд╡реГрддреНрддреАрдордзреНрдпреЗ). 1C рд╡рд┐рдХрд╛рд╕рдХ рдЖрддрд╛ рдорд▓рд╛ рдЕрд╕реЗ рд╕рд╛рдВрдЧреВрди рджреБрд░реБрд╕реНрдд рдХрд░рддреАрд▓ рдХреА рдирд┐рд░реНрджреЗрд╢ рдкреНрд░рддреНрдпрдХреНрд╖рд╛рдд рдЖрд╣реЗрдд рдкреЗрдХреНрд╖рд╛ рдЕрдзрд┐рдХ, рдкрд░рдВрддреБ рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА рд╣реЗ рдЖрддрд╛ рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдирд╛рд╣реА.

рддреБрдореНрд╣реА рдХреНрд▓рд╛рдпрдВрдЯ рдХреЛрдбрд╡рд░реВрди рд╕рд░реНрд╡реНрд╣рд░ рдХреЛрдб рдХреЙрд▓ рдХрд░реВ рд╢рдХрддрд╛, рдкрд░рдВрддреБ рддреБрдореНрд╣реА рд╕рд░реНрд╡реНрд╣рд░ рдХреЛрдбрд╡рд░реВрди рдХреНрд▓рд╛рдпрдВрдЯ рдХреЛрдб рдХреЙрд▓ рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА. рд╣реА рдПрдХ рдореВрд▓рднреВрдд рдорд░реНрдпрд╛рджрд╛ рдЖрд╣реЗ рдЬреА рдЖрдореНрд╣реА рдЕрдиреЗрдХ рдХрд╛рд░рдгрд╛рдВрд╕рд╛рдареА рдХреЗрд▓реА рдЖрд╣реЗ. рд╡рд┐рд╢реЗрд╖рддрдГ, рдХрд╛рд░рдг рд╕рд░реНрд╡реНрд╣рд░ рдХреЛрдб рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ рд▓рд┐рд╣рд┐рд▓рд╛ рдЬрд╛рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдХреА рддреЛ рдХреНрд▓рд╛рдпрдВрдЯрдХрдбреВрди рдХрд┐рдВрд╡рд╛ рд╕рд░реНрд╡реНрд╣рд░рдХрдбреВрди рдХреЙрд▓ рдХреЗрд▓рд╛ рдЬрд╛рдд рдЕрд╕рд▓рд╛ рддрд░реАрд╣реА рддреЛ рддреНрдпрд╛рдЪ рдкреНрд░рдХрд╛рд░реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддреЛ. рдЖрдгрд┐ рджреБрд╕рд░реНтАНрдпрд╛ рд╕рд░реНрд╡реНрд╣рд░ рдХреЛрдбрд╡рд░реВрди рд╕рд░реНрд╡реНрд╣рд░ рдХреЛрдб рдХреЙрд▓ рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдмрд╛рдмрддреАрдд, рдЕрд╕рд╛ рдХреЛрдгрддрд╛рд╣реА рдХреНрд▓рд╛рдпрдВрдЯ рдирд╛рд╣реА. рдЖрдгрд┐ рдХрд╛рд░рдг рд╕рд░реНрд╡реНрд╣рд░ рдХреЛрдбрдЪреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрджрд░рдореНрдпрд╛рди, рдЬреНрдпрд╛ рдХреНрд▓рд╛рдпрдВрдЯрдиреЗ рддреНрдпрд╛рд▓рд╛ рдХреЙрд▓ рдХреЗрд▓рд╛ рддреЛ рдмрдВрдж рдХрд░реВ рд╢рдХрддреЛ, рдНрдкреНрд▓рд┐рдХреЗрд╢рдирдордзреВрди рдмрд╛рд╣реЗрд░ рдкрдбреВ рд╢рдХрддреЛ рдЖрдгрд┐ рд╕рд░реНрд╡реНрд╣рд░рдХрдбреЗ рдпрд╛рдкреБрдвреЗ рдХреЛрдгреАрд╣реА рдХреЙрд▓ рдХрд░рдгрд╛рд░ рдирд╛рд╣реА.

рдЖрдореНрд╣реА 1C рд╕рд╛рдареА рдЙрдЪреНрдЪ-рд▓реЛрдб рд╕реНрдХреЗрд▓реЗрдмрд▓ рд╕реЗрд╡рд╛ рдХрд╢реА рдЖрдгрд┐ рдХрд╛ рд▓рд┐рд╣рд┐рд▓реА: Enterprise: Java, PostgreSQL, Hazelcast
рдмрдЯрдг рдХреНрд▓рд┐рдХ рд╣рд╛рддрд╛рд│рдгрд╛рд░рд╛ рдХреЛрдб: рдХреНрд▓рд╛рдпрдВрдЯрдХрдбреВрди рд╕рд░реНрд╡реНрд╣рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЙрд▓ рдХрд░рдгреЗ рдХрд╛рд░реНрдп рдХрд░реЗрд▓, рд╕рд░реНрд╡реНрд╣рд░рд╡рд░реВрди рдХреНрд▓рд╛рдпрдВрдЯ рдкреНрд░рдХреНрд░рд┐рдпреЗрд╕ рдХреЙрд▓ рдХрд░рдгреЗ рдХрд╛рд░реНрдп рдХрд░рдгрд╛рд░ рдирд╛рд╣реА

рдпрд╛рдЪрд╛ рдЕрд░реНрде рдЕрд╕рд╛ рдХреА рдЬрд░ рдЖрдореНрд╣рд╛рд▓рд╛ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░реВрди рдХреНрд▓рд╛рдпрдВрдЯ рдНрдкреНрд▓рд┐рдХреЗрд╢рдирд▓рд╛ рдХрд╛рд╣реА рд╕рдВрджреЗрд╢ рдкрд╛рдард╡рд╛рдпрдЪрд╛ рдЕрд╕реЗрд▓, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, тАЬрджреАрд░реНрдШрдХрд╛рд│ рдЪрд╛рд▓рдгрд╛рд░реНтАНрдпрд╛тАЭ рдЕрд╣рд╡рд╛рд▓рд╛рдЪреА рдирд┐рд░реНрдорд┐рддреА рдкреВрд░реНрдг рдЭрд╛рд▓реА рдЖрд╣реЗ рдЖрдгрд┐ рдЕрд╣рд╡рд╛рд▓ рдкрд╛рд╣рд┐рд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ, рддрд░ рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдЕрд╢реА рдкрджреНрдзрдд рдирд╛рд╣реА. рддреБрдореНрд╣рд╛рд▓рд╛ рдпреБрдХреНрддреНрдпрд╛ рд╡рд╛рдкрд░рд╛рд╡реНрдпрд╛ рд▓рд╛рдЧрддреАрд▓, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдХреНрд▓рд╛рдпрдВрдЯ рдХреЛрдбрд╡рд░реВрди рд╡реЗрд│реЛрд╡реЗрд│реА рд╕рд░реНрд╡реНрд╣рд░рдЪреЗ рдорддрджрд╛рди рдХрд░рд╛. рдкрд░рдВрддреБ рд╣рд╛ рджреГрд╖реНрдЯреАрдХреЛрди рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХреЙрд▓рд╕рд╣ рд╕рд┐рд╕реНрдЯрдо рд▓реЛрдб рдХрд░рддреЛ рдЖрдгрд┐ рд╕рд╛рдорд╛рдиреНрдпрдд: рдлрд╛рд░ рдореЛрд╣рдХ рджрд┐рд╕рдд рдирд╛рд╣реА.

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

рдЙрддреНрдкрд╛рджрди рд╕реНрд╡рддрдГ

рд╕рдВрджреЗрд╢рд╡рд╣рди рдпрдВрддреНрд░рдгрд╛ рддрдпрд╛рд░ рдХрд░рд╛. рдЬрд▓рдж, рд╡рд┐рд╢реНрд╡рд╛рд╕рд╛рд░реНрд╣, рд╣рдореА рд╡рд┐рддрд░рдгрд╛рд╕рд╣, рд▓рд╡рдЪрд┐рдХрдкрдгреЗ рд╕рдВрджреЗрд╢ рд╢реЛрдзрдгреНрдпрд╛рдЪреНрдпрд╛ рдХреНрд╖рдорддреЗрд╕рд╣. рдпрдВрддреНрд░рдгреЗрд╡рд░ рдЖрдзрд╛рд░рд┐рдд, 1C рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдордзреНрдпреЗ рдЪрд╛рд▓рдгрд╛рд░рд╛ рдореЗрд╕реЗрдВрдЬрд░ (рд╕рдВрджреЗрд╢, рд╡реНрд╣рд┐рдбрд┐рдУ рдХреЙрд▓) рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рд╛.

рдкреНрд░рдгрд╛рд▓реА рдХреНрд╖реИрддрд┐рдЬрд░рд┐рддреНрдпрд╛ рд╕реНрдХреЗрд▓реЗрдмрд▓ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдбрд┐рдЭрд╛рдЗрди рдХрд░рд╛. рдиреЛрдбреНрд╕рдЪреА рд╕рдВрдЦреНрдпрд╛ рд╡рд╛рдврд╡реВрди рд╡рд╛рдврдгрд╛рд░рд╛ рднрд╛рд░ рдХрд╡реНрд╣рд░ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА

рдЖрдореНрд╣реА SV рдЪрд╛ рд╕рд░реНрд╡реНрд╣рд░ рднрд╛рдЧ рдереЗрдЯ 1C:Enterprise рдкреНрд▓реЕрдЯрдлреЙрд░реНрдордордзреНрдпреЗ рд╕рдорд╛рдХрд▓рд┐рдд рди рдХрд░рдгреНрдпрд╛рдЪреЗ рдард░рд╡рд▓реЗ рдЖрд╣реЗ, рдкрд░рдВрддреБ рддреЗ рд╕реНрд╡рддрдВрддреНрд░ рдЙрддреНрдкрд╛рджрди рдореНрд╣рдгреВрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рд╛рдпрдЪреЗ рдЖрд╣реЗ, рдЬреНрдпрд╛рдЪрд╛ API 1C рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЛрд▓реНрдпреВрд╢рдиреНрд╕рдЪреНрдпрд╛ рдХреЛрдбрдордзреВрди рдХреЙрд▓ рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ. рд╣реЗ рдмрд░реНтАНрдпрд╛рдЪ рдХрд╛рд░рдгрд╛рдВрд╕рд╛рдареА рдХреЗрд▓реЗ рдЧреЗрд▓реЗ, рддреНрдпрд╛рдкреИрдХреА рдореБрдЦреНрдп рдореНрд╣рдгрдЬреЗ рдорд▓рд╛ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ 1C рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрдордзреНрдпреЗ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЯреНрд░реЗрдб рдореЕрдиреЗрдЬрдореЗрдВрдЯ рдЖрдгрд┐ рдЕрдХрд╛рдЙрдВрдЯрд┐рдВрдЧ рджрд░рдореНрдпрд╛рди) рд╕рдВрджреЗрд╢рд╛рдВрдЪреА рджреЗрд╡рд╛рдгрдШреЗрд╡рд╛рдг рдХрд░рдгреЗ рд╢рдХреНрдп рдХрд░рд╛рдпрдЪреЗ рд╣реЛрддреЗ. рд╡реЗрдЧрд╡реЗрдЧрд│реЗ 1C рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рди 1C рдЪреНрдпрд╛ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдЖрд╡реГрддреНрддреНрдпрд╛рдВрд╡рд░ рдЪрд╛рд▓реВ рд╢рдХрддрд╛рдд: рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо, рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рд╕реНрдерд┐рдд рдЕрд╕реВ рд╢рдХрддрд╛рдд рдЗ. рдЕрд╢рд╛ рдкрд░рд┐рд╕реНрдерд┐рддреАрдд, 1C рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рдиреНрд╕рдЪреНрдпрд╛ тАЬрдмрд╛рдЬреВрд▓рд╛тАЭ рд╕реНрдерд┐рдд рд╕реНрд╡рддрдВрддреНрд░ рдЙрддреНрдкрд╛рджрди рдореНрд╣рдгреВрди SV рдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рд╣рд╛ рдЗрд╖реНрдЯрддрдо рдЙрдкрд╛рдп рдЖрд╣реЗ.

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

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

рд▓реЛрдб рдЖрдгрд┐ рдлреЙрд▓реНрдЯ рдЯреЙрд▓рд░рдиреНрд╕ рд╡рд┐рддрд░реАрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА рдПрдХ Java рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдирд╛рд╣реА рддрд░ рддреНрдпрд╛рдВрдЪреНрдпрд╛ рд╕рдореЛрд░ рд▓реЛрдб рдмреЕрд▓рдиреНрд╕рд░рд╕рд╣ рдЕрдиреЗрдХ рдЙрдкрдпреЛрдЬрд┐рдд рдХрд░реВ. рддреБрдореНрд╣рд╛рд▓рд╛ рдПрдЦрд╛рджрд╛ рд╕рдВрджреЗрд╢ рдиреЛрдбрдкрд╛рд╕реВрди рдиреЛрдбрд╡рд░ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд░рд╛рдпрдЪрд╛ рдЕрд╕рд▓реНрдпрд╛рд╕, Hazelcast рдордзреНрдпреЗ рдкреНрд░рдХрд╛рд╢рд┐рдд/рд╕рджрд╕реНрдпрддрд╛ рдШреНрдпрд╛.

рдХреНрд▓рд╛рдпрдВрдЯ рдЖрдгрд┐ рд╕рд░реНрд╡реНрд╣рд░рдордзреАрд▓ рд╕рдВрдкреНрд░реЗрд╖рдг рд╡реЗрдмрд╕реЙрдХреЗрдЯрджреНрд╡рд╛рд░реЗ рд╣реЛрддреЗ. рд╣реЗ рд░рд┐рдЕрд▓-рдЯрд╛рдЗрдо рд╕рд┐рд╕реНрдЯрдорд╕рд╛рдареА рдпреЛрдЧреНрдп рдЖрд╣реЗ.

рд╡рд┐рддрд░рд┐рдд рдХреЕрд╢реЗ

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

рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА, рд╣реЗрдЭреЗрд▓рдХрд╛рд╕реНрдЯ рдЖрд╣реЗ:

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

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

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

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

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

рдЖрдореНрд╣реА рддрдкрд╛рд╕рд▓реЗ рдХреА рддреЗрдереЗ рдХреЛрдгрддреЗрд╣реА рдЪреЕрдиреЗрд▓ рдирд╛рд╣реА. рдЖрдореНрд╣реА рд▓реЙрдХ рдШреЗрддрд▓рд╛, рддреЗ рдкреБрдиреНрд╣рд╛ рддрдкрд╛рд╕рд▓реЗ рдЖрдгрд┐ рддреЗ рддрдпрд╛рд░ рдХреЗрд▓реЗ. рд▓реЙрдХ рдШреЗрддрд▓реНрдпрд╛рдирдВрддрд░ рддреБрдореНрд╣реА рд▓реЙрдХ рддрдкрд╛рд╕рд▓реЗ рдирд╛рд╣реА, рддрд░ рддреНрдпрд╛ рдХреНрд╖рдгреА рджреБрд╕рд░реНтАНрдпрд╛ рдереНрд░реЗрдбрдиреЗ рджреЗрдЦреАрд▓ рддрдкрд╛рд╕рдгреНрдпрд╛рдЪреА рд╢рдХреНрдпрддрд╛ рдЖрд╣реЗ рдЖрдгрд┐ рдЖрддрд╛ рддреАрдЪ рдЪрд░реНрдЪрд╛ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░реЗрд▓ - рдкрд░рдВрддреБ рддреА рдЖрдзреАрдЪ рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдд рдЖрд╣реЗ. рддреБрдореНрд╣реА рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЭ рдХреЗрд▓реЗрд▓реЗ рдХрд┐рдВрд╡рд╛ рдирд┐рдпрдорд┐рдд рдЬрд╛рд╡рд╛ рд▓реЙрдХ рд╡рд╛рдкрд░реВрди рд▓реЙрдХ рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА. рдбреЗрдЯрд╛рдмреЗрд╕рджреНрд╡рд╛рд░реЗ - рддреЗ рдордВрдж рдЖрд╣реЗ, рдЖрдгрд┐ рдбреЗрдЯрд╛рдмреЗрд╕рд╕рд╛рдареА рд╣реЗ рдЦреЗрджрдЬрдирдХ рдЖрд╣реЗ; рд╣реЗрдЭреЗрд▓рдХрд╛рд╕реНрдЯрджреНрд╡рд╛рд░реЗ - рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рддреЗрдЪ рд╣рд╡реЗ рдЖрд╣реЗ.

DBMS рдирд┐рд╡рдбрдд рдЖрд╣реЗ

рдЖрдордЪреНрдпрд╛рдХрдбреЗ PostgreSQL рд╕рд╣ рдХрд╛рдо рдХрд░рдгреНрдпрд╛рдЪрд╛ рдЖрдгрд┐ рдпрд╛ DBMS рдЪреНрдпрд╛ рдбреЗрд╡реНрд╣рд▓рдкрд░реНрд╕рд╕реЛрдмрдд рд╕рд╣рдпреЛрдЧ рдХрд░рдгреНрдпрд╛рдЪрд╛ рд╡реНрдпрд╛рдкрдХ рдЖрдгрд┐ рдпрд╢рд╕реНрд╡реА рдЕрдиреБрднрд╡ рдЖрд╣реЗ.

рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓ рдХреНрд▓рд╕реНрдЯрд░рд╕рд╣ рд╣реЗ рд╕реЛрдкреЗ рдирд╛рд╣реА - рдЖрд╣реЗ XL, XC, рд╕рд╛рдпрдЯрд╕, рдкрд░рдВрддреБ рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ рд╣реЗ NoSQL рдирд╛рд╣реАрдд рдЬреЗ рдмреЙрдХреНрд╕рдЪреНрдпрд╛ рдмрд╛рд╣реЗрд░ рдореЛрдЬрддрд╛рдд. рдЖрдореНрд╣реА NoSQL рд▓рд╛ рдореБрдЦреНрдп рд╕реНрдЯреЛрд░реЗрдЬ рдореНрд╣рдгреВрди рдорд╛рдирд▓реЗ рдирд╛рд╣реА; рдЖрдореНрд╣реА рд╣реЗрдЭреЗрд▓рдХрд╛рд╕реНрдЯ рдШреЗрддрд▓реЗ рддреЗ рдкреБрд░реЗрд╕реЗ рдЖрд╣реЗ, рдЬреНрдпрд╛рд╡рд░ рдЖрдореНрд╣реА рдпрд╛рдкреВрд░реНрд╡реА рдХрд╛рдо рдХреЗрд▓реЗ рдирд╡реНрд╣рддреЗ.

рддреБрдореНрд╣рд╛рд▓рд╛ рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдХреЗрд▓ рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕рд▓реНрдпрд╛рд╕, рдпрд╛рдЪрд╛ рдЕрд░реНрде рд╢рд╛рд░реНрдбрд┐рдВрдЧ. рддреБрдореНрд╣рд╛рд▓рд╛ рдорд╛рд╣рд┐рддреА рдЖрд╣реЗрдЪ, рд╢рд╛рд░реНрдбрд┐рдВрдЧрд╕рд╣ рдЖрдореНрд╣реА рдбреЗрдЯрд╛рдмреЗрд╕ рд╡реЗрдЧрд│реНрдпрд╛ рднрд╛рдЧрд╛рдВрдордзреНрдпреЗ рд╡рд┐рднрд╛рдЧрддреЛ рдЬреЗрдгреЗрдХрд░реВрди рдкреНрд░рддреНрдпреЗрдХрд╛рд▓рд╛ рд╡реЗрдЧрд│реНрдпрд╛ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдареЗрд╡рддрд╛ рдпреЗрдИрд▓.

рдЖрдордЪреНтАНрдпрд╛ рд╢рд╛рд░реНрдбрд┐рдВрдЧрдЪреНтАНрдпрд╛ рдкрд╣рд┐рд▓реНтАНрдпрд╛ рдЖрд╡реГрддреНтАНрддреАрдиреЗ рдЖрдордЪреНтАНрдпрд╛ рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рдирдЪреНтАНрдпрд╛ рдкреНрд░рддреНтАНрдпреЗрдХ рд╕рд╛рд░рдгреАрдЪреНтАНрдпрд╛ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рд╡рд┐рддрд░реАрдд рдХрд░рдгреНтАНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдЧреГрд╣реАрдд рдзрд░рд▓реА. рд╕рд░реНрд╡реНрд╣рд░ A рд╡рд░ рдмрд░реЗрдЪ рд╕рдВрджреЗрд╢ рдЖрд╣реЗрдд - рдХреГрдкрдпрд╛, рдпрд╛ рд╕рд╛рд░рдгреАрдЪрд╛ рдХрд╛рд╣реА рднрд╛рдЧ рд╕рд░реНрд╡реНрд╣рд░ B рд╡рд░ рд╣рд▓рд╡реВ рдпрд╛. рд╣рд╛ рдирд┐рд░реНрдгрдп рдХреЗрд╡рд│ рдЕрдХрд╛рд▓реА рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рдирдмрджреНрджрд▓ рдУрд░рдбрдд рд╣реЛрддрд╛, рдореНрд╣рдгреВрди рдЖрдореНрд╣реА рд╕реНрд╡рддрдГрд▓рд╛ рдмрд╣реБ-рднрд╛рдбреЗрдХрд░реВ рджреГрд╖реНрдЯрд┐рдХреЛрдирд╛рдкрд░реНрдпрдВрдд рдорд░реНрдпрд╛рджрд┐рдд рдареЗрд╡рдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрддрд▓рд╛.

рдЖрдкрдг рдмрд╣реБ-рднрд╛рдбреЗрдХрд░реВ рдмрджреНрджрд▓ рд╡рд╛рдЪреВ рд╢рдХрддрд╛, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╡реЗрдмрд╕рд╛рдЗрдЯрд╡рд░ рд╕рд╛рдЗрдЯрд╕ рдбреЗрдЯрд╛.

SV рдордзреНрдпреЗ рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрдгрд┐ рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдмрд░ рдпрд╛ рд╕рдВрдХрд▓реНрдкрдирд╛ рдЖрд╣реЗрдд. рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореНрд╣рдгрдЬреЗ рд╡реНрдпрд╡рд╕рд╛рдп рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдЪреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдерд╛рдкрдирд╛, рдЬрд╕реЗ рдХреА ERP рдХрд┐рдВрд╡рд╛ рд▓реЗрдЦрд╛, рддреНрдпрд╛рдЪреЗ рд╡рд╛рдкрд░рдХрд░реНрддреЗ рдЖрдгрд┐ рд╡реНрдпрд╡рд╕рд╛рдп рдбреЗрдЯрд╛. рд╕рджрд╕реНрдп рд╣реА рдПрдХ рд╕рдВрд╕реНрдерд╛ рдХрд┐рдВрд╡рд╛ рд╡реНрдпрдХреНрддреА рдЖрд╣реЗ рдЬрд┐рдЪреНрдпрд╛ рд╡рддреАрдиреЗ SV рд╕рд░реНрд╡реНрд╣рд░рдордзреНрдпреЗ рдЕрд░реНрдЬ рдиреЛрдВрджрдгреАрдХреГрдд рдЖрд╣реЗ. рдПрдХрд╛ рд╕рджрд╕реНрдпрд╛рдХрдбреЗ рдЕрдиреЗрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдиреЛрдВрджрдгреАрдХреГрдд рдЕрд╕реВ рд╢рдХрддрд╛рдд рдЖрдгрд┐ рд╣реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдПрдХрдореЗрдХрд╛рдВрд╢реА рд╕рдВрджреЗрд╢рд╛рдВрдЪреА рджреЗрд╡рд╛рдгрдШреЗрд╡рд╛рдг рдХрд░реВ рд╢рдХрддрд╛рдд. рдЖрдордЪреНрдпрд╛ рд╕рд┐рд╕реНрдЯрдордордзреНрдпреЗ рдЧреНрд░рд╛рд╣рдХ рднрд╛рдбреЗрдХрд░реВ рдЭрд╛рд▓рд╛. рдЕрдиреЗрдХ рд╕рджрд╕реНрдпрд╛рдВрдЪреЗ рд╕рдВрджреЗрд╢ рдПрдХрд╛ рднреМрддрд┐рдХ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рдЕрд╕реВ рд╢рдХрддрд╛рдд; рдЬрд░ рдЖрдкрдг рдкрд╛рд╣рддреЛ рдХреА рдПрдЦрд╛рджреНрдпрд╛ рдЧреНрд░рд╛рд╣рдХрд╛рдиреЗ рднрд░рдкреВрд░ рд░рд╣рджрд╛рд░реА рдирд┐рд░реНрдорд╛рдг рдХрд░рдгреНрдпрд╛рд╕ рд╕реБрд░реБрд╡рд╛рдд рдХреЗрд▓реА рдЖрд╣реЗ, рддрд░ рдЖрдореНрд╣реА рддреНрдпрд╛рд╕ рд╡реЗрдЧрд│реНрдпрд╛ рднреМрддрд┐рдХ рдбреЗрдЯрд╛рдмреЗрд╕рд╡рд░ (рдХрд┐рдВрд╡рд╛ рд╕реНрд╡рддрдВрддреНрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд░реНрд╡реНрд╣рд░) рд╣рд▓рд╡рддреЛ.

рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдПрдХ рдореБрдЦреНрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдЖрд╣реЗ рдЬрд┐рдереЗ рд╕рд░реНрд╡ рдЧреНрд░рд╛рд╣рдХ рдбреЗрдЯрд╛рдмреЗрд╕рдЪреНрдпрд╛ рд╕реНрдерд╛рдирд╛рдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреАрд╕рд╣ рд░рд╛рдЙрдЯрд┐рдВрдЧ рдЯреЗрдмрд▓ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ.

рдЖрдореНрд╣реА 1C рд╕рд╛рдареА рдЙрдЪреНрдЪ-рд▓реЛрдб рд╕реНрдХреЗрд▓реЗрдмрд▓ рд╕реЗрд╡рд╛ рдХрд╢реА рдЖрдгрд┐ рдХрд╛ рд▓рд┐рд╣рд┐рд▓реА: Enterprise: Java, PostgreSQL, Hazelcast

рдореБрдЦреНрдп рдбреЗрдЯрд╛рдмреЗрд╕рд▓рд╛ рдЕрдбрдерд│реЗ рдпреЗрдгреНрдпрд╛рдкрд╛рд╕реВрди рд░реЛрдЦрдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА рд░рд╛рдЙрдЯрд┐рдВрдЧ рдЯреЗрдмрд▓ (рдЖрдгрд┐ рдЗрддрд░ рд╡рд╛рд░рдВрд╡рд╛рд░ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓рд╛ рдбреЗрдЯрд╛) рдХреЕрд╢реЗрдордзреНрдпреЗ рдареЗрд╡рддреЛ.

рдЬрд░ рд╕рдмрд╕реНрдХреНрд░рд╛рдЗрдмрд░рдЪрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдордВрдж рд╣реЛрдгреНрдпрд╛рд╕ рд╕реБрд░реБрд╡рд╛рдд рдЭрд╛рд▓реА, рддрд░ рдЖрдореНрд╣реА рддреЗ рд╡рд┐рднрд╛рдЬрдирд╛рдВрдордзреНрдпреЗ рдХрдЯ рдХрд░реВ. рдЖрдореНрд╣реА рд╡рд╛рдкрд░рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдЗрддрд░ рдкреНрд░рдХрд▓реНрдкрд╛рдВрд╡рд░ pg_pathman.

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

рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдкреНрд░рддрд┐рдХреГрддреА рд╣рд░рд╡рд▓реНрдпрд╛рд╕, рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░рддрд┐рдХреГрддреА рд╕рдордХрд╛рд▓рд┐рдХ рд╣реЛрддреЗ.
рдореБрдЦреНрдп рдбреЗрдЯрд╛рдмреЗрд╕ рд╣рд░рд╡рд▓реНрдпрд╛рд╕, рд╕рдордХрд╛рд▓рд┐рдХ рдкреНрд░рддрд┐рдХреГрддреА рдореБрдЦреНрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирддреЗ рдЖрдгрд┐ рдЕрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдкреНрд░рддрд┐рдХреГрддреА рд╕рдордХрд╛рд▓рд┐рдХ рдкреНрд░рддрд┐рдХреГрддреА рдмрдирддреЗ.

рд╢реЛрдзрд╛рд╕рд╛рдареА рд▓рд╡рдЪрд┐рдХ рд╢реЛрдзрд╛

рдЗрддрд░ рдЧреЛрд╖реНрдЯреАрдВрдмрд░реЛрдмрд░рдЪ, SV рджреЗрдЦреАрд▓ рдПрдХ рдореЗрд╕реЗрдВрдЬрд░ рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рддреНрдпрд╛рд▓рд╛ рдЕрдЪреВрдХ рдЬреБрд│рдгреА рд╡рд╛рдкрд░реВрди, рдЖрдХрд╛рд░рд╡рд┐рдЬреНрдЮрд╛рди рд▓рдХреНрд╖рд╛рдд рдШреЗрдКрди рдЬрд▓рдж, рд╕реЛрдпреАрд╕реНрдХрд░ рдЖрдгрд┐ рд▓рд╡рдЪрд┐рдХ рд╢реЛрдз рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдЖрдореНрд╣реА рдЪрд╛рдХ рдкреБрдиреНрд╣рд╛ рд╢реЛрдзрдгреНрдпрд╛рдЪрд╛ рдЖрдгрд┐ рд▓рд╛рдпрдмреНрд░рд░реАрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдореБрдХреНрдд рд╢реЛрдз рдЗрдВрдЬрд┐рди Elasticsearch рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреЗ рдард░рд╡рд▓реЗ. рд▓реБрд╕реАрди. рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдиреЛрдбреНрд╕ рдЕрдпрд╢рд╕реНрд╡реА рдЭрд╛рд▓реНрдпрд╛рд╕ рд╕рдорд╕реНрдпрд╛ рджреВрд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдореНрд╣реА рдХреНрд▓рд╕реНрдЯрд░ (рдорд╛рд╕реНрдЯрд░ тАУ рдбреЗрдЯрд╛ тАУ рдбреЗрдЯрд╛) рдордзреНрдпреЗ Elasticsearch рджреЗрдЦреАрд▓ рддреИрдирд╛рдд рдХрд░рддреЛ.

рдЧрд┐рдердм рд╡рд░ рдЖрдореНрд╣рд╛рд▓рд╛ рд╕рд╛рдкрдбрд▓реЗ рд░рд╢рд┐рдпрди рдореЙрд░реНрдлреЛрд▓реЙрдЬреА рдкреНрд▓рдЧрдЗрди Elasticsearch рд╕рд╛рдареА рдЖрдгрд┐ рддреЗ рд╡рд╛рдкрд░рд╛. рдЗрд▓рд╛рд╕реНрдЯрд┐рдХрд╕рд░реНрдЪ рдЗрдВрдбреЗрдХреНрд╕рдордзреНрдпреЗ рдЖрдореНрд╣реА рд╢рдмреНрдж рдореВрд│ (рдЬреЗ рдкреНрд▓рдЧрдЗрди рдард░рд╡рддреЗ) рдЖрдгрд┐ рдПрди-рдЧреНрд░рд╛рдо рд╕рд╛рдард╡рддреЛ. рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рд╢реЛрдзрдгреНрдпрд╛рд╕рд╛рдареА рдордЬрдХреВрд░ рдкреНрд░рд╡рд┐рд╖реНрдЯ рдХрд░рддреЛ рддреЗрд╡реНрд╣рд╛, рдЖрдореНрд╣реА N-grams рдордзреНрдпреЗ рдЯрд╛рдЗрдк рдХреЗрд▓реЗрд▓рд╛ рдордЬрдХреВрд░ рд╢реЛрдзрддреЛ. рдЗрдВрдбреЗрдХреНрд╕рдордзреНрдпреЗ рд╕реЗрд╡реНрд╣ рдХреЗрд▓реНрдпрд╛рд╡рд░, "рдЯреЗрдХреНрд╕реНрдЯ" рд╣рд╛ рд╢рдмреНрдж рдЦрд╛рд▓реАрд▓ рдПрди-рдЧреНрд░реЕрдордордзреНрдпреЗ рд╡рд┐рднрд╛рдЧрд▓рд╛ рдЬрд╛рдИрд▓:

[рддреЗ, tek, tex, рдордЬрдХреВрд░, рдордЬрдХреВрд░, ek, ex, ext, рдордЬрдХреВрд░, ks, kst, ksty, st, sty, you],

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

рдореЛрдареЗ рдЪрд┐рддреНрд░

рдЖрдореНрд╣реА 1C рд╕рд╛рдареА рдЙрдЪреНрдЪ-рд▓реЛрдб рд╕реНрдХреЗрд▓реЗрдмрд▓ рд╕реЗрд╡рд╛ рдХрд╢реА рдЖрдгрд┐ рдХрд╛ рд▓рд┐рд╣рд┐рд▓реА: Enterprise: Java, PostgreSQL, Hazelcast
рд▓реЗрдЦрд╛рдЪреНрдпрд╛ рд╕реБрд░реБрд╡рд╛рддреАрдкрд╛рд╕реВрди рдЪрд┐рддреНрд░рд╛рдЪреА рдкреБрдирд░рд╛рд╡реГрддреНрддреА рдХрд░рд╛, рдкрд░рдВрддреБ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдгрд╛рдВрд╕рд╣:

  • рдЗрдВрдЯрд░рдиреЗрдЯрд╡рд░ рдмреЕрд▓рдиреНрд╕рд░ рдЙрдШрдб; рдЖрдордЪреНрдпрд╛рдХрдбреЗ nginx рдЖрд╣реЗ, рддреЗ рдХреЛрдгрддреЗрд╣реА рдЕрд╕реВ рд╢рдХрддреЗ.
  • Java рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рд╣реЗрдЭреЗрд▓рдХрд╛рд╕реНрдЯ рджреНрд╡рд╛рд░реЗ рдПрдХрдореЗрдХрд╛рдВрд╢реА рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрддрд╛рдд.
  • рд╡реЗрдм рд╕реЙрдХреЗрдЯрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдореНрд╣реА рд╡рд╛рдкрд░рддреЛ рдиреЗрдЯреА.
  • Java рдНрдкреНрд▓рд┐рдХреЗрд╢рди Java 8 рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓реЗ рдЖрд╣реЗ рдЖрдгрд┐ рддреНрдпрд╛рдд рдмрдВрдбрд▓ рдЖрд╣реЗрдд рдУрдПрд╕рдЬреА. рдпреЛрдЬрдирд╛рдВрдордзреНрдпреЗ Java 10 рдордзреНрдпреЗ рд╕реНрдерд▓рд╛рдВрддрд░ рдЖрдгрд┐ рдореЙрдбреНрдпреВрд▓рдордзреНрдпреЗ рд╕рдВрдХреНрд░рдордг рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ.

рд╡рд┐рдХрд╛рд╕ рдЖрдгрд┐ рдЪрд╛рдЪрдгреА

SV рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдЖрдгрд┐ рдЪрд╛рдЪрдгреАрдЪреНрдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпреЗрдд, рдЖрдореНрд╣реА рд╡рд╛рдкрд░рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдЙрддреНрдкрд╛рджрдирд╛рдВрдЪреА рдЕрдиреЗрдХ рдордиреЛрд░рдВрдЬрдХ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдЖрд▓реА.

рд▓реЛрдб рдЪрд╛рдЪрдгреА рдЖрдгрд┐ рдореЗрдорд░реА рд▓реАрдХ

рдкреНрд░рддреНрдпреЗрдХ рдПрд╕рд╡реНрд╣реА рд░рд┐рд▓реАрдЭрдордзреНрдпреЗ рд▓реЛрдб рдЪрд╛рдЪрдгреА рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЕрд╕рддреЗ. рд╣реЗ рдпрд╢рд╕реНрд╡реА рд╣реЛрддреЗ рдЬреЗрд╡реНрд╣рд╛:

  • рдЪрд╛рдЪрдгреАрдиреЗ рдмрд░реЗрдЪ рджрд┐рд╡рд╕ рдХрд╛рдо рдХреЗрд▓реЗ рдЖрдгрд┐ рдХреЛрдгрддреАрд╣реА рд╕реЗрд╡рд╛ рдЕрдкрдпрд╢реА рдард░рд▓реА рдирд╛рд╣реА
  • рдореБрдЦреНрдп рдСрдкрд░реЗрд╢рдиреНрд╕рд╕рд╛рдареА рдкреНрд░рддрд┐рд╕рд╛рдж рд╡реЗрд│ рдЖрд░рд╛рдорджрд╛рдпрдХ рдереНрд░реЗрд╢реЛрд▓реНрдбрдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдирд╛рд╣реА
  • рдорд╛рдЧреАрд▓ рдЖрд╡реГрддреНрддреАрдЪреНрдпрд╛ рддреБрд▓рдиреЗрдд рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдЦрд░рд╛рдм рд╣реЛрдгреЗ 10% рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдирд╛рд╣реА

рдЖрдореНрд╣реА рдЪрд╛рдЪрдгреА рдбреЗрдЯрд╛рдмреЗрд╕ рдбреЗрдЯрд╛рд╕рд╣ рднрд░рддреЛ - рд╣реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА рдЙрддреНрдкрд╛рджрди рд╕рд░реНрд╡реНрд╣рд░рд╡рд░реВрди рд╕рд░реНрд╡рд╛рдд рд╕рдХреНрд░рд┐рдп рд╕рджрд╕реНрдпрд╛рдВрдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЛ, рддреНрдпрд╛рдЪреА рд╕рдВрдЦреНрдпрд╛ 5 рдиреЗ рдЧреБрдгрд╛рдХрд╛рд░ рдХрд░рддреЛ (рд╕рдВрджреЗрд╢рд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛, рдЪрд░реНрдЪрд╛, рд╡рд╛рдкрд░рдХрд░реНрддреЗ) рдЖрдгрд┐ рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ рдЪрд╛рдЪрдгреА рдХрд░рддреЛ.

рдЖрдореНрд╣реА рддреАрди рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдордзреНрдпреЗ рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рдж рдкреНрд░рдгрд╛рд▓реАрдЪреА рд▓реЛрдб рдЪрд╛рдЪрдгреА рдХрд░рддреЛ:

  1. рддрдгрд╛рд╡ рдЪрд╛рдЪрдгреА
  2. рдлрдХреНрдд рдХрдиреЗрдХреНрд╢рди
  3. рд╕рджрд╕реНрдп рдиреЛрдВрджрдгреА

рддрдгрд╛рд╡ рдЪрд╛рдЪрдгреА рджрд░рдореНрдпрд╛рди, рдЖрдореНрд╣реА рдЕрдиреЗрдХ рд╢рдВрднрд░ рдереНрд░реЗрдбреНрд╕ рд▓реЙрдиреНрдЪ рдХрд░рддреЛ рдЖрдгрд┐ рддреЗ рди рдерд╛рдВрдмрддрд╛ рд╕рд┐рд╕реНрдЯрдо рд▓реЛрдб рдХрд░рддрд╛рдд: рд╕рдВрджреЗрд╢ рд▓рд┐рд╣рд┐рдгреЗ, рдЪрд░реНрдЪрд╛ рддрдпрд╛рд░ рдХрд░рдгреЗ, рд╕рдВрджреЗрд╢рд╛рдВрдЪреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреЗ. рдЖрдореНрд╣реА рд╕рд╛рдорд╛рдиреНрдп рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдЪреНрдпрд╛ рдХреНрд░рд┐рдпрд╛рдВрдЪреЗ рдЕрдиреБрдХрд░рдг рдХрд░рддреЛ (рдорд╛рдЭреНрдпрд╛ рди рд╡рд╛рдЪрд▓реЗрд▓реНрдпрд╛ рд╕рдВрджреЗрд╢рд╛рдВрдЪреА рд╕реВрдЪреА рдорд┐рд│рд╡рд╛, рдПрдЦрд╛рджреНрдпрд╛рд▓рд╛ рд▓рд┐рд╣рд╛) рдЖрдгрд┐ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рд╕реЛрд▓реНрдпреВрд╢рдиреНрд╕ (рд╡реЗрдЧрд│реНрдпрд╛ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдЪреЗ рдкреЕрдХреЗрдЬ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рд╛, рдЕреЕрд▓рд░реНрдЯрд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рд╛).

рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рддрдгрд╛рд╡ рдЪрд╛рдЪрдгреАрдЪрд╛ рд╣рд╛ рднрд╛рдЧ рдЕрд╕рд╛ рджрд┐рд╕рддреЛ:

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

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

"рдХреЗрд╡рд│ рдХрдиреЗрдХреНрд╢рди" рдкрд░рд┐рд╕реНрдерд┐рддреА рдПрдХрд╛ рдХрд╛рд░рдгрд╛рд╕рд╛рдареА рджрд┐рд╕реВрди рдЖрд▓реА. рдЕрд╢реА рдкрд░рд┐рд╕реНрдерд┐рддреА рдЖрд╣реЗ: рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдиреА рд╕рд┐рд╕реНрдЯрдо рдХрдиреЗрдХреНрдЯ рдХреЗрд▓реЗ рдЖрд╣реЗ, рдкрд░рдВрддреБ рдЕрджреНрдпрд╛рдк рддреЗ рд╕рд╛рдореАрд▓ рдЭрд╛рд▓реЗрд▓реЗ рдирд╛рд╣реАрдд. рдкреНрд░рддреНрдпреЗрдХ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рд╕рдХрд╛рд│реА 09:00 рд╡рд╛рдЬрддрд╛ рд╕рдВрдЧрдгрдХ рдЪрд╛рд▓реВ рдХрд░рддреЛ, рд╕рд░реНрд╡реНрд╣рд░рд╢реА рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЛ рдЖрдгрд┐ рд╢рд╛рдВрдд рд░рд╛рд╣рддреЛ. рд╣реЗ рд▓реЛрдХ рдзреЛрдХрд╛рджрд╛рдпрдХ рдЖрд╣реЗрдд, рддреНрдпрд╛рдкреИрдХреА рдмрд░реЗрдЪ рдЖрд╣реЗрдд - рддреНрдпрд╛рдВрдЪреНрдпрд╛рдХрдбреЗ рдлрдХреНрдд PING/PONG рд╣реА рдкреЕрдХреЗрдЬреЗрд╕ рдЖрд╣реЗрдд, рдкрд░рдВрддреБ рддреЗ рд╕рд░реНрд╡реНрд╣рд░рд╢реА рдХрдиреЗрдХреНрд╢рди рдареЗрд╡рддрд╛рдд (рддреЗ рддреЗ рдЪрд╛рд▓реВ рдареЗрд╡реВ рд╢рдХрдд рдирд╛рд╣реАрдд - рдирд╡реАрди рд╕рдВрджреЗрд╢ рдЕрд╕рд▓реНрдпрд╛рд╕ рдХрд╛рдп рд╣реЛрдИрд▓). рдЪрд╛рдЪрдгреА рдЕрд╢рд╛ рдкрд░рд┐рд╕реНрдерд┐рддреАрдЪреЗ рдкреБрдирд░реБрддреНрдкрд╛рджрди рдХрд░рддреЗ рдЬреЗрдереЗ рдЕрд╢рд╛ рдореЛрдареНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдиреЗ рд╡рд╛рдкрд░рдХрд░реНрддреЗ рдЕрд░реНрдзреНрдпрд╛ рддрд╛рд╕рд╛рдд рд╕рд┐рд╕реНрдЯрдордордзреНрдпреЗ рд▓реЙрдЧ рдЗрди рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рддрд╛рдд. рд╣реЗ рддрдгрд╛рд╡ рдЪрд╛рдЪрдгреАрд╕рд╛рд░рдЦреЗрдЪ рдЖрд╣реЗ, рдкрд░рдВрддреБ рддреНрдпрд╛рдЪреЗ рд▓рдХреНрд╖ рдпрд╛ рдкрд╣рд┐рд▓реНрдпрд╛ рдЗрдирдкреБрдЯрд╡рд░ рддрдВрддреЛрддрдВрдд рдЖрд╣реЗ - рдЬреЗрдгреЗрдХрд░реВрди рдХреЛрдгрддреЗрд╣реА рдЕрдкрдпрд╢ рдпреЗрдд рдирд╛рд╣реАрдд (рдПрдЦрд╛рджреА рд╡реНрдпрдХреНрддреА рд╕рд┐рд╕реНрдЯрдо рд╡рд╛рдкрд░рдд рдирд╛рд╣реА рдЖрдгрд┐ рддреА рдЖрдзреАрдЪ рдмрдВрдж рдкрдбрддреЗ - рдХрд╛рд╣реАрддрд░реА рд╡рд╛рдИрдЯ рд╡рд┐рдЪрд╛рд░ рдХрд░рдгреЗ рдХрдареАрдг рдЖрд╣реЗ).

рдЧреНрд░рд╛рд╣рдХ рдиреЛрдВрджрдгреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд╣рд┐рд▓реНрдпрд╛ рд▓реЙрдиреНрдЪрдкрд╛рд╕реВрди рд╕реБрд░реВ рд╣реЛрддреЗ. рдЖрдореНрд╣реА рдПрдХ рддрдгрд╛рд╡ рдЪрд╛рдЪрдгреА рдШреЗрддрд▓реА рдЖрдгрд┐ рдкрддреНрд░рд╡реНрдпрд╡рд╣рд╛рд░рд╛рджрд░рдореНрдпрд╛рди рдкреНрд░рдгрд╛рд▓реАрдЪреА рдЧрддреА рдХрдореА рд╣реЛрдгрд╛рд░ рдирд╛рд╣реА рдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рд╣реЛрддреА. рдкрд░рдВрддреБ рд╡рд╛рдкрд░рдХрд░реНрддреЗ рдЖрд▓реЗ рдЖрдгрд┐ рдХрд╛рд▓рдмрд╛рд╣реНрдп рдЭрд╛рд▓реНрдпрд╛рдореБрд│реЗ рдиреЛрдВрджрдгреА рдЕрдпрд╢рд╕реНрд╡реА рд╣реЛрдК рд▓рд╛рдЧрд▓реА. рдиреЛрдВрджрдгреА рдХрд░рддрд╛рдирд╛ рдЖрдореНрд╣реА рд╡рд╛рдкрд░рд▓реЗ / рджреЗрд╡ / рдпрд╛рджреГрдЪреНрдЫрд┐рдХ, рдЬреЗ рд╕рд┐рд╕реНрдЯрдордЪреНрдпрд╛ рдПрдиреНрдЯреНрд░реЙрдкреАрд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдЖрд╣реЗ. рдкреБрд░реЗрд╢реА рдПрдиреНрдЯреНрд░реЙрдкреА рдЬрдорд╛ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рд░реНрд╡реНрд╣рд░рдХрдбреЗ рд╡реЗрд│ рдирд╡реНрд╣рддрд╛ рдЖрдгрд┐ рдЬреЗрд╡реНрд╣рд╛ рдирд╡реАрди SecureRandom рдЪреА рд╡рд┐рдирдВрддреА рдХреЗрд▓реА рдЧреЗрд▓реА рддреЗрд╡реНрд╣рд╛ рддреЗ рджрд╣рд╛ рд╕реЗрдХрдВрджрд╛рдВрд╕рд╛рдареА рдЧреЛрдард▓реЗ. рдпрд╛ рдкрд░рд┐рд╕реНрдерд┐рддреАрддреВрди рдмрд╛рд╣реЗрд░ рдкрдбрдгреНрдпрд╛рдЪреЗ рдЕрдиреЗрдХ рдорд╛рд░реНрдЧ рдЖрд╣реЗрдд, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде: рдХрдореА рд╕реБрд░рдХреНрд╖рд┐рдд /dev/urandom рд╡рд░ рд╕реНрд╡рд┐рдЪ рдХрд░рд╛, рдПрдХ рд╡рд┐рд╢реЗрд╖ рдмреЛрд░реНрдб рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛ рдЬреЛ рдПрдВрдЯреНрд░реЙрдкреА рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЛ, рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдЖрдЧрд╛рдК рддрдпрд╛рд░ рдХрд░рд╛ рдЖрдгрд┐ рддреНрдпрд╛рдВрдирд╛ рдкреВрд▓рдордзреНрдпреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рд╛. рдЖрдореНрд╣реА рдкреВрд▓рдордзреАрд▓ рд╕рдорд╕реНрдпрд╛ рддрд╛рддреНрдкреБрд░рддреА рдмрдВрдж рдХреЗрд▓реА, рдкрд░рдВрддреБ рддреЗрд╡реНрд╣рд╛рдкрд╛рд╕реВрди рдЖрдореНрд╣реА рдирд╡реАрди рд╕рджрд╕реНрдпрд╛рдВрдЪреА рдиреЛрдВрджрдгреА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реНрд╡рддрдВрддреНрд░ рдЪрд╛рдЪрдгреА рдЪрд╛рд▓рд╡рдд рдЖрд╣реЛрдд.

рдЖрдореНрд╣реА рд▓реЛрдб рдЬрдирд░реЗрдЯрд░ рдореНрд╣рдгреВрди рд╡рд╛рдкрд░рддреЛ рдЬреЗрдореАрдЯрд░. рд╡реЗрдмрд╕реЙрдХреЗрдЯрд╕рд╣ рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рд╛рд╡реЗ рд╣реЗ рдорд╛рд╣рд┐рдд рдирд╛рд╣реА; рддреНрдпрд╛рд▓рд╛ рдкреНрд▓рдЧрдЗрди рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. "jmeter websocket" рдХреНрд╡реЗрд░реАрд╕рд╛рдареА рд╢реЛрдз рдкрд░рд┐рдгрд╛рдорд╛рдВрдордзреНрдпреЗ рдкрд╣рд┐рд▓реЗ рдЖрд╣реЗрдд: BlazeMeter рдордзреАрд▓ рд▓реЗрдЦ, рдЬреЗ рд╢рд┐рдлрд╛рд░рд╕ рдХрд░рддрд╛рдд Maciej Zaleski рджреНрд╡рд╛рд░реЗ рдкреНрд▓рдЧрдЗрди.

рддрд┐рдереВрдирдЪ рдЖрдореНрд╣реА рд╕реБрд░реБрд╡рд╛рдд рдХрд░рдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрддрд▓рд╛.

рдЧрдВрднреАрд░ рдЪрд╛рдЪрдгреА рд╕реБрд░реВ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, рдЖрдореНрд╣рд╛рд▓рд╛ рдЖрдврд│рд▓реЗ рдХреА JMeter рдореЗрдорд░реА рд▓реАрдХ рдХрд░реВ рд▓рд╛рдЧрд▓рд╛.

рдкреНрд▓рдЧрдЗрди рд╣реА рдПрдХ рд╡реЗрдЧрд│реА рдореЛрдареА рдХрдерд╛ рдЖрд╣реЗ; 176 рддрд╛рд░реНрдпрд╛рдВрд╕рд╣, рддреНрдпрд╛рдд рдЧрд┐рдердмрд╡рд░ 132 рдХрд╛рдЯреЗ рдЖрд╣реЗрдд. рд▓реЗрдЦрдХрд╛рдиреЗ рд╕реНрд╡рдд: 2015 рдкрд╛рд╕реВрди рддреНрдпрд╛рд╕ рд╡рдЪрдирдмрджреНрдз рдХреЗрд▓реЗ рдирд╛рд╣реА (рдЖрдореНрд╣реА рддреЗ 2015 рдордзреНрдпреЗ рдШреЗрддрд▓реЗ, рдирдВрддрд░ рддреНрдпрд╛рдиреЗ рд╢рдВрдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХреЗрд▓реА рдирд╛рд╣реА), рдореЗрдорд░реА рд▓реАрдХрд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдЕрдиреЗрдХ рдЧрд┐рдердм рд╕рдорд╕реНрдпрд╛, 7 рдЕрдирдХреНрд▓реЛрдЬреНрдб рдкреБрд▓ рд╡рд┐рдирдВрддреНрдпрд╛.
рддреБрдореНрд╣реА рд╣реЗ рдкреНрд▓рдЧрдЗрди рд╡рд╛рдкрд░реВрди рд▓реЛрдб рдЪрд╛рдЪрдгреА рдХрд░рдгреНрдпрд╛рдЪреЗ рдард░рд╡рд┐рд▓реНрдпрд╛рд╕, рдХреГрдкрдпрд╛ рдЦрд╛рд▓реАрд▓ рдЪрд░реНрдЪрд╛рдВрдХрдбреЗ рд▓рдХреНрд╖ рджреНрдпрд╛:

  1. рдорд▓реНрдЯреА-рдереНрд░реЗрдбреЗрдб рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд, рдирд┐рдпрдорд┐рдд рд▓рд┐рдВрдХреНрдбрд▓рд┐рд╕реНрдЯ рд╡рд╛рдкрд░рд▓реА рдЧреЗрд▓реА рдЖрдгрд┐ рддреНрдпрд╛рдЪрд╛ рдкрд░рд┐рдгрд╛рдо рдЭрд╛рд▓рд╛ NPE рд░рдирдЯрд╛рдЗрдо рдордзреНрдпреЗ. рд╣реЗ 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. рдШреЗрддрд▓реЗ рдЖрд╣реЗ Elyran Kogan рдХрд╛рдЯрд╛ (@elyrank) - рддреЗ 1 рдЖрдгрд┐ 3 рд╕рдорд╕реНрдпрд╛рдВрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рддреЗ
  2. рд╕рдорд╕реНрдпрд╛ рд╕реЛрдбрд╡рд▓реА 2
  3. 9.2.14 рддреЗ 9.3.12 рдкрд░реНрдпрдВрдд рдЬреЗрдЯреНрдЯреА рдЕрджреНрдпрддрдирд┐рдд рдХреЗрд▓реА
  4. ThreadLocal рдордзреНрдпреЗ SimpleDateFormat рдЧреБрдВрдбрд╛рд│рд▓реЗ; SimpleDateFormat рдереНрд░реЗрдб-рд╕реЗрдл рдирд╛рд╣реА, рдЬреНрдпрд╛рдореБрд│реЗ рд░рдирдЯрд╛рдЗрдорд╡рд░ NPE рд╣реЛрддреЗ
  5. рджреБрд╕рд░реА рдореЗрдорд░реА рдЧрд│рддреА рдирд┐рд╢реНрдЪрд┐рдд рдХреЗрд▓реА (рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдЭрд╛рд▓реНрдпрд╛рд╡рд░ рдХрдиреЗрдХреНрд╢рди рдЪреБрдХреАрдЪреНрдпрд╛ рдкрджреНрдзрддреАрдиреЗ рдмрдВрдж рдХреЗрд▓реЗ рдЧреЗрд▓реЗ)

рдЖрдгрд┐ рддрд░реАрд╣реА рддреЗ рд╡рд╛рд╣рддреЗ!

рд╕реНрдорд░рдгрд╢рдХреНрддреА рдПрдХрд╛ рджрд┐рд╡рд╕рд╛рдд рдирд╛рд╣реА рддрд░ рджреЛрди рд╡реЗрд│рд╛ рд╕рдВрдкреВ рд▓рд╛рдЧрд▓реА. рддреЗрдереЗ рдЕрдЬрд┐рдмрд╛рдд рд╡реЗрд│ рд╢рд┐рд▓реНрд▓рдХ рдирд╡реНрд╣рддрд╛, рдореНрд╣рдгреВрди рдЖрдореНрд╣реА рдХрдореА рдзрд╛рдЧреЗ рд╕реБрд░реВ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрддрд▓рд╛, рдкрд░рдВрддреБ рдЪрд╛рд░ рдПрдЬрдВрдЯреНрд╕рд╡рд░. рд╣реЗ рдХрд┐рдорд╛рди рдПрдХ рдЖрдард╡рдбрд╛ рдкреБрд░реЗрд╕реЗ рдЕрд╕рд╛рд╡реЗ.

рджреЛрди рджрд┐рд╡рд╕ рдЭрд╛рд▓реЗ...

рдЖрддрд╛ Hazelcast рдореЗрдорд░реА рд╕рдВрдкрдд рдЖрд╣реЗ. рдиреЛрдВрджреАрдВрдиреА рджрд░реНрд╢рд╡рд┐рд▓реЗ рдХреА рдХрд╛рд╣реА рджрд┐рд╡рд╕рд╛рдВрдЪреНрдпрд╛ рдЪрд╛рдЪрдгреАрдирдВрддрд░, рд╣реЗрдЭреЗрд▓рдХрд╛рд╕реНрдЯрдиреЗ рд╕реНрдорд░рдгрд╢рдХреНрддреАрдЪреНрдпрд╛ рдХрдорддрд░рддреЗрдмрджреНрджрд▓ рддрдХреНрд░рд╛рд░ рдХрд░рдгреНрдпрд╛рд╕ рд╕реБрд░рд╡рд╛рдд рдХреЗрд▓реА рдЖрдгрд┐ рдХрд╛рд╣реА рдХрд╛рд│рд╛рдирдВрддрд░ рдХреНрд▓рд╕реНрдЯрд░ рд╡реЗрдЧрд│реЗ рдЭрд╛рд▓реЗ рдЖрдгрд┐ рдиреЛрдбреНрд╕ рдПрдХ рдПрдХ рдХрд░реВрди рдорд░рдд рд░рд╛рд╣рд┐рд▓реЗ. рдЖрдореНрд╣реА JVisualVM рд▓рд╛ рд╣реЗрдЭреЗрд▓рдХрд╛рд╕реНрдЯрд╢реА рдЬреЛрдбрд▓реЗ рдЖрдгрд┐ рдПрдХ "рдЙрдЧрд╡рдгрд╛рд░рд╛ рдХрд░рд╡рдд" рдкрд╛рд╣рд┐рд▓рд╛ - рддреНрдпрд╛рд▓рд╛ рдирд┐рдпрдорд┐рддрдкрдгреЗ GC рдореНрд╣рдЯрд▓реЗ рдЬрд╛рддреЗ, рдкрд░рдВрддреБ рдореЗрдорд░реА рд╕рд╛рдл рдХрд░рддрд╛ рдЖрд▓реА рдирд╛рд╣реА.

рдЖрдореНрд╣реА 1C рд╕рд╛рдареА рдЙрдЪреНрдЪ-рд▓реЛрдб рд╕реНрдХреЗрд▓реЗрдмрд▓ рд╕реЗрд╡рд╛ рдХрд╢реА рдЖрдгрд┐ рдХрд╛ рд▓рд┐рд╣рд┐рд▓реА: Enterprise: Java, PostgreSQL, Hazelcast

рд╣реЗ рдирд┐рд╖реНрдкрдиреНрди рдЭрд╛рд▓реЗ рдХреА hazelcast 3.4 рдордзреНрдпреЗ, рдирдХрд╛рд╢рд╛ / multiMap (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());
}

рдЪрд╛рд░реНрдЯ рд╕реБрдзрд╛рд░рд▓реЗ рдЖрд╣реЗрдд.

рдЖрдореНрд╣реА 1C рд╕рд╛рдареА рдЙрдЪреНрдЪ-рд▓реЛрдб рд╕реНрдХреЗрд▓реЗрдмрд▓ рд╕реЗрд╡рд╛ рдХрд╢реА рдЖрдгрд┐ рдХрд╛ рд▓рд┐рд╣рд┐рд▓реА: Enterprise: Java, PostgreSQL, Hazelcast

рд▓реЛрдб рдЪрд╛рдЪрдгреАрдмрджреНрджрд▓ рдЖрдореНрд╣реА рдЖрдгрдЦреА рдХрд╛рдп рд╢рд┐рдХрд▓реЛ?

  1. JSR223 рдЧреНрд░реВрд╡реАрдордзреНрдпреЗ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рдЪреА рдЖрдгрд┐ рд╕рдВрдХрд▓рди рдХреЕрд╢реЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ - рддреЗ рдЦреВрдк рд╡реЗрдЧрд╡рд╛рди рдЖрд╣реЗ. рджреБрд╡рд╛.
  2. рдЬреЗрдореАрдЯрд░-рдкреНрд▓рдЧрдЗрди рдЖрд▓реЗрдЦ рд╣реЗ рдорд╛рдирдХрд╛рдВрдкреЗрдХреНрд╖рд╛ рд╕рдордЬрдгреНрдпрд╛рд╕ рд╕реЛрдкреЗ рдЖрд╣реЗрдд. рджреБрд╡рд╛.

рд╣реЗрдЭреЗрд▓рдХрд╛рд╕реНрдЯрдЪреНрдпрд╛ рдЖрдордЪреНрдпрд╛ рдЕрдиреБрднрд╡рд╛рдмрджреНрджрд▓

рд╣реЗрдЭреЗрд▓рдХрд╛рд╕реНрдЯ рд╣реЗ рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА рдПрдХ рдирд╡реАрди рдЙрддреНрдкрд╛рджрди рд╣реЛрддреЗ, рдЖрдореНрд╣реА 3.4.1 рдЖрд╡реГрддреНрддреАрдкрд╛рд╕реВрди рддреНрдпрд╛рдЪреНрдпрд╛рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕ рд╕реБрд░реБрд╡рд╛рдд рдХреЗрд▓реА, рдЖрддрд╛ рдЖрдордЪрд╛ рдЙрддреНрдкрд╛рджрди рд╕рд░реНрд╡реНрд╣рд░ рдЖрд╡реГрддреНрддреА 3.9.2 рдЪрд╛рд▓рд╡рдд рдЖрд╣реЗ (рд▓реЗрдЦрдирд╛рдЪреНрдпрд╛ рд╡реЗрд│реА, рд╣реЗрдЭреЗрд▓рдХрд╛рд╕реНрдЯрдЪреА рдирд╡реАрдирддрдо рдЖрд╡реГрддреНрддреА 3.10 рдЖрд╣реЗ).

рдЖрдпрдбреА рдирд┐рд░реНрдорд┐рддреА

рдЖрдореНрд╣реА рдкреВрд░реНрдгрд╛рдВрдХ рдЕрднрд┐рдЬреНрдЮрд╛рдкрдХрд╛рдВрд╕рд╣ рд╕реБрд░реБрд╡рд╛рдд рдХреЗрд▓реА. рдЪрд▓рд╛ рдХрд▓реНрдкрдирд╛ рдХрд░реВрдпрд╛ рдХреА рдирд╡реАрди рдЕрд╕реНрддрд┐рддреНрд╡рд╛рд╕рд╛рдареА рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдЖрдгрдЦреА рдПрдХ рд▓рд╛рдБрдЧ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдбреЗрдЯрд╛рдмреЗрд╕рдордзреАрд▓ рдХреНрд░рдо рдпреЛрдЧреНрдп рдирд╛рд╣реА, рд╕рд╛рд░рдгреНрдпрд╛ рд╢рд╛рд░реНрдбрд┐рдВрдЧрдордзреНрдпреЗ рдЧреБрдВрддрд▓реЗрд▓реА рдЖрд╣реЗрдд - рдЕрд╕реЗ рджрд┐рд╕реВрди рдЖрд▓реЗ рдХреА DB1 рдордзреНрдпреЗ рдПрдХ рд╕рдВрджреЗрд╢ ID=1 рдЖрдгрд┐ DB1 рдордзреНрдпреЗ рдПрдХ рд╕рдВрджреЗрд╢ ID=2 рдЖрд╣реЗ, рддреБрдореНрд╣реА рд╣рд╛ ID Elasticsearch рдордзреНрдпреЗ рдХрд┐рдВрд╡рд╛ Hazelcast рдордзреНрдпреЗ рдареЗрд╡реВ рд╢рдХрдд рдирд╛рд╣реА. , рдкрд░рдВрддреБ рд╕рд░реНрд╡рд╛рдд рд╡рд╛рдИрдЯ рдЧреЛрд╖реНрдЯ рдореНрд╣рдгрдЬреЗ рдЬрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рджреЛрди рдбреЗрдЯрд╛рдмреЗрд╕рдордзреАрд▓ рдбреЗрдЯрд╛ рдПрдХрд╛рдордзреНрдпреЗ рдПрдХрддреНрд░ рдХрд░рд╛рдпрдЪрд╛ рдЕрд╕реЗрд▓ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдпрд╛ рд╕рджрд╕реНрдпрд╛рдВрд╕рд╛рдареА рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдкреБрд░реЗрд╕рд╛ рдЖрд╣реЗ рд╣реЗ рдард░рд╡рдгреЗ). рддреБрдореНрд╣реА Hazelcast рдордзреНрдпреЗ рдЕрдиреЗрдХ AtomicLongs рдЬреЛрдбреВ рд╢рдХрддрд╛ рдЖрдгрд┐ рддреЗрдереЗ рдХрд╛рдЙрдВрдЯрд░ рдареЗрд╡реВ рд╢рдХрддрд╛, рддреНрдпрд╛рдирдВрддрд░ рдирд╡реАрди рдЖрдпрдбреА рдорд┐рд│рд╡рдгреНрдпрд╛рдЪреА рдХрд╛рдордЧрд┐рд░реА рдореНрд╣рдгрдЬреЗ incrementAndGet рддрд╕реЗрдЪ Hazelcast рд▓рд╛ рд╡рд┐рдирдВрддреА рдХрд░рдгреНрдпрд╛рдЪреА рд╡реЗрд│. рдкрд░рдВрддреБ рд╣реЗрдЭреЗрд▓рдХрд╛рд╕реНрдЯрдордзреНрдпреЗ рдХрд╛рд╣реАрддрд░реА рдЕрдзрд┐рдХ рдЗрд╖реНрдЯрддрдо рдЖрд╣реЗ - FlakeIdGenerator. рдкреНрд░рддреНрдпреЗрдХ рдХреНрд▓рд╛рдпрдВрдЯрд╢реА рд╕рдВрдкрд░реНрдХ рд╕рд╛рдзрддрд╛рдирд╛, рддреНрдпрд╛рдВрдирд╛ рдПрдХ рдЖрдпрдбреА рд╢реНрд░реЗрдгреА рджрд┐рд▓реА рдЬрд╛рддреЗ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдкрд╣рд┐рд▓реА - 1 рддреЗ 10 рдкрд░реНрдпрдВрдд, рджреБрд╕рд░реА - 000 рддреЗ 10 рдкрд░реНрдпрдВрдд рдЖрдгрд┐ рдЕрд╕реЗрдЪ. рдЖрддрд╛ рдХреНрд▓рд╛рдпрдВрдЯ рддреНрдпрд╛рд▓рд╛ рдЬрд╛рд░реА рдХреЗрд▓реЗрд▓реА рд╢реНрд░реЗрдгреА рд╕рдВрдкреЗрдкрд░реНрдпрдВрдд рдирд╡реАрди рдЕрднрд┐рдЬреНрдЮрд╛рдкрдХ рд╕реНрд╡рддрдГ рдЬрд╛рд░реА рдХрд░реВ рд╢рдХрддреЛ. рд╣реЗ рддреНрд╡рд░реАрдд рдХрд╛рд░реНрдп рдХрд░рддреЗ, рдкрд░рдВрддреБ рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА рдЕрдиреБрдкреНрд░рдпреЛрдЧ (рдЖрдгрд┐ Hazelcast рдХреНрд▓рд╛рдпрдВрдЯ) рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рдХрд░рддрд╛, рддреЗрд╡реНрд╣рд╛ рдПрдХ рдирд╡реАрди рдХреНрд░рдо рд╕реБрд░реВ рд╣реЛрддреЛ - рдореНрд╣рдгреВрди рд╡рдЧрд│рд▓реЗ рдЬрд╛рддреЗ, рдЗ. рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рд╡рд┐рдХрд╛рд╕рдХрд╛рдВрдирд╛ рдЦрд░реЛрдЦрд░рдЪ ID рдкреВрд░реНрдгрд╛рдВрдХ рдХрд╛ рдЖрд╣реЗрдд рд╣реЗ рд╕рдордЬрдд рдирд╛рд╣реА, рдкрд░рдВрддреБ рддреЗ рдЗрддрдХреЗ рд╡рд┐рд╕рдВрдЧрдд рдЖрд╣реЗрдд. рдЖрдореНрд╣реА рд╕рд░реНрд╡ рдХрд╛рд╣реА рдореЛрдЬрд▓реЗ рдЖрдгрд┐ UUID рд╡рд░ рд╕реНрд╡рд┐рдЪ рдХреЗрд▓реЗ.

рддрд╕реЗ, рдЬреНрдпрд╛рдВрдирд╛ рдЯреНрд╡рд┐рдЯрд░рд╕рд╛рд░рдЦреЗ рд╡реНрд╣рд╛рдпрдЪреЗ рдЖрд╣реЗ рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╕рд╛рдареА рдЕрд╢реА рд╕реНрдиреЛрдХрд╛рд╕реНрдЯ рд▓рд╛рдпрдмреНрд░рд░реА рдЖрд╣реЗ - рд╣реЗ рд╣реЗрдЭреЗрд▓рдХрд╛рд╕реНрдЯрдЪреНрдпрд╛ рд╢реАрд░реНрд╖рд╕реНрдерд╛рдиреА рд╕реНрдиреЛрдлреНрд▓реЗрдХрдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдЖрд╣реЗ. рддреБрдореНрд╣реА рддреЗ рдпреЗрдереЗ рдкрд╛рд╣реВ рд╢рдХрддрд╛:

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

рдкрдг рдЖрдореНрд╣реА рдЖрддрд╛ рддреНрдпрд╛рдЪреНрдпрд╛ рдЬрд╡рд│ рдЧреЗрд▓реЛ рдирд╛рд╣реА.

TransactionalMap.replace

рджреБрд╕рд░реЗ рдЖрд╢реНрдЪрд░реНрдп: 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 рдХрд╕реЗ рдЕрджреНрдпрддрдирд┐рдд рдХрд░рд╛рд╡реЗ? рдиреЛрдб-рдмрд╛рдп-рдиреЛрдб рдЕрдкрдбреЗрдЯ рджрд░рдореНрдпрд╛рди Hazelcast рдирд╡реАрди JAR рдЙрдЪрд▓рдд рдирд╛рд╣реА. рдпрд╛ рдЯрдкреНрдкреНрдпрд╛рд╡рд░ рдЖрдореНрд╣реА рдард░рд╡рд▓реЗ рдХреА рдЖрдореНрд╣реА рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╢реЛрдзрд▓реНрдпрд╛рд╢рд┐рд╡рд╛рдп рдЬрдЧреВ рд╢рдХрддреЛ. рд╢реЗрд╡рдЯреА, рдЖрдкрдг рд╣реЗрдЭреЗрд▓рдХрд╛рд╕реНрдЯрд▓рд╛ рдХреА-рд╡реНрд╣реЕрд▓реНрдпреВ рд╕реНрдЯреЛрдЕрд░ рдореНрд╣рдгреВрди рд╡рд╛рдкрд░рд▓реНрдпрд╛рд╕, рд╕рд░реНрд╡рдХрд╛рд╣реА рдХрд╛рд░реНрдп рдХрд░реЗрд▓? рдЦрд░рдВрдЪ рдирд╛рд╣реА. рдпреЗрдереЗ рдкреБрдиреНрд╣рд╛ IMap рдЖрдгрд┐ TransactionalMap рдЪреЗ рд╡рд░реНрддрди рд╡реЗрдЧрд│реЗ рдЖрд╣реЗ. рдЬреЗрдереЗ IMap рдХрд╛рд│рдЬреА рдХрд░рдд рдирд╛рд╣реА, TransactionalMap рдПрдХ рддреНрд░реБрдЯреА рдЯрд╛рдХрддреЗ.

IMap. рдЖрдореНрд╣реА 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 рдордзреНрдпреЗ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд░рддреЛ рдЖрдгрд┐ Hazelcast рдордзреНрдпреЗ рд╕реЗрд╡реНрд╣ рдХрд░рддреЛ. Hazelcast рд▓рд╛ рдЖрдордЪреНрдпрд╛ рд╡рд░реНрдЧрд╛рдВрдЪреА рд░рдЪрдирд╛ рдорд╛рд╣рд┐рдд рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдирд╛рд╣реА рдЖрдгрд┐ рдЖрдореНрд╣реА рдбрд╛рдЙрдирдЯрд╛рдЗрдорд╢рд┐рд╡рд╛рдп рдЕрдкрдбреЗрдЯ рдХрд░реВ рд╢рдХрддреЛ. рдбреЛрдореЗрди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рдЪреА рдЖрд╡реГрддреНрддреА рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рджреНрд╡рд╛рд░реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХреЗрд▓реА рдЬрд╛рддреЗ. рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдЪреНрдпрд╛ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдЖрд╡реГрддреНрддреНрдпрд╛ рдПрдХрд╛рдЪ рд╡реЗрд│реА рдЪрд╛рд▓реВ рдЕрд╕реВ рд╢рдХрддрд╛рдд рдЖрдгрд┐ рдЬреЗрд╡реНрд╣рд╛ рдирд╡реАрди рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдирд╡реАрди рдлреАрд▓реНрдбрд╕рд╣ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рд▓рд┐рд╣рд┐рддреЛ рддреЗрд╡реНрд╣рд╛ рдкрд░рд┐рд╕реНрдерд┐рддреА рд╢рдХреНрдп рдЖрд╣реЗ, рдкрд░рдВрддреБ рдЬреБрдиреНрдпрд╛рд▓рд╛ рдЕрджреНрдпрд╛рдк рдпрд╛ рдлреАрд▓реНрдбрдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рдирд╛рд╣реА. рдЖрдгрд┐ рддреНрдпрд╛рдЪ рд╡реЗрд│реА, рдирд╡реАрди рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЬреБрдиреНрдпрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рджреНрд╡рд╛рд░реЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓реНрдпрд╛ рд╡рд╕реНрддреВ рд╡рд╛рдЪрддреЛ рдЬреНрдпрд╛рдордзреНрдпреЗ рдирд╡реАрди рдлреАрд▓реНрдб рдирд╛рд╣реАрдд. рдЖрдореНрд╣реА рдНрдкреНрд▓рд┐рдХреЗрд╢рдирдордзреНрдпреЗ рдЕрд╢рд╛ рдкрд░рд┐рд╕реНрдерд┐рддреА рд╣рд╛рддрд╛рд│рддреЛ, рдкрд░рдВрддреБ рд╕рд╛рдзреЗрдкрдгрд╛рд╕рд╛рдареА рдЖрдореНрд╣реА рдлреАрд▓реНрдб рдмрджрд▓рдд рдирд╛рд╣реА рдХрд┐рдВрд╡рд╛ рд╣рдЯрд╡рдд рдирд╛рд╣реА, рдЖрдореНрд╣реА рдлрдХреНрдд рдирд╡реАрди рдлреАрд▓реНрдб рдЬреЛрдбреВрди рд╡рд░реНрдЧ рд╡рд╛рдврд╡рддреЛ.

рдЖрдореНрд╣реА рдЙрдЪреНрдЪ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╢реА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЛ

рд╣реЗрдЭреЗрд▓рдХрд╛рд╕реНрдЯрдЪреНрдпрд╛ рдЪрд╛рд░ рдЯреНрд░рд┐рдк - рдЪрд╛рдВрдЧрд▓реНрдпрд╛, рдбреЗрдЯрд╛рдмреЗрд╕рд╕рд╛рдареА рджреЛрди - рд╡рд╛рдИрдЯ

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

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

рдСрдирд▓рд╛рдЗрди рд╕реЗрд╡рд╛ рдореНрд╣рдгреВрди SV 2017 рдЪреНрдпрд╛ рд╡рд╕рдВрдд рдЛрддреВрдордзреНрдпреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдгреНрдпрд╛рдд рдЖрд▓реА рдЖрдгрд┐ рдПрдХ рд╡реЗрдЧрд│реЗ рдЙрддреНрдкрд╛рджрди рдореНрд╣рдгреВрди, SV рдиреЛрд╡реНрд╣реЗрдВрдмрд░ 2017 рдордзреНрдпреЗ (рддреНрдпрд╛рд╡реЗрд│реА рдмреАрдЯрд╛ рдЖрд╡реГрддреНрддреА рд╕реНрдерд┐рддреАрдд) рд░рд┐рд▓реАрдЬ рдХрд░рдгреНрдпрд╛рдд рдЖрд▓рд╛.

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

SV рд╕рд░реНрд╡реНрд╣рд░ рд╡рд┐рддрд░рдг рдореВрд│ рдкреЕрдХреЗрдЬреЗрд╕рдЪреНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдд рдкреБрд░рд╡рд▓реЗ рдЬрд╛рддреЗ: RPM, DEB, MSI. рддрд╕реЗрдЪ рд╡рд┐рдВрдбреЛрдЬрд╕рд╛рдареА рдЖрдореНрд╣реА рд╕рд┐рдВрдЧрд▓ EXE рдЪреНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдд рдПрдХрдЪ рдЗрдВрд╕реНрдЯреЙрд▓рд░ рдкреНрд░рджрд╛рди рдХрд░рддреЛ рдЬреЛ рд╕рд░реНрд╡реНрд╣рд░, рд╣реЗрдЭреЗрд▓рдХрд╛рд╕реНрдЯ рдЖрдгрд┐ рдЗрд▓рд╛рд╕реНрдЯрд┐рдХрд╕рд░реНрдЪ рдПрдХрд╛ рдорд╢реАрдирд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЛ. рдЖрдореНрд╣реА рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рдирдЪреНрдпрд╛ рдпрд╛ рдЖрд╡реГрддреНрддреАрд▓рд╛ тАЬрдбреЗрдореЛтАЭ рдЖрд╡реГрддреНрддреА рдореНрд╣рдгреВрди рд╕рдВрджрд░реНрднрд┐рдд рдХреЗрд▓реЗ, рдкрд░рдВрддреБ рдЖрддрд╛ рд╣реЗ рд╕реНрдкрд╖реНрдЯ рдЭрд╛рд▓реЗ рдЖрд╣реЗ рдХреА рд╣рд╛ рд╕рд░реНрд╡рд╛рдд рд▓реЛрдХрдкреНрд░рд┐рдп рдЙрдкрдпреЛрдЬрди рдкрд░реНрдпрд╛рдп рдЖрд╣реЗ.

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛