рд╣рд╛рдореАрд▓реЗ рдХрд╕рд░реА рд░ рдХрд┐рди 1C рдХреЛ рд▓рд╛рдЧрд┐ рдЙрдЪреНрдЪ-рд▓реЛрдб рд╕реНрдХреЗрд▓реЗрдмрд▓ рд╕реЗрд╡рд╛ рд▓реЗрдЦреНрдпреМрдВ: рдЗрдиреНрдЯрд░рдкреНрд░рд╛рдЗрдЬ: Java, PostgreSQL, Hazelcast

рдпрд╕ рд▓реЗрдЦрдорд╛ рд╣рд╛рдореА рдХрд╕рд░реА рд░ рдХрд┐рди рд╡рд┐рдХрд╛рд╕ рднрдпреЛ рднрдиреНрдиреЗ рдмрд╛рд░реЗ рдХреБрд░рд╛ рдЧрд░реНрдиреЗрдЫреМрдВ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛ рдкреНрд░рдгрд╛рд▓реА - рдХреНрд▓рд╛рдЗрдиреНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╕рдирд╣рд░реВ рд░ 1C: рдЗрдиреНрдЯрд░рдкреНрд░рд╛рдЗрдЬ рд╕рд░реНрднрд░рд╣рд░реВ рдмреАрдЪ рдЬрд╛рдирдХрд╛рд░реА рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░реНрдиреЗ рдПрдХ рд╕рдВрдпрдиреНрддреНрд░ - рдХрд╛рд░реНрдп рд╕реЗрдЯрд┐рдЩрджреЗрдЦрд┐ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдгрд╣рд░реВ рдорд╛рд░реНрдлрдд рд╕реЛрдЪреНрдиред

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

SV рд╡рд┐рддрд░рд┐рдд рднрдгреНрдбрд╛рд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ рд╣реЗрдЬрд▓рдХрд╛рд╕реНрдЯ рд░ рдЦреЛрдЬ рдЗрдиреНрдЬрд┐рди Elasticsearchред рд╣рд╛рдореА рдЬрд╛рднрд╛рдХреЛ рдмрд╛рд░реЗрдорд╛ рдкрдирд┐ рдХреБрд░рд╛ рдЧрд░реНрдиреЗрдЫреМрдВ рд░ рдХрд╕рд░реА рд╣рд╛рдореА рддреЗрд░реНрд╕реЛ рд░реВрдкрдорд╛ PostgreSQL рдорд╛рдкрди рдЧрд░реНрдЫреМрдВред
рд╣рд╛рдореАрд▓реЗ рдХрд╕рд░реА рд░ рдХрд┐рди 1C рдХреЛ рд▓рд╛рдЧрд┐ рдЙрдЪреНрдЪ-рд▓реЛрдб рд╕реНрдХреЗрд▓реЗрдмрд▓ рд╕реЗрд╡рд╛ рд▓реЗрдЦреНрдпреМрдВ: рдЗрдиреНрдЯрд░рдкреНрд░рд╛рдЗрдЬ: Java, PostgreSQL, Hazelcast

рд╕рдорд╕реНрдпрд╛рдХреЛ рдЧрдарди

рд╣рд╛рдореАрд▓реЗ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛ рдкреНрд░рдгрд╛рд▓реА рдХрд┐рди рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдпреМрдВ рднрдиреНрдиреЗ рдХреБрд░рд╛ рд╕реНрдкрд╖реНрдЯ рдЧрд░реНрди, рдо рддрдкрд╛рдИрдВрд▓рд╛рдИ 1C рдорд╛ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдХреЛ рд╡рд┐рдХрд╛рд╕ рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдЫ рднрдиреНрдиреЗ рдмрд╛рд░реЗ рдереЛрд░реИ рдмрддрд╛рдЙрдБрдЫреБред

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

рдЧреНрд░рд╛рд╣рдХ-рд╕рд░реНрднрд░ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рддрд┐рдорд╛рди

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

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

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

рд╣рд╛рдореАрд▓реЗ рдХрд╕рд░реА рд░ рдХрд┐рди 1C рдХреЛ рд▓рд╛рдЧрд┐ рдЙрдЪреНрдЪ-рд▓реЛрдб рд╕реНрдХреЗрд▓реЗрдмрд▓ рд╕реЗрд╡рд╛ рд▓реЗрдЦреНрдпреМрдВ: рдЗрдиреНрдЯрд░рдкреНрд░рд╛рдЗрдЬ: 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/.

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

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

рдЧреНрд░рд╛рд╣рдХ рд░ рд╕рд░реНрднрд░ рдмреАрдЪрдХреЛ рд╕рдЮреНрдЪрд╛рд░ рд╡реЗрдмрд╕рдХреЗрдЯ рдорд╛рд░реНрдлрдд рд╣реБрдиреНрдЫред рдпреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ-рд╕рдордп рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд░рд╛рдореНрд░реЛрд╕рдБрдЧ рдЙрдкрдпреБрдХреНрдд рдЫред

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

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

рд╣рд╛рдореНрд░реЛ рд▓рд╛рдЧрд┐, Hazelcast рд╣реЛ:

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

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

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

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

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

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

DBMS рдЫрдиреМрдЯ рдЧрд░реНрджреИ

рд╣рд╛рдореАрд╕рдБрдЧ PostgreSQL рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреЗ рд░ рдпрд╕ DBMS рдХреЛ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд╕рдБрдЧ рд╕рд╣рдХрд╛рд░реНрдп рдЧрд░реНрдиреЗ рд╡реНрдпрд╛рдкрдХ рд░ рд╕рдлрд▓ рдЕрдиреБрднрд╡ рдЫред

PostgreSQL рдХреНрд▓рд╕реНрдЯрд░рдХреЛ рд╕рд╛рде рдпреЛ рд╕рдЬрд┐рд▓реЛ рдЫреИрди - рддреНрдпрд╣рд╛рдБ рдЫ XL, XC, рд╕рд┐рдЯрд╕, рддрд░ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдпреА NoSQL рд╣рд░реВ рд╣реЛрдЗрдирдиреН рдЬреБрди рдмрд╛рдХрд╕ рдмрд╛рд╣рд┐рд░ рдорд╛рдкрди рд╣реБрдиреНрдЫред рд╣рд╛рдореАрд▓реЗ NoSQL рд▓рд╛рдИ рдореБрдЦреНрдп рднрдгреНрдбрд╛рд░рдгрдХреЛ рд░реВрдкрдорд╛ рд╡рд┐рдЪрд╛рд░ рдЧрд░реЗрдиреМрдВ; рдпреЛ рдкрд░реНрдпрд╛рдкреНрдд рдерд┐рдпреЛ рдХрд┐ рд╣рд╛рдореАрд▓реЗ Hazelcast рд▓рд┐рдпреМрдВ, рдЬреБрди рд╣рд╛рдореАрд▓реЗ рдкрд╣рд┐рд▓реЗ рдХрд╛рдо рдЧрд░реЗрдХрд╛ рдерд┐рдПрдиреМрдВред

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

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

рддрдкрд╛рдИрдВ рдмрд╣реБ-рднрд╛рдбрд╛рджрд╛рд░ рдмрд╛рд░реЗ рдкрдвреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд╡реЗрдмрд╕рд╛рдЗрдЯрдорд╛ рд╕рд╛рдЗрдЯрд╕ рдбрд╛рдЯрд╛.

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

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

рд╣рд╛рдореАрд▓реЗ рдХрд╕рд░реА рд░ рдХрд┐рди 1C рдХреЛ рд▓рд╛рдЧрд┐ рдЙрдЪреНрдЪ-рд▓реЛрдб рд╕реНрдХреЗрд▓реЗрдмрд▓ рд╕реЗрд╡рд╛ рд▓реЗрдЦреНрдпреМрдВ: рдЗрдиреНрдЯрд░рдкреНрд░рд╛рдЗрдЬ: Java, PostgreSQL, Hazelcast

рдореБрдЦреНрдп рдбрд╛рдЯрд╛рдмреЗрд╕рд▓рд╛рдИ рдЕрдбреНрдЪрди рд╣реБрдирдмрд╛рдЯ рд░реЛрдХреНрдирдХреЛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореА рдХреНрдпрд╛рд╕рдорд╛ рд░реВрдЯрд┐рдЩ рдЯреЗрдмрд▓ (рд░ рдЕрдиреНрдп рдмрд╛рд░рдореНрдмрд╛рд░ рдЖрд╡рд╢реНрдпрдХ рдбрд╛рдЯрд╛) рд░рд╛рдЦреНрдЫреМрдВред

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

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

рдпрджрд┐ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдкреНрд░рддрд┐рдХреГрддрд┐ рд╣рд░рд╛рдПрдХреЛ рдЫ рднрдиреЗ, рдПрд╕рд┐рдиреНрдХреНрд░реЛрдирд╕ рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд╣реБрдиреНрдЫред
рдпрджрд┐ рдореБрдЦреНрдп рдбрд╛рдЯрд╛рдмреЗрд╕ рд╣рд░рд╛рдпреЛ рднрдиреЗ, рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдкреНрд░рддрд┐рдХреГрддрд┐ рдореБрдЦреНрдп рдбрд╛рдЯрд╛рдмреЗрд╕ рдмрдиреНрдЫ, рд░ рдПрд╕рд┐рдиреНрдХреНрд░реЛрдирд╕ рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдкреНрд░рддрд┐рдХреГрддрд┐ рд╣реБрдиреНрдЫред

рдЦреЛрдЬрдХреЛ рд▓рд╛рдЧрд┐ рд▓реЛрдЪрджрд╛рд░ рдЦреЛрдЬ

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

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

[рддреА, рдЯреЗрдХ, рдЯреЗрдХреНрд╕, рдЯреЗрдХреНрд╕реНрдЯ, рдЯреЗрдХреНрд╕реНрдЯ, рдПрдХ, рдПрдХреНрд╕, рдПрдХреНрд╕рдЯ, рдЯреЗрдХреНрд╕реНрдЯ, рдХреЗрдПрд╕, рдХреЗрдПрд╕рдЯреА, рдХреЗрд╕реНрдЯреА, рд╕реНрдЯ, рд╕реНрдЯрд╛рдЗ, рдпреВ],

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

рдареВрд▓реЛ рддрд╕реНрд╡реАрд░

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

  • рдмреНрдпрд╛рд▓реЗрдиреНрд╕рд░ рдЗрдиреНрдЯрд░рдиреЗрдЯрдорд╛ рдЙрдЬрд╛рдЧрд░; рд╣рд╛рдореАрд╕рдБрдЧ nginx рдЫ, рдпреЛ рдХреБрдиреИ рдкрдирд┐ рд╣реБрди рд╕рдХреНрдЫред
  • Java рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ Hazelcast рдорд╛рд░реНрдлрдд рдПрдХ-рдЕрд░реНрдХрд╛рд╕рдБрдЧ рд╕рдЮреНрдЪрд╛рд░ рдЧрд░реНрдЫрдиреНред
  • рд╡реЗрдм рд╕рдХреЗрдЯ рд╕рдВрдЧ рдХрд╛рдо рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рд╣рд╛рдореА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫреМрдВ рдиреЗрдЯреНрдЯреА.
  • Java рдЕрдиреБрдкреНрд░рдпреЛрдЧ Java 8 рдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рдЫ рд░ рдмрдиреНрдбрд▓рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ OSGiред рдпреЛрдЬрдирд╛рд╣рд░реВрдорд╛ рдЬрд╛рднрд╛ 10 рдорд╛ рдорд╛рдЗрдЧреНрд░реЗрд╕рди рд░ рдореЛрдбреНрдпреБрд▓рд╣рд░реВрдорд╛ рд╕рдВрдХреНрд░рдордг рд╕рдорд╛рд╡реЗрд╢ рдЫред

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

SV рдХреЛ рд╡рд┐рдХрд╛рд╕ рд░ рдкрд░реАрдХреНрд╖рдгрдХреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдорд╛, рд╣рд╛рдореАрд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдЙрддреНрдкрд╛рджрдирд╣рд░реВрдХреЛ рдзреЗрд░реИ рд░реЛрдЪрдХ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рднреЗрдЯреНрдпреМрдВред

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

рдкреНрд░рддреНрдпреЗрдХ SV рд░рд┐рд▓реАрдЬрдХреЛ рд░рд┐рд▓реАрдЬрдорд╛ рд▓реЛрдб рдкрд░реАрдХреНрд╖рдг рд╕рдорд╛рд╡реЗрд╢ рдЫред рдпреЛ рд╕рдлрд▓ рд╣реБрдиреНрдЫ рдЬрдм:

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

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

рд╣рд╛рдореА рддреАрди рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирд╣рд░реВрдорд╛ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛ рдкреНрд░рдгрд╛рд▓реАрдХреЛ рд▓реЛрдб рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрдЫреМрдВ:

  1. рддрдирд╛рд╡ рдкрд░реАрдХреНрд╖рдг
  2. рдЬрдбрд╛рдирд╣рд░реВ рдорд╛рддреНрд░
  3. рд╕рджрд╕реНрдп рджрд░реНрддрд╛

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

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

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

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

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

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

рд╣рд╛рдореА рд▓реЛрдб рдЬреЗрдирд░реЗрдЯрд░рдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВ JMeterред рд╡реЗрдмрд╕рдХреЗрдЯрд╕рдБрдЧ рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдиреЗ рдерд╛рд╣рд╛ рдЫреИрди; рдпрд╕рд▓рд╛рдИ рдкреНрд▓рдЧрдЗрди рдЪрд╛рд╣рд┐рдиреНрдЫред рдХреНрд╡реЗрд░реА "jmeter websocket" рдХреЛ рд▓рд╛рдЧрд┐ рдЦреЛрдЬ рдкрд░рд┐рдгрд╛рдорд╣рд░реВрдорд╛ рдкрд╣рд┐рд▓реЛ рд╣реЛ: BlazeMeter рдмрд╛рдЯ рд▓реЗрдЦрд╣рд░реВ, рдЬрд╕рд▓реЗ рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░реНрджрдЫ Maciej Zaleski рджреНрд╡рд╛рд░рд╛ рдкреНрд▓рдЧрдЗрди.

рддреНрдпрд╣реАрдБрдмрд╛рдЯ рд╣рд╛рдореАрд▓реЗ рд╕реБрд░реБ рдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реНрдпреМрдВред

рдЧрдореНрднреАрд░ рдкрд░реАрдХреНрд╖рдг рд╕реБрд░реБ рдЧрд░реЗрдкрдЫрд┐ рд▓рдЧрднрдЧ рддреБрд░реБрдиреНрддреИ, рд╣рд╛рдореАрд▓реЗ рдкрддреНрддрд╛ рд▓рдЧрд╛рдпреМрдВ рдХрд┐ JMeter рд▓реЗ рдореЗрдореЛрд░реА рд▓реАрдХ рдЧрд░реНрди рдерд╛рд▓реНрдпреЛред

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

  1. рдмрд╣реБ-рдереНрд░реЗрдб рдЧрд░рд┐рдПрдХреЛ рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛, рдПрдХ рдирд┐рдпрдорд┐рдд LinkedList рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ, рд░ рдкрд░рд┐рдгрд╛рдо рдерд┐рдпреЛ 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).

рдпреЛ github рдорд╛ рддреА рдордзреНрдпреЗ рдПрдХ рд╣реЛред рд╣рд╛рдореАрд▓реЗ рдХреЗ рдЧрд░реНрдпреМрдВ:

  1. рд▓рд┐рдПрдХрд╛ рдЫрдиреН рдлреЛрд░реНрдХ Elyran рдХреЛрдЧрди (@elyrank) - рдпрд╕рд▓реЗ 1 рд░ 3 рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрджрдЫ
  2. рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди реи
  3. рдЬреЗрдЯреНрдЯреА реп.реи.резрек рджреЗрдЦрд┐ реп.рей.резреи рд╕рдореНрдо рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░рд┐рдпреЛ
  4. ThreadLocal рдорд╛ рд╕рд░рд▓ рдорд┐рддрд┐ рдврд╛рдБрдЪрд╛ рдмреЗрд░рд┐рдПрдХреЛ; SimpleDateFormat рдереНрд░реЗрдб-рд╕реБрд░рдХреНрд╖рд┐рдд рдЫреИрди, рдЬрд╕рд▓реЗ рд░рдирдЯрд╛рдЗрдордорд╛ NPE рд▓рд╛рдИ рдиреЗрддреГрддреНрд╡ рдЧрд░реНрдпреЛ
  5. рдЕрд░реНрдХреЛ рдореЗрдореЛрд░реА рдЪреБрд╣рд╛рд╡рдЯ рдлрд┐рдХреНрд╕ рдЧрд░рд┐рдпреЛ (рд╡рд┐рдЪреНрдЫреЗрдж рд╣реБрдБрджрд╛ рдЬрдбрд╛рди рдЧрд▓рдд рд░реВрдкрдорд╛ рдмрдиреНрдж рднрдпреЛ)

рд░ рдЕрдЭреИ рдпреЛ рдмрдЧреНрдЫ!

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

рджреБрдИ рджрд┐рди рдмрд┐рддрд┐рд╕рдХреНрдпреЛ...

рдЕрдм Hazelcast рдореЗрдореЛрд░реА рд╕рдорд╛рдкреНрдд рд╣реБрдБрджреИрдЫред рд▓рдЧрд╣рд░реВрд▓реЗ рджреЗрдЦрд╛рдПрдХреЛ рдЫ рдХрд┐ рдХреЗрд╣рд┐ рджрд┐рдирдХреЛ рдкрд░реАрдХреНрд╖рдг рдкрдЫрд┐, рд╣реЗрдЬрд▓рдХрд╛рд╕реНрдЯрд▓реЗ рдореЗрдореЛрд░реАрдХреЛ рдХрдореАрдХреЛ рдмрд╛рд░реЗрдорд╛ рдЧреБрдирд╛рд╕реЛ рдЧрд░реНрди рдерд╛рд▓реЗ, рд░ рдХреЗрд╣рд┐ рд╕рдордп рдкрдЫрд┐ рдХреНрд▓рд╕реНрдЯрд░ рдЕрд▓рдЧ рднрдпреЛ, рд░ рдиреЛрдбрд╣рд░реВ рдПрдХ рдПрдХ рдЧрд░реЗрд░ рдорд░реНрди рдЬрд╛рд░реА рд░рд╛рдЦреЗред рд╣рд╛рдореАрд▓реЗ JVisualVM рд▓рд╛рдИ hazelcast рдорд╛ рдЬрдбрд╛рди рдЧрд░реНрдпреМрдВ рд░ "рдмрдвреНрджреЛ рдЖрд░рд╛" рджреЗрдЦреНрдпреМрдВ - рдпрд╕рд▓рд╛рдИ рдирд┐рдпрдорд┐рдд рд░реВрдкрдорд╛ GC рднрдирд┐рдиреНрдЫ, рддрд░ рдореЗрдореЛрд░реА рдЦрд╛рд▓реА рдЧрд░реНрди рд╕рдХреЗрдиред

рд╣рд╛рдореАрд▓реЗ рдХрд╕рд░реА рд░ рдХрд┐рди 1C рдХреЛ рд▓рд╛рдЧрд┐ рдЙрдЪреНрдЪ-рд▓реЛрдб рд╕реНрдХреЗрд▓реЗрдмрд▓ рд╕реЗрд╡рд╛ рд▓реЗрдЦреНрдпреМрдВ: рдЗрдиреНрдЯрд░рдкреНрд░рд╛рдЗрдЬ: 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 рдХреЛ рд▓рд╛рдЧрд┐ рдЙрдЪреНрдЪ-рд▓реЛрдб рд╕реНрдХреЗрд▓реЗрдмрд▓ рд╕реЗрд╡рд╛ рд▓реЗрдЦреНрдпреМрдВ: рдЗрдиреНрдЯрд░рдкреНрд░рд╛рдЗрдЬ: Java, PostgreSQL, Hazelcast

рд╣рд╛рдореАрд▓реЗ рд▓реЛрдб рдкрд░реАрдХреНрд╖рдгрдХреЛ рдмрд╛рд░реЗрдорд╛ рдЕрд░реВ рдХреЗ рд╕рд┐рдХреЗрдХрд╛ рдЫреМрдВ?

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

Hazelcast рд╕рдВрдЧ рд╣рд╛рдореНрд░реЛ рдЕрдиреБрднрд╡ рдХреЛ рдмрд╛рд░реЗ рдорд╛

Hazelcast рд╣рд╛рдореНрд░реЛ рд▓рд╛рдЧрд┐ рдирдпрд╛рдБ рдЙрддреНрдкрд╛рджрди рдерд┐рдпреЛ, рд╣рд╛рдореАрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг 3.4.1 рдмрд╛рдЯ рдпрд╕рдХреЛ рд╕рд╛рде рдХрд╛рдо рдЧрд░реНрди рдерд╛рд▓реНрдпреМрдВ, рдЕрдм рд╣рд╛рдореНрд░реЛ рдЙрддреНрдкрд╛рджрди рд╕рд░реНрднрд░ рд╕рдВрд╕реНрдХрд░рдг 3.9.2 рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдЫ (рд▓реЗрдЦреНрдиреЗ рд╕рдордпрдорд╛, Hazelcast рдХреЛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг 3.10 рд╣реЛ)ред

рдЖрдИрдбреА рдЙрддреНрдкрд╛рджрди

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

рдЦреИрд░, рдЯреНрд╡рд┐рдЯрд░ рдЬрд╕реНрддреИ рдмрдиреНрди рдЪрд╛рд╣рдиреЗрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐, рддреНрдпрд╣рд╛рдБ рдпрд╕реНрддреЛ рд╕реНрдиреЛрдХрд╛рд╕реНрдЯ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЫ - рдпреЛ рд╣реЗрдЬрд▓рдХрд╛рд╕реНрдЯрдХреЛ рд╢реАрд░реНрд╖рдорд╛ рд╕реНрдиреЛрдлреНрд▓реЗрдХрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реЛред рддрдкрд╛рдЗрдБ рдпрд╕рд▓рд╛рдИ рдпрд╣рд╛рдБ рд╣реЗрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ:

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 рдШреБрд╕рд╛рдЙрдиреБрд╣реЛрд╕реН

рдкрд╣рд┐рд▓реЗ, рд╣рд╛рдореАрд▓реЗ Hazelcast рдорд╛ рд╣рд╛рдореНрд░рд╛ рдХрдХреНрд╖рд╛рдХрд╛ рд╡рд╕реНрддреБрд╣рд░реВ рд░реЗрдХрд░реНрдб рдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реНрдпреМрдВред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореАрд╕рдБрдЧ рдПрдЙрдЯрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрдХреНрд╖рд╛ рдЫ, рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рдмрдЪрдд рдЧрд░реНрди рд░ рдкрдвреНрди рдЪрд╛рд╣рдиреНрдЫреМрдВред рдмрдЪрдд рдЧрд░реНрдиреБрд╣реЛрд╕реН:

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 рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдерд╛рд▓реЗред Hazelcast рд▓реЗ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рдорд╛ рдердкреНрди рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдпреЛ, рддрд░ рд╣рд╛рдореНрд░реЛ рдХрдХреНрд╖рд╛рдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреЗрд╣реА рдерд╛рд╣рд╛ рдерд┐рдПрди рд░ рдпреЛ рд╡рд░реНрдЧрд╕рдБрдЧ рдПрдХ 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) рдорд╛ рд╕рдмреИ рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рд▓рдЧрд┐рдЩ рдЕрди рдЧрд░реНрдЫреМрдВ рд░ реиреж рдорд┐рдиреЗрдЯрдХреЛ рд▓рд╛рдЧрд┐ рд▓реЛрдб рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдЙрдБрдЫреМрдВред рд╕рдЩреНрдХрд▓рди рдЧрд░рд┐рдПрдХрд╛ рд▓рдЧрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░, pgFouine рд░ pgBadger рдЬрд╕реНрддрд╛ рдЙрдкрдпреЛрдЧрд┐рддрд╛рд╣рд░реВрд▓реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рд░рд┐рдкреЛрд░реНрдЯрд╣рд░реВ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рд╕рдХреНрдЫрдиреНред рд░рд┐рдкреЛрд░реНрдЯрд╣рд░реВрдорд╛, рд╣рд╛рдореА рдореБрдЦреНрдп рд░реВрдкрдорд╛ рдврд┐рд▓реЛ рд░ рдмрд╛рд░рдореНрдмрд╛рд░ рдкреНрд░рд╢реНрдирд╣рд░реВ рдЦреЛрдЬреНрдЫреМрдВред рдврд┐рд▓реЛ рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореА рдПрдЙрдЯрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдпреЛрдЬрдирд╛ (EXPLAIN) рдмрдирд╛рдЙрдБрдЫреМрдВ рд░ рддреНрдпрд╕реНрддрд╛ рдХреНрд╡реЗрд░реАрд▓рд╛рдИ рдЧрддрд┐ рджрд┐рди рд╕рдХрд┐рдиреНрдЫ рдХрд┐ рднрдиреЗрд░ рдореВрд▓реНрдпрд╛рдЩреНрдХрди рдЧрд░реНрдЫреМрдВред рдЙрд╣реА рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛рдХреЛ рд▓рд╛рдЧрд┐ рдмрд╛рд░рдореНрдмрд╛рд░ рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдХреНрдпрд╛рд╕рдорд╛ рд░рд╛рдореНрд░реЛрд╕рдБрдЧ рдлрд┐рдЯ рд╣реБрдиреНрдЫрдиреНред рд╣рд╛рдореА рдкреНрд░рд╢реНрдирд╣рд░реВ "рдлреНрд▓реИрдЯ" рд░рд╛рдЦреНрди рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдЫреМрдВ, рдкреНрд░рддрд┐ рдХреНрд╡реЗрд░реА рдПрдЙрдЯрд╛ рддрд╛рд▓рд┐рдХрд╛ред

рдЕрдкрд░реЗрд╢рди

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

рд╕рдЮреНрдЪрд╛рд▓рди рднрдПрдХреЛ рдПрдХ рд╡рд░реНрд╖рднрдиреНрджрд╛ рдмрдвреА рдЕрд╡рдзрд┐рдорд╛ рд╕реАрдмреА рдЕрдирд▓рд╛рдЗрди рд╕реЗрд╡рд╛ рд╕рдЮреНрдЪрд╛рд▓рдирдорд╛ рдХреБрдиреИ рдЧрдореНрднреАрд░ рд╕рдорд╕реНрдпрд╛ рдЖрдПрдХреЛ рдЫреИрдиред рд╣рд╛рдореА рдЕрдирд▓рд╛рдЗрди рд╕реЗрд╡рд╛ рдорд╛рд░реНрдлрдд рдирд┐рдЧрд░рд╛рдиреА рдЧрд░реНрдЫреМрдВ Zabbix, рдмрд╛рдЯ рд╕рдВрдХрд▓рди рд░ рддреИрдирд╛рддреА рдмрд╛рдВрд╕.

SV рд╕рд░реНрднрд░ рд╡рд┐рддрд░рдг рдиреЗрдЯрд┐рдн рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВрдХреЛ рд░реВрдкрдорд╛ рдЖрдкреВрд░реНрддрд┐ рдЧрд░рд┐рдиреНрдЫ: RPM, DEB, MSIред рд╕рд╛рдереИ Windows рдХреЛ рд▓рд╛рдЧреА рд╣рд╛рдореА рдПрдХрд▓ EXE рдХреЛ рд░реВрдкрдорд╛ рдПрдХрд▓ рд╕реНрдерд╛рдкрдирд╛рдХрд░реНрддрд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫреМрдВ рдЬрд╕рд▓реЗ рд╕рд░реНрднрд░, Hazelcast рд░ Elasticsearch рд▓рд╛рдИ рдПрдХ рдореЗрд╕рд┐рдирдорд╛ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрджрдЫред рд╣рд╛рдореАрд▓реЗ рдкреНрд░рд╛рд░рдореНрднрдорд╛ рд╕реНрдерд╛рдкрдирд╛рдХреЛ рдпрд╕ рд╕рдВрд╕реНрдХрд░рдгрд▓рд╛рдИ "рдбреЗрдореЛ" рд╕рдВрд╕реНрдХрд░рдгрдХреЛ рд░реВрдкрдорд╛ рдЙрд▓реНрд▓реЗрдЦ рдЧрд░реНрдпреМрдВ, рддрд░ рдЕрдм рдпреЛ рд╕реНрдкрд╖реНрдЯ рднрдПрдХреЛ рдЫ рдХрд┐ рдпреЛ рд╕рдмреИрднрдиреНрджрд╛ рд▓реЛрдХрдкреНрд░рд┐рдп рдбрд┐рдкреНрд▓реЛрдЗрдореЗрдиреНрдЯ рд╡рд┐рдХрд▓реНрдк рд╣реЛред

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

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