เบงเบดเบ—เบตเบเบฒเบ™เปเบฅเบฐเป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบžเบงเบเป€เบฎเบปเบฒเบ‚เบฝเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ‚เบฐเบซเบเบฒเบเป„เบ”เป‰เบชเบนเบ‡เบชเปเบฒเบฅเบฑเบš 1C: Enterprise: Java, PostgreSQL, Hazelcast

เปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบชเบปเบ™เบ—เบฐเบ™เบฒเบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เปเบฅเบฐเป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบžเบงเบเป€เบฎเบปเบฒเบžเบฑเบ”เบ—เบฐเบ™เบฒ เบฅเบฐเบšเบปเบšเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš - เบเบปเบ™เป„เบเบ—เบตเปˆเป‚เบญเบ™เบ‚เปเป‰เบกเบนเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เบฅเบนเบเบ„เป‰เบฒเปเบฅเบฐ 1C: เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบญเบ‡เบงเบดเบชเบฒเบซเบฐเบเบดเบ” - เบˆเบฒเบเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบงเบฝเบเบ‡เบฒเบ™เป„เบ›เบชเบนเปˆเบเบฒเบ™เบ„เบดเบ”เป‚เบ”เบเบœเปˆเบฒเบ™เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเปเบฅเบฐเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”.

เบฅเบฐเบšเบปเบšเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš (เบ•เปเปˆเป„เบ›เบ™เบตเป‰เป€เบญเบตเป‰เบ™เบงเปˆเบฒ SV) เปเบกเปˆเบ™เบฅเบฐเบšเบปเบšเบเบฒเบ™เบชเบปเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเปเบˆเบเบขเบฒเบ, เบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ” เบ”เป‰เบงเบเบเบฒเบ™เบˆเบฑเบ”เบชเบปเปˆเบ‡เบ—เบตเปˆเบฎเบฑเบšเบ›เบฐเบเบฑเบ™. SV เบ–เบทเบเบญเบญเบเปเบšเบšเบกเบฒเป€เบ›เบฑเบ™เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบชเบนเบ‡, เบกเบตเบ—เบฑเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบญเบญเบ™เป„เบฅเบ™เปŒ (เบชเบฐเบซเบ™เบญเบ‡เป‚เบ”เบ 1C) เปเบฅเบฐเป€เบ›เบฑเบ™เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เบ—เบตเปˆเบœเบฐเบฅเบดเบ”เบซเบผเบฒเบเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเป„เบ›เปƒเบŠเป‰เปƒเบ™เบญเบธเบ›เบฐเบเบญเบ™เป€เบŠเบตเบŸเป€เบงเบตเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบญเบ‡.

SV เปƒเบŠเป‰เบšเปˆเบญเบ™เบˆเบฑเบ”เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เปเบšเบšเปเบˆเบเบขเบฒเบ hazelcast เปเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบŠเบญเบเบซเบฒ Elasticsearch. เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เบˆเบฐเป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบš Java เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบ™เบปเบ”เบ‚เบญเบšเป€เบ‚เบ”เบ‚เบญเบ‡ PostgreSQL.
เบงเบดเบ—เบตเบเบฒเบ™เปเบฅเบฐเป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบžเบงเบเป€เบฎเบปเบฒเบ‚เบฝเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ‚เบฐเบซเบเบฒเบเป„เบ”เป‰เบชเบนเบ‡เบชเปเบฒเบฅเบฑเบš 1C: Enterprise: Java, PostgreSQL, Hazelcast

เบเบฒเบ™เบชเป‰เบฒเบ‡เบšเบฑเบ™เบซเบฒ

เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบŠเบฑเบ”เป€เบˆเบ™เบงเปˆเบฒเป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เบฅเบฐเบšเบปเบšเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบˆเบฐเบšเบญเบเบ—เปˆเบฒเบ™เป€เบฅเบฑเบเบ™เป‰เบญเบเบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบธเบฅเบฐเบเบดเบ”เปƒเบ™ 1C.

เป€เบžเบทเปˆเบญเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบ, เป€เบฅเบฑเบเบ™เป‰เบญเบเบเปˆเบฝเบงเบเบฑเบšเบžเบงเบเป€เบฎเบปเบฒเบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบ—เบตเปˆเบเบฑเบ‡เบšเปเปˆเบ—เบฑเบ™เบฎเบนเป‰เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเป€เบฎเบฑเบ”เบซเบเบฑเบ‡ :) เบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เบชเป‰เบฒเบ‡เป€เบงเบ—เบตเป€เบ•เบฑเบเป‚เบ™เป‚เบฅเบขเบต 1C: เบงเบดเบชเบฒเบซเบฐเบเบดเบ”. เปเบžเบฅเบฐเบ•เบฐเบŸเบญเบกเบ›เบฐเบเบญเบšเบกเบตเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ—เบธเบฅเบฐเบเบดเบ”, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเป€เบงเบฅเบฒเปเบฅเปˆเบ™เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ—เบธเบฅเบฐเบเบดเบ”เป€เบฎเบฑเบ”เบงเบฝเบเปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ‚เป‰เบฒเบกเป€เบงเบ—เบต.

เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบฅเบนเบเบ„เป‰เบฒ-เป€เบŠเบตเบšเป€เบงเบต

เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบธเบฅเบฐเบเบดเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™ 1C:เบงเบดเบชเบฒเบซเบฐเบเบดเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เปƒเบ™เบชเบฒเบกเบฅเบฐเบ”เบฑเบš client-server เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ "DBMS - เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ - เบฅเบนเบเบ„เป‰เบฒ". เบฅเบฐเบซเบฑเบ”เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเบ‚เบฝเบ™เปƒเบ™ เบžเบฒเบชเบฒ 1C เปƒเบ™เบ•เบปเบง, เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบซเบผเบทเปƒเบ™เบฅเบนเบเบ„เป‰เบฒ. เบ—เบฑเบ‡เบซเบกเบปเบ”เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบงเบฑเบ”เบ–เบธเบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ (เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต, เป€เบญเบเบฐเบชเบฒเบ™, เปเบฅเบฐเบญเบทเปˆเบ™เป†), เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบญเปˆเบฒเบ™เปเบฅเบฐเบ‚เบฝเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™, เปเบกเปˆเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ. เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ‚เบญเบ‡เปเบšเบšเบŸเบญเบกเปเบฅเบฐเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบ„เปเบฒเบชเบฑเปˆเบ‡เบเบฑเบ‡เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ. เบฅเบนเบเบ„เป‰เบฒเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบฎเบฑเบš, เป€เบ›เบตเบ”เปเบฅเบฐเบชเบฐเปเบ”เบ‡เปเบšเบšเบŸเบญเบก, "เบเบฒเบ™เบชเบทเปˆเบชเบฒเบ™" เบเบฑเบšเบœเบนเป‰เปƒเบŠเป‰ (เบ„เปเบฒเป€เบ•เบทเบญเบ™, เบ„เปเบฒเบ–เบฒเบก ...), เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเปƒเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฒเบ™เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เป„เบง (เบ•เบปเบงเบขเปˆเบฒเบ‡, เบเบฒเบ™เบ„เบนเบ™เบฅเบฒเบ„เบฒเป‚เบ”เบเบ›เบฐเบฅเบดเบกเบฒเบ™), เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเป„เบŸเบฅเปŒเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™, เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบญเบธเบ›เบฐเบเบญเบ™.

เปƒเบ™เบฅเบฐเบซเบฑเบ”เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™, เบชเปˆเบงเบ™เบซเบปเบงเบ‚เบญเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™ เปเบฅเบฐเปœเป‰เบฒเบ—เบตเปˆเบ•เป‰เบญเบ‡เบฅเบฐเบšเบธเบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™เบงเปˆเบฒเบฅเบฐเบซเบฑเบ”เบˆเบฐเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบขเบนเปˆเปƒเบช - เป‚เบ”เบเปƒเบŠเป‰เบ„เปเบฒเบชเบฑเปˆเบ‡ &AtClient / &AtServer (&AtClient / &AtServer เปƒเบ™เบชเบฐเบšเบฑเบšเบžเบฒเบชเบฒเบญเบฑเบ‡เบเบดเบ”เบ‚เบญเบ‡เบžเบฒเบชเบฒ). เบ•เบญเบ™เบ™เบตเป‰เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ 1C เบˆเบฐเปเบเป‰เป„เบ‚เบ‚เป‰เบญเบเป‚เบ”เบเบเปˆเบฒเบงเบงเปˆเบฒเบ„เปเบฒเบชเบฑเปˆเบ‡เปเบกเปˆเบ™เบ•เบปเบงเบˆเบดเบ‡เปเบฅเป‰เบง เบซเบผเบฒเบเบเปˆเบงเบฒ, เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเบžเบงเบเป€เบฎเบปเบฒ, เบกเบฑเบ™เบšเปเปˆเบชเปเบฒเบ„เบฑเบ™เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™.

เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป‚เบ—เบซเบฒเบฅเบฐเบซเบฑเบ”เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบˆเบฒเบเบฅเบฐเบซเบฑเบ”เบฅเบนเบเบ„เป‰เบฒ, เปเบ•เปˆเบ—เปˆเบฒเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เป‚เบ—เบซเบฒเบฅเบฐเบซเบฑเบ”เบฅเบนเบเบ„เป‰เบฒเบˆเบฒเบเบฅเบฐเบซเบฑเบ”เป€เบŠเบตเบŸเป€เบงเบต. เบ™เบตเป‰เปเบกเปˆเบ™เบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เบžเบทเป‰เบ™เบ–เบฒเบ™เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเป€เบฎเบฑเบ”เบชเปเบฒเบฅเบฑเบšเป€เบซเบ”เบœเบปเบ™เบˆเปเบฒเบ™เบงเบ™เบซเบ™เบถเปˆเบ‡. เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, เบเป‰เบญเบ™เบงเปˆเบฒเบฅเบฐเบซเบฑเบ”เป€เบŠเบตเบŸเป€เบงเบตเบ•เป‰เบญเบ‡เบ–เบทเบเบ‚เบฝเบ™เปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเบกเบฑเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบšเบšเบ”เบฝเบงเบเบฑเบ™เบšเปเปˆเบงเปˆเบฒเบกเบฑเบ™เบˆเบฐเบ–เบทเบเป€เบญเบตเป‰เบ™ - เบˆเบฒเบเบฅเบนเบเบ„เป‰เบฒเบซเบผเบทเบˆเบฒเบเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ. เปเบฅเบฐเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบเบฒเบ™เป‚เบ—เบซเบฒเบฅเบฐเบซเบฑเบ”เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบˆเบฒเบเบฅเบฐเบซเบฑเบ”เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบญเบทเปˆเบ™, เบšเปเปˆเบกเบตเบฅเบนเบเบ„เป‰เบฒเป€เบŠเบฑเปˆเบ™เบ™เบฑเป‰เบ™. เปเบฅเบฐเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบซเบฑเบ”เป€เบŠเบตเบŸเป€เบงเบต, เบฅเบนเบเบ„เป‰เบฒเบ—เบตเปˆเป‚เบ—เบซเบฒเบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบ›เบดเบ”, เบญเบญเบเบˆเบฒเบเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™, เปเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบˆเบฐเบšเปเปˆเบกเบตเปƒเบœเป‚เบ—เบซเบฒ.

เบงเบดเบ—เบตเบเบฒเบ™เปเบฅเบฐเป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบžเบงเบเป€เบฎเบปเบฒเบ‚เบฝเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ‚เบฐเบซเบเบฒเบเป„เบ”เป‰เบชเบนเบ‡เบชเปเบฒเบฅเบฑเบš 1C: Enterprise: Java, PostgreSQL, Hazelcast
เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบˆเบฑเบ”เบเบฒเบ™เบเบฒเบ™เบ„เบฅเบดเบเบ›เบธเปˆเบก: เบเบฒเบ™เป‚เบ—เบซเบฒเบ‚เบฑเป‰เบ™เบ•เบญเบ™เป€เบŠเบตเบšเป€เบงเบตเบˆเบฒเบเบฅเบนเบเบ„เป‰เบฒเบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบ, เบเบฒเบ™เป‚เบ—เบซเบฒเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบฅเบนเบเบ„เป‰เบฒเบˆเบฒเบเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบˆเบฐเบšเปเปˆ.

เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเบปเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเบšเบฒเบ‡เบขเปˆเบฒเบ‡เบˆเบฒเบเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเป„เบ›เบซเบฒเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เบฅเบนเบเบ„เป‰เบฒ, เบ•เบปเบงเบขเปˆเบฒเบ‡, เบเบฒเบ™เบชเป‰เบฒเบ‡เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™ "เป„เบฅเบเบฐเบเบฒเบง" เป„เบ”เป‰เบชเบดเป‰เบ™เบชเบธเบ”เบฅเบปเบ‡เปเบฅเบฐเบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบšเบดเปˆเบ‡เป„เบ”เป‰, เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเบกเบตเบงเบดเบ—เบตเบเบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง. เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เปƒเบŠเป‰ tricks, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, เปเบ•เปˆเบฅเบฐเป„เบฅเบเบฐ poll server เบˆเบฒเบเบฅเบฐเบซเบฑเบ”เบฅเบนเบเบ„เป‰เบฒ. เปเบ•เปˆเบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เป‚เบซเบผเบ”เบฅเบฐเบšเบปเบšเบ”เป‰เบงเบเบเบฒเบ™เป‚เบ—เบ—เบตเปˆเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™, เปเบฅเบฐเป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเป‰เบงเป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบšเปเปˆเบชเบฐเบซเบ‡เปˆเบฒเบ‡เบฒเบกเบซเบผเบฒเบ.

เปเบฅเบฐเบเบฑเบ‡เบกเบตเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™, เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบกเบทเปˆเบญเป‚เบ—เบฅเบฐเบชเบฑเบšเบกเบฒเบฎเบญเบ” SIP- เป€เบกเบทเปˆเบญเป‚เบ—เบญเบญเบ, เปƒเบซเป‰เปเบˆเป‰เบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบฅเบนเบเบ„เป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰เป€เบžเบทเปˆเบญเปƒเบซเป‰เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เบซเบกเบฒเบเป€เบฅเบเบ‚เบญเบ‡เบœเบนเป‰เป‚เบ—เป€เบžเบทเปˆเบญเบŠเบญเบเบซเบฒเบกเบฑเบ™เบขเบนเปˆเปƒเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ„เบนเปˆเบฎเปˆเบงเบกเบ‡เบฒเบ™เปเบฅเบฐเบชเบฐเปเบ”เบ‡เบ‚เปเป‰เบกเบนเบ™เบœเบนเป‰เปƒเบŠเป‰เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป‚เบ—เบซเบฒเบ„เบนเปˆเบฎเปˆเบงเบกเบ‡เบฒเบ™. เบซเบผเบท, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบกเบทเปˆเบญเบ„เปเบฒเบชเบฑเปˆเบ‡เบกเบฒเบฎเบญเบ”เบชเบฒเบ‡, เปเบˆเป‰เบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เบฅเบนเบเบ„เป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰. เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›, เบกเบตเบซเบผเบฒเบเบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบเบปเบ™เป„เบเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบˆเบฐเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”.

เบเบฒเบ™เบœเบฐเบฅเบดเบ”เป€เบญเบ‡

เบชเป‰เบฒเบ‡เบเบปเบ™เป„เบเบเบฒเบ™เบชเบปเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบก. เป„เบง, เป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰, เบกเบตเบเบฒเบ™เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบเบฒเบ™เบˆเบฑเบ”เบชเบปเปˆเบ‡, เบกเบตเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบŠเบญเบเบซเบฒเบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบเบทเบ”เบซเบเบธเปˆเบ™. เบญเบตเบ‡โ€‹เบ•เบฒเบกโ€‹เบเบปเบ™โ€‹เป„เบโ€‹, เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ” messenger (เบ‚เปเป‰โ€‹เบ„เบงเบฒเบกโ€‹, เป‚เบ—โ€‹เบงเบดโ€‹เบ”เบตโ€‹เป‚เบญโ€‹) เปเบฅเปˆเบ™โ€‹เบขเบนเปˆโ€‹เปƒเบ™โ€‹เบ„เปเบฒโ€‹เบฎเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบฑเบ 1Cโ€‹.

เบญเบญเบเปเบšเบšเบฅเบฐเบšเบปเบšเป€เบžเบทเปˆเบญเปƒเบซเป‰เบชเบฒเบกเบฒเบ”เบ‚เบฐเบซเบเบฒเบเป„เบ”เป‰เบ•เบฒเบกเปเบ™เบงเบ™เบญเบ™. เบเบฒเบ™เป‚เบซเบผเบ”เบ—เบตเปˆเป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เป‚เบ”เบเบเบฒเบ™เป€เบžเบตเปˆเบกเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡ nodes.

ะ ะตะฐะปะธะทะฐั†ะธั

เบžเบงเบเป€เบฎเบปเบฒเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบ—เบตเปˆเบˆเบฐเบšเปเปˆเบฅเบงเบกเป€เบญเบปเบฒเบžเบฒเบเบชเปˆเบงเบ™เป€เบŠเบตเบŸเป€เบงเบตเบ‚เบญเบ‡ SV เป‚เบ”เบเบเบปเบ‡เป€เบ‚เบปเป‰เบฒเปƒเบ™ 1C: เปเบžเบฅเบฐเบ•เบฐเบŸเบญเบกเบงเบดเบชเบฒเบซเบฐเบเบดเบ”, เปเบ•เปˆเป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบกเบฑเบ™เป€เบ›เบฑเบ™เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ, API เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เป€เบญเบตเป‰เบ™เป„เบ”เป‰เบˆเบฒเบเบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบเบฒเบ™เปเบเป‰เป„เบ‚เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ 1C. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบฎเบฑเบ”เบชเปเบฒเบฅเบฑเบšเป€เบซเบ”เบœเบปเบ™เบˆเปเบฒเบ™เบงเบ™เบซเบ™เบถเปˆเบ‡, เบซเบ™เบถเปˆเบ‡เปƒเบ™เบ™เบฑเป‰เบ™เปเบกเปˆเบ™เบ‚เป‰เบญเบเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เปเบฅเบเบ›เปˆเบฝเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเบฅเบฐเบซเบงเปˆเบฒเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ 1C เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™ (เบ•เบปเบงเบขเปˆเบฒเบ‡, เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบเบฒเบ™เบ„เป‰เบฒเปเบฅเบฐเบเบฒเบ™เบšเบฑเบ™เบŠเบต). เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ 1C เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบขเบนเปˆเปƒเบ™เบฎเบธเปˆเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบ‚เบญเบ‡ 1C: เปเบžเบฅเบฐเบ•เบฐเบŸเบญเบกเบงเบดเบชเบฒเบซเบฐเบเบดเบ”, เบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เปเบฅเบฐเบญเบทเปˆเบ™เป†. เปƒเบ™เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” SV เป€เบ›เบฑเบ™เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเบ—เบตเปˆเบ•เบฑเป‰เบ‡เบขเบนเปˆ "เบ‚เป‰เบฒเบ‡" เบ‚เบญเบ‡เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ 1C เปเบกเปˆเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเป€เบฎเบฑเบ”เปƒเบซเป‰ SV เป€เบ›เบฑเบ™เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ. เบžเบงเบเป€เบฎเบปเบฒเปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เบšเปเบฅเบดเบชเบฑเบ”เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ CB เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™เบ„เบฅเบฒเบงเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ (wss://1cdialog.com) เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเป€เบเบตเบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เปเบฅเบฐเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ. เบฅเบนเบเบ„เป‰เบฒเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบญเบฒเบ”เบˆเบฐเป€เบซเบฑเบ™เบงเปˆเบฒเบกเบฑเบ™เบชเบปเบกเบ„เบงเบ™เบ—เบตเปˆเบˆเบฐเบ•เบดเบ”เบ•เบฑเป‰เบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ CB เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡เบขเบนเปˆเบ—เบตเปˆเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ. เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เปƒเบ™เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™ SaaS เบŸเบฑเบ‡เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ 1c เบชเบปเบ” - เบกเบฑเบ™โ€‹เบ–เบทเบโ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เป€เบ›เบฑเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เบ•เบฐโ€‹เบžเบฑเบ™โ€‹เบ—เบตเปˆโ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบซเบผเบฒเบโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ•เบดเบ”โ€‹เบ•เบฑเป‰เบ‡โ€‹เบขเบนเปˆโ€‹เปƒเบ™โ€‹เป€เบงเบฑเบšโ€‹เป„เบŠโ€‹เบ‚เบญเบ‡โ€‹เบฅเบนเบโ€‹เบ„เป‰เบฒโ€‹, เปเบฅเบฐโ€‹เบเบฑเบ‡โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบŸเบฑเบ‡โ€‹เบ‚เบญเบ‡โ€‹เบžเบงเบโ€‹เป€เบฎเบปเบฒ https://1cfresh.com/.

Application

เป€เบžเบทเปˆเบญเปเบˆเบเบขเบฒเบเบเบฒเบ™เป‚เบซเบผเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบšเปเปˆเบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ Java เบซเบ™เบถเปˆเบ‡, เปเบ•เปˆเบซเบผเบฒเบเป†เบขเปˆเบฒเบ‡, เป‚เบ”เบเบกเบตเบ•เบปเบงเบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เบขเบนเปˆเบ—เบฒเบ‡เบซเบ™เป‰เบฒเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ. เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบ—เปˆเบฒเบ™โ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เป‚เบญเบ™โ€‹เบ‚เปเป‰โ€‹เบ„เบงเบฒเบกโ€‹เบˆเบฒเบ node เบเบฑเบš nodeโ€‹, เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เป€เบœเบตเบโ€‹เปเบœเปˆ / เบชเบฐโ€‹เบซเบกเบฑเบโ€‹เปƒเบ™ Hazelcastโ€‹.

เบเบฒเบ™เบชเบทเปˆเบชเบฒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบฅเบนเบเบ„เป‰เบฒเปเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเปเบกเปˆเบ™เบœเปˆเบฒเบ™ websocket. เบกเบฑเบ™เป€เบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบšเบฅเบฐเบšเบปเบšเป€เบงเบฅเบฒเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡.

เปเบ„เบ”เปเบˆเบเบขเบฒเบ

เบžเบงเบเป€เบฎเบปเบฒเป€เบฅเบทเบญเบเบฅเบฐเบซเบงเปˆเบฒเบ‡ Redis, Hazelcast เปเบฅเบฐ Ehcache. เบกเบฑเบ™เปเบกเปˆเบ™เบ›เบต 2015. Redis เบžเบฝเบ‡เปเบ•เปˆเบ›เปˆเบญเบเบ•เบปเบงเบเบธเปˆเบกเปƒเบซเบกเปˆ (เปƒเบซเบกเปˆเป€เบเบตเบ™เป„เบ›, เบขเป‰เบฒเบ™), เบกเบต Sentinel เบ—เบตเปˆเบกเบตเบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เบซเบผเบฒเบ. Ehcache เบšเปเปˆเบฎเบนเป‰เบงเบดเบ—เบตเบเบฒเบ™เบ›เบฐเบเบญเบšเป€เบ›เบฑเบ™เบเบธเปˆเบก (เบŸเบฑเบ‡เบŠเบฑเบ™เบ™เบตเป‰เบ›เบฒเบเบปเบ”เบ•เปเปˆเบกเบฒ). เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบ—เบปเบ”เบฅเบญเบ‡เปƒเบŠเป‰เบเบฑเบš Hazelcast 3.4.
Hazelcast เปเบกเปˆเบ™เบ›เบฐเบเบญเบšเป€เบ›เบฑเบ™เบเบธเปˆเบกเบญเบญเบเบˆเบฒเบเบเปˆเบญเบ‡. เปƒเบ™เป‚เบซเบกเบ”เป‚เบซเบ™เบ”เบ”เบฝเบง, เบกเบฑเบ™เบšเปเปˆเบกเบตเบ›เบฐเป‚เบซเบเบ”เบซเบผเบฒเบเปเบฅเบฐเบžเบฝเบ‡เปเบ•เปˆเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป€เบ›เบฑเบ™ cache - เบกเบฑเบ™เบšเปเปˆเบฎเบนเป‰เบงเบดเบ—เบตเบเบฒเบ™ dump เบ‚เปเป‰เบกเบนเบ™เปƒเบชเปˆเปเบœเปˆเบ™, เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบชเบนเบ™เป€เบชเบเป‚เบซเบ™เบ”เบ”เบฝเบง, เบ—เปˆเบฒเบ™เบˆเบฐเบชเบนเบ™เป€เบชเบเบ‚เปเป‰เบกเบนเบ™. เบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰ Hazelcasts เบซเบผเบฒเบเบญเบฑเบ™, เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบชเปเบฒเบฎเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™. เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเบชเปเบฒเบฎเบญเบ‡เบ‚เปเป‰เบกเบนเบ™ cache - เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเบชเบปเบ™เปƒเบˆเบกเบฑเบ™.

เบชเปเบฒเบฅเบฑเบšเบžเบงเบเป€เบฎเบปเบฒ, Hazelcast เปเบกเปˆเบ™:

  • เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป€เบŠเบ”เบŠเบฑเบ™เบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰. เบกเบฑเบ™เปƒเบŠเป‰เป€เบงเบฅเบฒเบ”เบปเบ™เบ—เบตเปˆเบˆเบฐเป„เบ›เบซเบฒเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบชเปเบฒเบฅเบฑเบšเบเบญเบ‡เบ›เบฐเบŠเบธเบกเบ—เบธเบเป†เบ„เบฑเป‰เบ‡, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเบˆเบถเปˆเบ‡เป€เบญเบปเบฒเบเบญเบ‡เบ›เบฐเบŠเบธเบกเบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™ Hazelcast.
  • เปเบ„เบ”. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เบŠเบญเบเบซเบฒเป‚เบ›เบฃเป„เบŸเบฅเปŒเบœเบนเป‰เปƒเบŠเป‰, เปƒเบซเป‰เบเบงเบ”เป€เบšเบดเปˆเบ‡ cache. เบ‚เบฝเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเปƒเบซเบกเปˆ - เป€เบญเบปเบฒเปƒเบชเปˆเปƒเบ™ cache.
  • เบซเบปเบงเบ‚เปเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบทเปˆเบชเบฒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ•เบปเบงเบขเปˆเบฒเบ‡. node เบชเป‰เบฒเบ‡เป€เบซเบ”เบเบฒเบ™เปเบฅเบฐเบงเบฒเบ‡เบกเบฑเบ™เป„เบงเป‰เปƒเบ™เบซเบปเบงเบ‚เปเป‰ Hazelcast. เป‚เบ™เบ”เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบญเบทเปˆเบ™เบ—เบตเปˆเบชเบฐเปเบฑเบเปƒเบŠเป‰เบซเบปเบงเบ‚เปเป‰เบ™เบตเป‰เป„เบ”เป‰เบฎเบฑเบš เปเบฅเบฐเบ›เบฐเบกเบงเบ™เบœเบปเบ™เป€เบซเบ”เบเบฒเบ™.
  • locks เบเบธเปˆเบก. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เบเบฒเบ™เบชเบปเบ™เบ—เบฐเบ™เบฒเป‚เบ”เบเปƒเบŠเป‰เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฑเบ (เบเบฒเบ™เบชเบปเบ™เบ—เบฐเบ™เบฒเบ”เบฝเบงเบžเบฒเบเปƒเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™ 1C):

conversationKeyChecker.check("ะ‘ะ•ะะ—ะžะšะžะ›ะžะะšะ");

      doInClusterLock("ะ‘ะ•ะะ—ะžะšะžะ›ะžะะšะ", () -> {

          conversationKeyChecker.check("ะ‘ะ•ะะ—ะžะšะžะ›ะžะะšะ");

          createChannel("ะ‘ะ•ะะ—ะžะšะžะ›ะžะะšะ");
      });

เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบšเปเปˆเบกเบตเบŠเปˆเบญเบ‡เบ—เบฒเบ‡. เบžเบงเบเป€เบฎเบปเบฒเป€เบญเบปเบฒเบฅเบฑเบญเบ, เบเบงเบ”เป€เบšเบดเปˆเบ‡เบกเบฑเบ™เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡, เปเบฅเบฐเบชเป‰เบฒเบ‡เบกเบฑเบ™. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบšเปเปˆเบเบงเบ”เป€เบšเบดเปˆเบ‡เบเบฒเบ™เบฅเบฑเบญเบเบซเบผเบฑเบ‡เบˆเบฒเบเป€เบญเบปเบฒ lock, เบกเบตเป‚เบญเบเบฒเบ”เบ—เบตเปˆเบเบฐเบ—เบนเป‰เบญเบทเปˆเบ™เป„เบ”เป‰เบเบงเบ”เป€เบšเบดเปˆเบ‡เปƒเบ™เป€เบงเบฅเบฒเบ™เบฑเป‰เบ™เปเบฅเบฐเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบˆเบฐเบžเบฐเบเบฒเบเบฒเบกเบชเป‰เบฒเบ‡เบเบฒเบ™เบชเบปเบ™เบ—เบฐเบ™เบฒเบ”เบฝเบงเบเบฑเบ™ - เปเบ•เปˆเบกเบฑเบ™เบกเบตเบขเบนเปˆเปเบฅเป‰เบง. เบ—เปˆเบฒเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบฅเบฑเบญเบเป‚เบ”เบเปƒเบŠเป‰ synchronized เบซเบผเบทเบ›เบปเบเบเบฐเบ•เบด java Lock. เบœเปˆเบฒเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™ - เบกเบฑเบ™เบŠเป‰เบฒ, เปเบฅเบฐเบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบซเบ™เป‰เบฒเป€เบชเบเปƒเบˆเบชเปเบฒเบฅเบฑเบšเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™; เบœเปˆเบฒเบ™ Hazelcast - เบ™เบฑเป‰เบ™เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™.

เบเบฒเบ™เป€เบฅเบทเบญเบ DBMS

เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบ›เบฐเบชเบปเบšเบเบฒเบ™เบขเปˆเบฒเบ‡เบเบงเป‰เบฒเบ‡เบ‚เบงเบฒเบ‡เปเบฅเบฐเบ›เบฐเบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”เปƒเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš PostgreSQL เปเบฅเบฐเบฎเปˆเบงเบกเบกเบทเบเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบ‚เบญเบ‡ DBMS เบ™เบตเป‰.

เบกเบฑเบ™เบšเปเปˆเบ‡เปˆเบฒเบเบเบฑเบšเบเบธเปˆเบก PostgreSQL - เบกเบต XL, XC, เบžเบปเบ™เบฅเบฐเป€เบกเบทเบญเบ‡, เปเบ•เปˆเป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบšเปเปˆเปเบกเปˆเบ™ NoSQLs เบ—เบตเปˆเบ‚เบฐเบซเบ™เบฒเบ”เบญเบญเบเบˆเบฒเบเบเปˆเบญเบ‡. เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเป„เบ”เป‰เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒ NoSQL เป€เบ›เบฑเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ•เบปเป‰เบ™เบ•เป; เบกเบฑเบ™เบžเบฝเบ‡เบžเปเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเป€เบญเบปเบฒ Hazelcast, เป€เบŠเบดเปˆเบ‡เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเป€เบ„เบตเบเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบกเบฒเบเปˆเบญเบ™.

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡, เบ™เบฑเป‰เบ™เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ เบ•เบฑเบ”. เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบฎเบนเป‰, เบ”เป‰เบงเบ sharding เบžเบงเบเป€เบฎเบปเบฒเปเบšเปˆเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบญเบญเบเป€เบ›เบฑเบ™เบชเปˆเบงเบ™เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเป€เบžเบทเปˆเบญเปƒเบซเป‰เปเบ•เปˆเบฅเบฐเบ„เบปเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบˆเบฑเบ”เปƒเบชเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ.

เบชเบฐเบšเบฑเบšเบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡ sharding เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เปเบˆเบเบขเบฒเบเปเบ•เปˆเบฅเบฐเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปƒเบ™เบ—เบปเปˆเบงเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เปƒเบ™เบญเบฑเบ”เบ•เบฒเบชเปˆเบงเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™. เบกเบตเบซเบผเบฒเบเบ‚เปเป‰เบ„เบงเบฒเบกเบขเบนเปˆเปƒเบ™เป€เบŠเบตเบšเป€เบงเบต A - เบเบฐเบฅเบธเบ™เบฒ, เปƒเบซเป‰เบเป‰เบฒเบเบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ™เบตเป‰เป„เบ›เบซเบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ B. เบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบ™เบตเป‰เบžเบฝเบ‡เปเบ•เปˆเบฎเป‰เบญเบ‡เบญเบญเบเบกเบฒเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเปˆเบญเบ™เป„เบงเบญเบฑเบ™เบ„เบงเบ™, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบˆเปเบฒเบเบฑเบ”เบ•เบปเบงเป€เบญเบ‡เบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เบซเบผเบฒเบเบœเบนเป‰เป€เบŠเบปเปˆเบฒ.

เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเบœเบนเป‰เป€เบŠเบปเปˆเบฒเบซเบผเบฒเบ, เบ•เบปเบงเบขเปˆเบฒเบ‡, เบขเบนเปˆเปƒเบ™เป€เบงเบฑเบšเป„เบŠเบ—เปŒ เบ‚เปเป‰เบกเบนเบ™ Citus.

SV เบกเบตเปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปเบฅเบฐเบเบฒเบ™เบˆเบญเบ‡. เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปเบกเปˆเบ™เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบธเบฅเบฐเบเบดเบ”, เป€เบŠเบฑเปˆเบ™ ERP เบซเบผเบทเบšเบฑเบ™เบŠเบต, เบเบฑเบšเบœเบนเป‰เปƒเบŠเป‰เปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบ—เบธเบฅเบฐเบเบดเบ”. เบœเบนเป‰เบชเบฐเปเบฑเบเปƒเบŠเป‰เปเบกเปˆเบ™เบญเบปเบ‡เบเบฒเบ™ เบซเบผเบทเบšเบธเบเบ„เบปเบ™เปƒเบ™เบ™เบฒเบกเบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ—เบตเปˆเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบขเบนเปˆเปƒเบ™เป€เบŠเบตเบšเป€เบงเบต SV. เบœเบนเป‰เบˆเบญเบ‡เบชเบฒเบกเบฒเบ”เบกเบตเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบˆเปเบฒเบ™เบงเบ™เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™, เปเบฅเบฐเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เปเบฅเบเบ›เปˆเบฝเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเป€เบŠเบดเปˆเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™. เบœเบนเป‰เบˆเบญเบ‡เป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เบœเบนเป‰เป€เบŠเบปเปˆเบฒเปƒเบ™เบฅเบฐเบšเบปเบšเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ. เบ‚เปเป‰เบ„เบงเบฒเบกเบˆเบฒเบเบœเบนเป‰เบˆเบญเบ‡เบซเบผเบฒเบเบ„เบปเบ™เบชเบฒเบกเบฒเบ”เบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบฒเบ‡เบ”เป‰เบฒเบ™เบฎเปˆเบฒเบ‡เบเบฒเบเบซเบ™เบถเปˆเบ‡; เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเป€เบซเบฑเบ™เบงเปˆเบฒเบœเบนเป‰เบˆเบญเบ‡เป„เบ”เป‰เป€เบฅเบตเปˆเบกเบชเป‰เบฒเบ‡เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบซเบผเบฒเบ, เบžเบงเบเป€เบฎเบปเบฒเบเป‰เบฒเบเบกเบฑเบ™เป„เบ›เบซเบฒเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบฒเบ‡เบ”เป‰เบฒเบ™เบฎเปˆเบฒเบ‡เบเบฒเบเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ (เบซเบผเบทเปเบกเป‰เบเบฐเบ—เบฑเป‰เบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ).

เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ•เบปเป‰เบ™เบ•เปเบ—เบตเปˆเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เบ”เป‰เบงเบเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ‚เบญเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบœเบนเป‰เบˆเบญเบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”.

เบงเบดเบ—เบตเบเบฒเบ™เปเบฅเบฐเป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบžเบงเบเป€เบฎเบปเบฒเบ‚เบฝเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ‚เบฐเบซเบเบฒเบเป„เบ”เป‰เบชเบนเบ‡เบชเปเบฒเบฅเบฑเบš 1C: Enterprise: Java, PostgreSQL, Hazelcast

เป€เบžเบทเปˆเบญเบ›เป‰เบญเบ‡เบเบฑเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบซเบผเบฑเบเบˆเบฒเบเบเบฒเบ™เป€เบ›เบฑเบ™เบเบฐเบ•เบธเบ, เบžเบงเบเป€เบฎเบปเบฒเบฎเบฑเบเบชเบฒเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡ (เปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เป€เบฅเบทเป‰เบญเบเป†เบญเบทเปˆเบ™เป†) เบขเบนเปˆเปƒเบ™ cache.

เบ–เป‰เบฒเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡เบœเบนเป‰เบˆเบญเบ‡เป€เบฅเบตเปˆเบกเบŠเป‰เบฒเบฅเบปเบ‡, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ•เบฑเบ”เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเปˆเบงเบ™เปเบšเปˆเบ‡เบžเบฒเบเปƒเบ™. เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เบญเบทเปˆเบ™เป†เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰ pg_pathman.

เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เบชเบนเบ™เป€เบชเบเบ‚เปเป‰เบ„เบงเบฒเบกเบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰เปเบกเปˆเบ™เบšเปเปˆเบ”เบต, เบžเบงเบเป€เบฎเบปเบฒเบฎเบฑเบเบชเบฒเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบ”เป‰เบงเบเบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡. เบเบฒเบ™เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบ‚เบญเบ‡ replicas synchronous เปเบฅเบฐ asynchronous เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบ•เบปเบงเบ—เปˆเบฒเบ™เป€เบญเบ‡เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบเบฒเบ™เบชเบนเบ™เป€เบชเบเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ•เบปเป‰เบ™เบ•เป. เบเบฒเบ™โ€‹เบชเบนเบ™โ€‹เป€เบชเบโ€‹เบ‚เปเป‰โ€‹เบ„เบงเบฒเบกโ€‹เบˆเบฐโ€‹เป€เบเบตเบ”โ€‹เบ‚เบถเป‰เบ™โ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบ–เบฒเบ™โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบ•เบปเป‰เบ™โ€‹เบ•เปโ€‹เปเบฅเบฐ replica synchronous เบ‚เบญเบ‡โ€‹เบกเบฑเบ™โ€‹เบฅเบปเป‰เบกโ€‹เป€เบซเบผเบงโ€‹เบžเป‰เบญเบกโ€‹เบเบฑเบ™โ€‹.

เบ–เป‰เบฒเบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡เปเบšเบš synchronous เบชเบนเบ™เป€เบชเบเป„เบ›, เบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡เปเบšเบš asynchronous เบˆเบฐเบเบฒเบเป€เบ›เบฑเบ™ synchronous.
เบ–เป‰เบฒเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ•เบปเป‰เบ™เบ•เปเบ–เบทเบเบชเบนเบ™เป€เบชเบ, เบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡เปเบšเบš synchronous เบเบฒเบเป€เบ›เบฑเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ•เบปเป‰เบ™เบ•เป, เปเบฅเบฐเบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡เปเบšเบš asynchronous เบเบฒเบเป€เบ›เบฑเบ™ replica synchronous.

Elasticsearch เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ„เบปเป‰เบ™เบซเบฒ

เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒ, เปƒเบ™เบšเบฑเบ™เบ”เบฒเบชเบดเปˆเบ‡เบญเบทเปˆเบ™เป†, SV เบเบฑเบ‡เป€เบ›เบฑเบ™เบœเบนเป‰เบชเบปเปˆเบ‡เบ‚เปˆเบฒเบง, เบกเบฑเบ™เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เบ„เบปเป‰เบ™เบซเบฒเบ—เบตเปˆเป„เบง, เบชเบฐเบ”เบงเบเปเบฅเบฐเบกเบตเบ„เบงเบฒเบกเบเบทเบ”เบซเบเบธเปˆเบ™, เป‚เบ”เบเบ„เปเบฒเบ™เบถเบ‡เป€เบ–เบดเบ‡ morphology, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เบˆเบฑเบšเบ„เบนเปˆเบ—เบตเปˆเบšเปเปˆเบŠเบฑเบ”เป€เบˆเบ™. เบžเบงเบเป€เบฎเบปเบฒเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบšเปเปˆ reinvent เบฅเปเป‰เปเบฅเบฐเบ™เปเบฒเปƒเบŠเป‰ Elasticsearch เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบŠเบญเบเบซเบฒเบŸเบฃเบต, เบชเป‰เบฒเบ‡เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” เบฅเบนเบŠเบตเบ™. เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เปƒเบŠเป‰ Elasticsearch เปƒเบ™เบเบธเปˆเบก (เปเบกเปˆเบšเบปเบ” โ€“ เบ‚เปเป‰เบกเบนเบ™ โ€“ เบ‚เปเป‰เบกเบนเบ™) เป€เบžเบทเปˆเบญเบเปเบฒเบˆเบฑเบ”เบšเบฑเบ™เบซเบฒเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบเบฒเบ™เบฅเบปเป‰เบกเป€เบซเบผเบงเบ‚เบญเบ‡ nodes เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ.

เปƒเบ™ github เบžเบงเบเป€เบฎเบปเบฒเบžเบปเบšเป€เบซเบฑเบ™ plugin morphology เบžเบฒเบชเบฒเบฅเบฑเบ”เป€เบŠเบ เบชเปเบฒเบฅเบฑเบš Elasticsearch เปเบฅเบฐเบ™เปเบฒเปƒเบŠเป‰เบกเบฑเบ™. เปƒเบ™เบ”เบฑเบ”เบŠเบฐเบ™เบต Elasticsearch เบžเบงเบเป€เบฎเบปเบฒเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบฎเบฒเบเบ„เปเบฒเบชเบฑเบš (เบ—เบตเปˆ plugin เบเปเบฒเบ™เบปเบ”) เปเบฅเบฐ N-grams. เป€เบกเบทเปˆเบญเบœเบนเป‰เปƒเบŠเป‰เปƒเบชเปˆเบ‚เปเป‰เบ„เบงเบฒเบกเป€เบžเบทเปˆเบญเบ„เบปเป‰เบ™เบซเบฒ, เบžเบงเบเป€เบฎเบปเบฒเบŠเบญเบเบซเบฒเบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบžเบดเบกเปƒเบ™เบšเบฑเบ™เบ”เบฒ N-grams. เป€เบกเบทเปˆเบญเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เปƒเบ™เบ”เบฑเบ”เบŠเบฐเบ™เบต, เบ„เปเบฒเบงเปˆเบฒ "เบ‚เปเป‰เบ„เบงเบฒเบก" เบˆเบฐเบ–เบทเบเปเบšเปˆเบ‡เบญเบญเบเป€เบ›เบฑเบ™ N-grams เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

[เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™, tek, tex, เบ‚เปเป‰เบ„เบงเบฒเบก, เบ‚เปเป‰เบ„เบงเบฒเบก, ek, ex, ext, เบ‚เปเป‰เบ„เบงเบฒเบก, ks, kst, ksty, st, sty, เบ—เปˆเบฒเบ™],

เปเบฅเบฐเบฎเบฒเบเบ‚เบญเบ‡เบ„เปเบฒเบงเปˆเบฒ "เบ‚เปเป‰เบ„เบงเบฒเบก" เบเบฑเบ‡เบˆเบฐเบ–เบทเบเบฎเบฑเบเบชเบฒเป„เบงเป‰. เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ„เบปเป‰เบ™เบซเบฒเปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™, เปƒเบ™เบเบฒเบ‡, เปเบฅเบฐเปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบเบ‚เบญเบ‡เบ„เปเบฒ.

เบžเบฒเบšเปƒเบซเบเปˆ

เบงเบดเบ—เบตเบเบฒเบ™เปเบฅเบฐเป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบžเบงเบเป€เบฎเบปเบฒเบ‚เบฝเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ‚เบฐเบซเบเบฒเบเป„เบ”เป‰เบชเบนเบ‡เบชเปเบฒเบฅเบฑเบš 1C: Enterprise: Java, PostgreSQL, Hazelcast
เป€เบฎเบฑเบ”เบŠเป‰เปเบฒเบฎเบนเบšเปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™เบ‚เบญเบ‡เบšเบปเบ”เบ„เบงเบฒเบก, เปเบ•เปˆเบกเบตเบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบ:

  • Balancer เป€เบ›เบตเบ”เป€เบœเบตเบเปƒเบ™เบญเบดเบ™เป€เบ•เบตเป€เบ™เบฑเบ”; เบžเบงเบเป€เบฎเบปเบฒเบกเบต nginx, เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบญเบฑเบ™เปƒเบ”เบเปเปˆเป„เบ”เป‰.
  • Java application instances เบ•เบดเบ”เบ•เปเปˆเบชเบทเปˆเบชเบฒเบ™เบเบฑเบ™เบœเปˆเบฒเบ™ Hazelcast.
  • เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบŠเบฑเบญเบเป€เบเบฑเบ”เป€เบงเบฑเบšเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰ เบชเบธเบ”เบ—เบด.
  • เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ Java เปเบกเปˆเบ™เบ‚เบฝเบ™เปƒเบ™ Java 8 เปเบฅเบฐเบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบกเบฑเบ” OSGi. เปเบœเบ™เบเบฒเบ™เบ›เบฐเบเบญเบšเบกเบตเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเป„เบ›เบซเบฒ Java 10 เปเบฅเบฐเบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™เป„เบ›เบชเบนเปˆเป‚เบกเบ”เบนเบ™.

เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบฅเบฐเบเบฒเบ™เบ—เบปเบ”เบชเบญเบš

เปƒเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบฅเบฐเบเบฒเบ™เบ—เบปเบ”เบชเบญเบš SV, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบžเบปเบšเป€เบซเบฑเบ™เบซเบผเบฒเบเบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเบ‚เบญเบ‡เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰.

เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เป‚เบซเบผเบ”เปเบฅเบฐเบเบฒเบ™เบฎเบปเปˆเบงเป„เบซเบฅเบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ

เบเบฒเบ™เบ›เปˆเบญเบเปเบ•เปˆเบฅเบฐเบฅเบธเป‰เบ™ SV เบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เป‚เบซเบผเบ”. เบกเบฑเบ™เบ›เบฐเบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”เป€เบกเบทเปˆเบญ:

  • เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเป€เบฎเบฑเบ”เบงเบฝเบเป€เบ›เบฑเบ™เป€เบงเบฅเบฒเบซเบผเบฒเบเบกเบทเป‰เปเบฅเบฐเบšเปเปˆเบกเบตเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบฅเบปเป‰เบกเป€เบซเบฅเบง
  • เป€เบงเบฅเบฒเบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบšเปเปˆเป€เบเบตเบ™เบ‚เบญเบšเป€เบ‚เบ”เบ—เบตเปˆเบชเบฐเบ”เบงเบเบชเบฐเบšเบฒเบ
  • เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบซเบผเบธเบ”โ€‹เบฅเบปเบ‡โ€‹เป€เบกเบทเปˆเบญโ€‹เบ—เบฝเบšโ€‹เปƒเบชเปˆโ€‹เบเบฑเบšโ€‹เบชเบฐโ€‹เบšเบฑเบšโ€‹เบœเปˆเบฒเบ™โ€‹เบกเบฒโ€‹เปเบกเปˆเบ™โ€‹เบšเปเปˆโ€‹เป€เบเบตเบ™ 10โ€‹%

เบžเบงเบเป€เบฎเบปเบฒเบ•เบทเปˆเบกเบ‚เปเป‰เบกเบนเบ™เปƒเบชเปˆเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ”เป‰เบงเบเบ‚เปเป‰เบกเบนเบ™ - เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบœเบนเป‰เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเบกเบตเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ”เบˆเบฒเบเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบเบฒเบ™เบœเบฐเบฅเบดเบ”, เบ„เบนเบ™เบ•เบปเบงเป€เบฅเบเบ‚เบญเบ‡เบกเบฑเบ™เบ”เป‰เบงเบ 5 (เบˆเปเบฒเบ™เบงเบ™เบ‚เปเป‰เบ„เบงเบฒเบก, เบเบฒเบ™เบชเบปเบ™เบ—เบฐเบ™เบฒ, เบœเบนเป‰เปƒเบŠเป‰) เปเบฅเบฐเบ—เบปเบ”เบชเบญเบšเบกเบฑเบ™เบ”เป‰เบงเบเบงเบดเบ—เบตเบ™เบฑเป‰เบ™.

เบžเบงเบเป€เบฎเบปเบฒเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เป‚เบซเบผเบ”เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเปƒเบ™เบชเบฒเบกเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ:

  1. เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ„เบงเบฒเบกเบเบปเบ”เบ”เบฑเบ™
  2. เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™
  3. เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบชเบฐเบกเบฒเบŠเบดเบ

เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ„เบงเบฒเบกเบเบปเบ”เบ”เบฑเบ™, เบžเบงเบเป€เบฎเบปเบฒเป€เบ›เบตเบ”เบ•เบปเบงเบซเบผเบฒเบเบฎเป‰เบญเบเบเบฐเบ—เบนเป‰, เปเบฅเบฐเบžเบงเบเป€เบ‚เบปเบฒเป‚เบซเบฅเบ”เบฅเบฐเบšเบปเบšเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบขเบธเบ”เป€เบŠเบปเบฒ: เบเบฒเบ™เบ‚เบฝเบ™เบ‚เปเป‰เบ„เบงเบฒเบก, เบเบฒเบ™เบชเป‰เบฒเบ‡เบเบฒเบ™เบชเบปเบ™เบ—เบฐเบ™เบฒ, เป„เบ”เป‰เบฎเบฑเบšเบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เบ‚เปเป‰เบ„เบงเบฒเบก. เบžเบงเบเป€เบฎเบปเบฒเบˆเปเบฒเบฅเบญเบ‡เบเบฒเบ™เบเบฐเบ—เปเบฒเบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰เบ—เบปเปˆเบงเป„เบ› (เป€เบญเบปเบฒเบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบเบฑเบ‡เบšเปเปˆเป„เบ”เป‰เบญเปˆเบฒเบ™เบ‚เบญเบ‡เบ‚เป‰เบญเบ, เบ‚เบฝเบ™เบซเบฒเปƒเบœเบœเบนเป‰เบซเบ™เบถเปˆเบ‡) เปเบฅเบฐเบเบฒเบ™เปเบเป‰เป„เบ‚เบŠเบญเบšเปเบง (เบชเบปเปˆเบ‡เบŠเบธเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เปเบˆเป‰เบ‡เป€เบ•เบทเบญเบ™).

เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ™เบตเป‰เปเบกเปˆเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ„เบงเบฒเบกเบเบปเบ”เบ”เบฑเบ™เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒ:

  • เบœเบนเป‰เปƒเบŠเป‰เป€เบ‚เบปเป‰เบฒเบชเบนเปˆเบฅเบฐเบšเบปเบš
    • เบฎเป‰เบญเบ‡เบ‚เปเบเบฒเบ™เบชเบปเบ™เบ—เบฐเบ™เบฒเบ—เบตเปˆเบเบฑเบ‡เบšเปเปˆเป„เบ”เป‰เบญเปˆเบฒเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™
    • 50% เปเบ™เบงเป‚เบ™เป‰เบกเบ—เบตเปˆเบˆเบฐเบญเปˆเบฒเบ™เบ‚เปเป‰เบ„เบงเบฒเบก
    • 50% เปเบ™เบงเป‚เบ™เป‰เบกเบ—เบตเปˆเบˆเบฐเบชเบปเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบก
    • เบœเบนเป‰เปƒเบŠเป‰เบ•เปเปˆเป„เบ›:
      • เบกเบตเป‚เบญเบเบฒเบ” 20% เปƒเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เบเบฒเบ™เบชเบปเบ™เบ—เบฐเบ™เบฒเปƒเบซเบกเปˆ
      • เบชเบธเปˆเบกเป€เบฅเบทเบญเบเบเบฒเบ™เบชเบปเบ™เบ—เบฐเบ™เบฒเปƒเบ”เป†เบ‚เบญเบ‡เบกเบฑเบ™
      • เป€เบ‚เบปเป‰เบฒเป„เบ›เบžเบฒเบเปƒเบ™
      • เบฎเป‰เบญเบ‡เบ‚เปเบ‚เปเป‰เบ„เบงเบฒเบก, เป‚เบ›เบฃเป„เบŸเบฅเปŒเบœเบนเป‰เปƒเบŠเป‰
      • เบชเป‰เบฒเบ‡เบซเป‰เบฒเบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบชเบปเปˆเบ‡เบเบฑเบšเบœเบนเป‰เปƒเบŠเป‰เปเบšเบšเบชเบธเปˆเบกเบˆเบฒเบเบเบฒเบ™เบชเบปเบ™เบ—เบฐเบ™เบฒเบ™เบตเป‰
      • เบญเบญเบเบˆเบฒเบเบเบฒเบ™เบชเบปเบ™เบ—เบฐเบ™เบฒ
      • เป€เบฎเบฑเบ”เบŠเป‰เบณ 20 เป€เบ—เบทเปˆเบญ
      • เบญเบญเบเบˆเบฒเบเบฅเบฐเบšเบปเบš, เบเบฑเบšเป„เบ›เบ—เบตเปˆเบˆเบธเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบชเบฐเบ„เบฃเบดเบš

    • chatbot เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบฅเบฐเบšเบปเบš (emulates เบ‚เปเป‰เบ„เบงเบฒเบกเบˆเบฒเบเบฅเบฐเบซเบฑเบ”เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ)
      • เบกเบตเป‚เบญเบเบฒเบ” 50% เปƒเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เบŠเปˆเบญเบ‡เบ—เบฒเบ‡เปƒเบซเบกเปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบฅเบเบ›เปˆเบฝเบ™เบ‚เปเป‰เบกเบนเบ™ (เบเบฒเบ™เบชเบปเบ™เบ—เบฐเบ™เบฒเบžเบดเป€เบชเบ”)
      • 50% เบกเบตเปเบ™เบงเป‚เบ™เป‰เบกเบ—เบตเปˆเบˆเบฐเบ‚เบฝเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเป„เบ›เบซเบฒเบŠเปˆเบญเบ‡เบ—เบฒเบ‡เปƒเบ”เป†เบ—เบตเปˆเบกเบตเบขเบนเปˆ

เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™ "เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™" เบ›เบฒเบเบปเบ”เบ‚เบถเป‰เบ™เบ”เป‰เบงเบเป€เบซเบ”เบœเบปเบ™. เบกเบตเบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™: เบœเบนเป‰เปƒเบŠเป‰เป„เบ”เป‰เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบฅเบฐเบšเบปเบš, เปเบ•เปˆเบเบฑเบ‡เบšเปเปˆเบ—เบฑเบ™เป„เบ”เป‰เบกเบตเบชเปˆเบงเบ™เบฎเปˆเบงเบก. เบœเบนเป‰เปƒเบŠเป‰เปเบ•เปˆเบฅเบฐเบ„เบปเบ™เป€เบ›เบตเบ”เบ„เบญเบกเบžเบดเบงเป€เบ•เบตเปƒเบ™เป€เบงเบฅเบฒ 09:00 เบ•เบญเบ™เป€เบŠเบปเป‰เบฒ, เบชเป‰เบฒเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเปเบฅเบฐเบเบฑเบ‡เบ‡เบฝเบš. เบ„เบปเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป€เบ›เบฑเบ™เบญเบฑเบ™เบ•เบฐเบฅเบฒเบ, เบกเบตเบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ - เบŠเบธเบ”เบ”เบฝเบงเบ—เบตเปˆเบžเบงเบเป€เบ‚เบปเบฒเบกเบตเปเบกเปˆเบ™ PING / PONG, เปเบ•เปˆเบžเบงเบเป€เบ‚เบปเบฒเบฎเบฑเบเบชเบฒเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ (เบžเบงเบเป€เบ‚เบปเบฒเบšเปเปˆเบชเบฒเบกเบฒเบ”เบฎเบฑเบเบชเบฒเบกเบฑเบ™เป„เบ”เป‰ - เบˆเบฐเป€เบ›เบฑเบ™เปเบ™เบงเปƒเบ”เบ–เป‰เบฒเบกเบตเบ‚เปเป‰เบ„เบงเบฒเบกเปƒเบซเบกเปˆ). เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš reproduces เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ—เบตเปˆเบˆเปเบฒเบ™เบงเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบžเบฐเบเบฒเบเบฒเบกเป€เบ‚เบปเป‰เบฒเบชเบนเปˆเบฅเบฐเบšเบปเบšเปƒเบ™เป€เบ„เบดเปˆเบ‡เบŠเบปเปˆเบงเป‚เบกเบ‡. เบกเบฑเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ„เบงเบฒเบกเบเบปเบ”เบ”เบฑเบ™, เปเบ•เปˆเบˆเบธเบ”เบชเบธเบกเบ‚เบญเบ‡เบกเบฑเบ™เปเบกเปˆเบ™เบŠเบฑเบ”เป€เบˆเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เปเบฒเบญเบดเบ”เบ™เบตเป‰ - เป€เบžเบทเปˆเบญเบšเปเปˆเปƒเบซเป‰เบกเบตเบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบฅเบง (เบšเบธเบเบ„เบปเบ™เปƒเบ”เบซเบ™เบถเปˆเบ‡เบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰เบฅเบฐเบšเบปเบš, เปเบฅเบฐเบกเบฑเบ™เบซเบผเบธเบ”เบฅเบปเบ‡เปเบฅเป‰เบง - เบกเบฑเบ™เป€เบ›เบฑเบ™เบเบฒเบ™เบเบฒเบเบ—เบตเปˆเบˆเบฐเบ„เบดเบ”เป€เบ–เบดเบ‡เบชเบดเปˆเบ‡เบ—เบตเปˆเบฎเป‰เบฒเบเปเบฎเบ‡เบเบงเปˆเบฒเป€เบเบปเปˆเบฒ).

script เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบœเบนเป‰เบชเบฐเบซเบกเบฑเบเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบˆเบฒเบเบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบงเบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”. เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ„เบงเบฒเบกเบเบปเบ”เบ”เบฑเบ™เปเบฅเบฐเปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบฅเบฐเบšเบปเบšเบšเปเปˆเบŠเป‰เบฒเบฅเบปเบ‡เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ•เบดเบ”เบ•เปเปˆ. เปเบ•เปˆเบœเบนเป‰เปƒเบŠเป‰เบกเบฒเปเบฅเบฐเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบฅเบปเป‰เบกเป€เบซเบฅเบงเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบซเบกเบปเบ”เป€เบงเบฅเบฒ. เป€เบกเบทเปˆเบญเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰ / dev / เบชเบธเปˆเบก, เป€เบŠเบดเปˆเบ‡เบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบš entropy เบ‚เบญเบ‡เบฅเบฐเบšเบปเบš. เป€เบŠเบตเบšเป€เบงเบตเบšเปเปˆเบกเบตเป€เบงเบฅเบฒเบ—เบตเปˆเบˆเบฐเบชเบฐเบชเบปเบก entropy เบžเบฝเบ‡เบžเปเปเบฅเบฐเป€เบกเบทเปˆเบญเบกเบตเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป SecureRandom เปƒเบซเบกเปˆ, เบกเบฑเบ™ froze เบชเปเบฒเบฅเบฑเบšเบชเบดเบšเบงเบดเบ™เบฒเบ—เบต. เบกเบตเบซเบผเบฒเบเบงเบดเบ—เบตเบญเบญเบเบˆเบฒเบเบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ™เบตเป‰, เบ•เบปเบงเบขเปˆเบฒเบ‡: เบ›เปˆเบฝเบ™เป„เบ›เบซเบฒ /dev/urandom เบ—เบตเปˆเบ›เบญเบ”เป„เบžเบซเบ™เป‰เบญเบ, เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบเบฐเบ”เบฒเบ™เบžเบดเป€เบชเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡ entropy, เบชเป‰เบฒเบ‡เบ•เบปเบงเป€เบฅเบเปเบšเบšเบชเบธเปˆเบกเบฅเปˆเบงเบ‡เบซเบ™เป‰เบฒเปเบฅเบฐเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป„เบงเป‰เปƒเบ™เบชเบฐเบ™เบธเบเป€เบเบต. เบžเบงเบเป€เบฎเบปเบฒเบ›เบดเบ”เบŠเบปเปˆเบงเบ„เบฒเบงเบšเบฑเบ™เบซเบฒเบเบฑเบšเบชเบฐเบ™เบธเบเป€เบเบต, เปเบ•เปˆเบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบ™เบฑเป‰เบ™เบกเบฒเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบœเบนเป‰เบชเบฐเบซเบกเบฑเบเปƒเบซเบกเปˆ.

เบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰เป€เบ›เบฑเบ™เป€เบ„เบทเปˆเบญเบ‡เบเปเบฒเป€เบ™เบตเบ”เบเบฒเบ™เป‚เบซเบผเบ” JMeter. เบกเบฑเบ™เบšเปเปˆเบฎเบนเป‰เบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš websocket; เบกเบฑเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™ plugin. เบ—เปเบฒเบญเบดเบ”เปƒเบ™เบœเบปเบ™เบเบฒเบ™เบ„เบปเป‰เบ™เบซเบฒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบญเบšเบ–เบฒเบก "jmeter websocket" เปเบกเปˆเบ™: เบšเบปเบ”เบ„เบงเบฒเบกเบˆเบฒเบ BlazeMeter, เบ—เบตเปˆเปเบ™เบฐเบ™เปเบฒ plugin เป‚เบ”เบ Maciej Zaleski.

เบ™เบฑเป‰เบ™เปเบกเปˆเบ™เบšเปˆเบญเบ™เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

เป€เบเบทเบญเบšเบ—เบฑเบ™เบ—เบตเบซเบผเบฑเบ‡เบˆเบฒเบเป€เบฅเบตเปˆเบกเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบขเปˆเบฒเบ‡เบˆเบดเบ‡เบˆเบฑเบ‡, เบžเบงเบเป€เบฎเบปเบฒเบ„เบปเป‰เบ™เบžเบปเบšเบงเปˆเบฒ JMeter เป€เบฅเบตเปˆเบกเบฎเบปเปˆเบงเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒ.

plugin เปเบกเปˆเบ™เป€เบฅเบทเปˆเบญเบ‡เปƒเบซเบเปˆเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ; เบกเบต 176 เบ”เบฒเบง, เบกเบฑเบ™เบกเบต 132 fork เปƒเบ™ github. เบœเบนเป‰เบ‚เบฝเบ™เป€เบญเบ‡เบšเปเปˆเป„เบ”เป‰เบซเบกเบฑเป‰เบ™เบชเบฑเบ™เบเบฒเบเบฑเบšเบกเบฑเบ™เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆ 2015 (เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบญเบปเบฒเบกเบฑเบ™เปƒเบ™เบ›เบต 2015, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบกเบฑเบ™เบšเปเปˆเป„เบ”เป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบ„เบงเบฒเบกเบชเบปเบ‡เปƒเบช), เบšเบฑเบ™เบซเบฒ github เบˆเปเบฒเบ™เบงเบ™เบซเบ™เบถเปˆเบ‡เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบฎเบปเปˆเบงเป„เบซเบฅเบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ, 7 เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบ”เบถเบ‡เบ—เบตเปˆเบšเปเปˆเป€เบ›เบตเบ”เป€เบœเบตเบ.
เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเป€เบฎเบฑเบ”เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เป‚เบซเบผเบ”เป‚เบ”เบเปƒเบŠเป‰ plugin เบ™เบตเป‰, เบเบฐเบฅเบธเบ™เบฒเป€เบญเบปเบฒเปƒเบˆเปƒเบชเปˆเบเบฑเบšเบเบฒเบ™เบชเบปเบ™เบ—เบฐเบ™เบฒเบ•เปเปˆเป„เบ›เบ™เบตเป‰:

  1. เปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบซเบผเบฒเบเบเบฐเบ—เบนเป‰, LinkedList เบ›เบปเบเบเบฐเบ•เบดเป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เปเบฅเบฐเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเปเบกเปˆเบ™ NPE เปƒเบ™ runtime. เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เปเบเป‰เป„เบ‚เป„เบ”เป‰เป‚เบ”เบเบเบฒเบ™เบ›เปˆเบฝเบ™เป„เบ›เปƒเบŠเป‰ ConcurrentLinkedDeque เบซเบผเบทเป‚เบ”เบเบ•เบฑเบ™ synchronized. เบžเบงเบเป€เบฎเบปเบฒเป€เบฅเบทเบญเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เปเบฒเบญเบดเบ”เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเป€เบฎเบปเบฒเป€เบญเบ‡ (https://github.com/maciejzaleski/JMeter-WebSocketSampler/issues/43).
  2. เบ„เบงเบฒเบกโ€‹เบˆเปเบฒโ€‹เบฎเบปเปˆเบงโ€‹เป„เบซเบฅโ€‹; เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบ•เบฑเบ”โ€‹เบเบฒเบ™โ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹, เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบเบฒเบ™โ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบฅเบปเบš (https://github.com/maciejzaleski/JMeter-WebSocketSampler/issues/44).
  3. เปƒเบ™เป‚เบซเบกเบ”เบเบฒเบ™เบ–เปˆเบฒเบเบ—เบญเบ” (เป€เบกเบทเปˆเบญ websocket เบšเปเปˆเป„เบ”เป‰เบ›เบดเบ”เปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบเบ‚เบญเบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡, เปเบ•เปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบ•เปเปˆเบกเบฒเปƒเบ™เปเบœเบ™เบเบฒเบ™), เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบ (https://github.com/maciejzaleski/JMeter-WebSocketSampler/issues/19).

เบ™เบตเป‰เปเบกเปˆเบ™ เปœเบถเปˆเบ‡ เปƒเบ™เบœเบนเป‰เบ—เบตเปˆเบขเบนเปˆเปƒเบ™ github. เบชเบดเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบฎเบฑเบ”:

  1. เป„เบ”เป‰เบ›เบฐเบ•เบดเบšเบฑเบ” เบชเป‰เบญเบก Elyran Kogan (@elyrank) โ€“ เบกเบฑเบ™เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒ 1 เปเบฅเบฐ 3
  2. เปเบเป‰โ€‹เป„เบ‚โ€‹เบšเบฑเบ™โ€‹เบซเบฒ 2
  3. เบญเบฑเบšเป€เบ”เบ” jetty เบˆเบฒเบ 9.2.14 เป€เบ›เบฑเบ™ 9.3.12
  4. Wrapped SimpleDateFormat เปƒเบ™ ThreadLocal; SimpleDateFormat เบšเปเปˆเบ›เบญเบ”เป„เบžเบเบฐเบ—เบนเป‰, เป€เบŠเบดเปˆเบ‡เบ™เปเบฒเป„เบ›เบชเบนเปˆ NPE เปƒเบ™เป€เบงเบฅเบฒเปเบฅเปˆเบ™
  5. เปเบเป‰โ€‹เป„เบ‚โ€‹เบ„เบงเบฒเบกโ€‹เบŠเบปเบ‡โ€‹เบˆเปเบฒโ€‹เบญเบทเปˆเบ™โ€‹เบฎเบปเปˆเบง (เบเบฒเบ™โ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบ›เบดเบ”โ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบ•เบฑเบ”โ€‹เบเบฒเบ™โ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹)

เปเบฅเบฐเบ—เบฑเบ™เบกเบฑเบ™เป„เบซเบผ!

เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเป€เบฅเบตเปˆเบกเบซเบกเบปเบ”เป„เบ›เบšเปเปˆเปƒเบ™เบกเบทเป‰เบซเบ™เบถเปˆเบ‡, เปเบ•เปˆเปƒเบ™เบชเบญเบ‡. เบšเปเปˆเบกเบตเป€เบงเบฅเบฒเป€เบซเบผเบทเบญเบขเปˆเบฒเบ‡เปเบ—เป‰เบˆเบดเบ‡, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเบˆเบถเปˆเบ‡เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเป€เบ›เบตเบ”เบ•เบปเบงเบซเบปเบงเบ‚เปเป‰เบซเบ™เป‰เบญเบเบฅเบปเบ‡, เปเบ•เปˆเปƒเบ™เบชเบตเปˆเบ•เบปเบงเปเบ—เบ™. เบ™เบตเป‰เบ„เบงเบ™เบˆเบฐเบžเบฝเบ‡เบžเปเบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบเบซเบ™เบถเปˆเบ‡เบญเบฒเบ—เบดเบ”.

เบชเบญเบ‡เบกเบทเป‰เบœเปˆเบฒเบ™เป„เบ›...

เบ•เบญเบ™เบ™เบตเป‰ Hazelcast เบเบณเบฅเบฑเบ‡เบˆเบฐเปเบปเบ”เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเบณเปเบฅเป‰เบง. เบšเบฑเบ™เบ—เบถเบเป„เบ”เป‰เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบชเบญเบ‡เบชเบฒเบกเบกเบทเป‰, Hazelcast เป€เบฅเบตเปˆเบกเบˆเบปเปˆเบกเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ‚เบฒเบ”เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒ, เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบšเบฒเบ‡เป€เบงเบฅเบฒ, เบเบธเปˆเบกเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป„เบ”เป‰เปเบ•เบเปเบเบ, เปเบฅเบฐเบ‚เปเป‰เบ•เปเปˆเบชเบทเบšเบ•เปเปˆเบ•เบฒเบเป€เบ—เบทเปˆเบญเบฅเบฐเบญเบฑเบ™. เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ JVisualVM เบเบฑเบš hazelcast เปเบฅเบฐเป€เบซเบฑเบ™ " saw เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™" - เบกเบฑเบ™เป€เบ›เบฑเบ™เบ›เบปเบเบเบฐเบ•เบดเป€เบญเบตเป‰เบ™เบงเปˆเบฒ 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, เปเบ•เปˆเบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เบšเบฑเบ™เบซเบฒเปƒเบ™เบญเบฐเบ”เบตเบ”. เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡ multiMaps เปƒเปเปˆเบ”เป‰เบงเบเบŠเบทเปˆเปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบง เปเบฅเบฐเบฅเบถเบšเบžเบงเบเบกเบฑเบ™เบญเบญเบเบ•เบฒเบกเป€เบซเบ”เบœเบปเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ. เบฅเบฐเบซเบฑเบ”เป€เบšเบดเปˆเบ‡เบ„เบทเปเบ™เบงเบ™เบตเป‰:

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");

multiMap เป„เบ”เป‰เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบฐเบซเบกเบฑเบเปเบ•เปˆเบฅเบฐเบ„เบปเบ™เปเบฅเบฐเบ–เบทเบเบฅเบถเบšเบ–เบดเป‰เบกเป€เบกเบทเปˆเบญเบกเบฑเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™. เบžเบงเบเป€เบฎเบปเบฒเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบฅเบตเปˆเบกเปเบœเบ™เบ—เบตเปˆ , เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบˆเบฐเป€เบ›เบฑเบ™เบŠเบทเปˆเบ‚เบญเบ‡เบเบฒเบ™เบชเบฐเปเบฑเบเปƒเบŠเป‰, เปเบฅเบฐเบ„เปˆเบฒเบ•เปˆเบฒเบ‡เป†เบˆเบฐเป€เบ›เบฑเบ™เบ•เบปเบงเบฅเบฐเบšเบธเป€เบŠเบ”เบŠเบฑเบ™ (เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบ•เบปเบงเบฅเบฐเบšเบธเบœเบนเป‰เปƒเบŠเป‰, เบ–เป‰เบฒเบˆเปเบฒเป€เบ›เบฑเบ™).

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 เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ‚เบฝเบ™เป€เบ›เบฑเบ™ groovy เปเบฅเบฐเบ›เบฐเบเบญเบšเบกเบต cache เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก - เบกเบฑเบ™เป„เบงเบเบงเปˆเบฒเบซเบผเบฒเบ. เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ.
  2. เบเบฃเบฒเบŸ Jmeter-Plugins เปเบกเปˆเบ™เป€เบ‚เบปเป‰เบฒเปƒเบˆเบ‡เปˆเบฒเบเบเบงเปˆเบฒเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™. เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ.

เบเปˆเบฝเบงเบเบฑเบšเบ›เบฐเบชเบปเบšเบเบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบš Hazelcast

Hazelcast เป€เบ›เบฑเบ™เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เปƒเบซเบกเปˆเบชเปเบฒเบฅเบฑเบšเบžเบงเบเป€เบฎเบปเบฒ, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบฅเบตเปˆเบกเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบกเบฑเบ™เบˆเบฒเบเบชเบฐเบšเบฑเบš 3.4.1, เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบเบฒเบ™เบœเบฐเบฅเบดเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบชเบฐเบšเบฑเบš 3.9.2 (เปƒเบ™เป€เบงเบฅเบฒเบ‚เบฝเบ™, เบชเบฐเบšเบฑเบšเบซเบฅเป‰เบฒเบชเบธเบ”เบ‚เบญเบ‡ Hazelcast เปเบกเปˆเบ™ 3.10).

เบเบฒเบ™เบชเป‰เบฒเบ‡ ID

เบžเบงเบเป€เบฎเบปเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบ•เบปเบงเบฅเบฐเบšเบธเบˆเปเบฒเบ™เบงเบ™เป€เบ•เบฑเบก. เปƒเบซเป‰เบˆเบดเบ™เบ•เบฐเบ™เบฒเบเบฒเบ™เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™ Long เบญเบทเปˆเบ™เบชเปเบฒเบฅเบฑเบšเบซเบ™เปˆเบงเบเบ‡เบฒเบ™เปƒเบซเบกเปˆ. เบฅเปเบฒเบ”เบฑเบšเปƒเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบšเปเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก, เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบกเบตเบชเปˆเบงเบ™เบฎเปˆเบงเบกเปƒเบ™ sharding - เบ›เบฐเบเบปเบ”เบงเปˆเบฒเบกเบตเบ‚เปเป‰เบ„เบงเบฒเบก ID = 1 เปƒเบ™ DB1 เปเบฅเบฐเบ‚เปเป‰เบ„เบงเบฒเบก ID = 1 เปƒเบ™ DB2, เบ—เปˆเบฒเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เปƒเบชเปˆ ID เบ™เบตเป‰เปƒเบ™ Elasticsearch, เบซเบผเบทเบขเบนเปˆเปƒเบ™ Hazelcast. , เปเบ•เปˆเบชเบดเปˆเบ‡เบ—เบตเปˆเบฎเป‰เบฒเบเปเบฎเบ‡เบ—เบตเปˆเบชเบธเบ”เปเบกเปˆเบ™เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบฅเบงเบกเป€เบญเบปเบฒเบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบเบชเบญเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบซเบ™เบถเปˆเบ‡ (เบ•เบปเบงเบขเปˆเบฒเบ‡, เบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบงเปˆเบฒเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบซเบ™เบถเปˆเบ‡เปเบกเปˆเบ™เบžเบฝเบ‡เบžเปเบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบˆเบญเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰). เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบžเบตเปˆเบก AtomicLongs เบซเบผเบฒเบเป†เบญเบฑเบ™เปƒเบชเปˆ Hazelcast เปเบฅเบฐเบฎเบฑเบเบชเบฒ counter เบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป„เบ”เป‰เบฎเบฑเบš ID เปƒเบซเบกเปˆเปเบกเปˆเบ™ incrementAndGet เบšเบงเบเบเบฑเบšเป€เบงเบฅเบฒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป Hazelcast. เปเบ•เปˆ Hazelcast เบกเบตเบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ” - FlakeIdGenerator. เป€เบกเบทเปˆเบญเบ•เบดเบ”เบ•เปเปˆเบเบฑเบšเบฅเบนเบเบ„เป‰เบฒเปเบ•เปˆเบฅเบฐเบ„เบปเบ™, เบžเบงเบเป€เบ‚เบปเบฒเป„เบ”เป‰เบฎเบฑเบšเบ‚เบญเบšเป€เบ‚เบ” ID, เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ—เปเบฒเบญเบดเบ” - เบˆเบฒเบ 1 เบซเบฒ 10, เบ—เบตเบชเบญเบ‡ - เบˆเบฒเบ 000 เบซเบฒ 10, เปเบฅเบฐเบญเบทเปˆเบ™เป†. เบ”เบฝเบงเบ™เบตเป‰เบฅเบนเบเบ„เป‰เบฒเบชเบฒเบกเบฒเบ”เบญเบญเบเบ•เบปเบงเบฅเบฐเบšเบธเบ•เบปเบงเบ•เบปเบ™เปƒเปเปˆเป„เบ”เป‰เป€เบญเบ‡เบˆเบปเบ™เบเบงเปˆเบฒเบ‚เบญเบšเป€เบ‚เบ”เบ—เบตเปˆเบญเบญเบเปƒเบซเป‰เบกเบฑเบ™เบชเบดเป‰เบ™เบชเบธเบ”. เบกเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบขเปˆเบฒเบ‡เป„เบงเบงเบฒ, เปเบ•เปˆเป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™ restart เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ (เปเบฅเบฐเบฅเบนเบเบ„เป‰เบฒ Hazelcast), เบฅเปเบฒเบ”เบฑเบšเปƒเบซเบกเปˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ - เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เบ‚เป‰เบฒเบก, เปเบฅเบฐเบญเบทเปˆเบ™เป†. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบšเปเปˆเป€เบ‚เบปเป‰เบฒเปƒเบˆเปเบ—เป‰เป†เบงเปˆเบฒเป€เบ›เบฑเบ™เบซเบเบฑเบ‡ IDs เป€เบ›เบฑเบ™เบˆเปเบฒเบ™เบงเบ™เป€เบ•เบฑเบก, เปเบ•เปˆเบกเบฑเบ™เบšเปเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบ™. เบžเบงเบเป€เบฎเบปเบฒเบŠเบฑเปˆเบ‡เบ™เปเป‰เบฒเปœเบฑเบเบ—เบธเบเบขเปˆเบฒเบ‡ เปเบฅเบฐเบ›เปˆเบฝเบ™เป„เบ›เปƒเบŠเป‰ UUIDs.

เป‚เบ”เบเบงเบดเบ—เบตเบ—เบฒเบ‡เบเบฒเบ™, เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบ—เบตเปˆเบขเบฒเบเป€เบ›เบฑเบ™เบ„เบทเบเบฑเบš Twitter, เบกเบตเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” Snowcast เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง - เบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡ Snowflake เบขเบนเปˆเป€เบ—เบดเบ‡เบชเบธเบ”เบ‚เบญเบ‡ Hazelcast. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบšเบดเปˆเบ‡เบกเบฑเบ™เป„เบ”เป‰เบ—เบตเปˆเบ™เบตเป‰:

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. เบ•เบปเบงเบขเปˆเบฒเบ‡: เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบซเป‰เบญเบ‡เบฎเบฝเบ™ Application, เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเปเบฅเบฐเบญเปˆเบฒเบ™เบกเบฑเบ™. เบšเบฑเบ™เบ—เบถเบ:

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

เบžเบงเบเป€เบฎเบปเบฒเบญเปˆเบฒเบ™:

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

เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เป€เบฎเบฑเบ”เบงเบฝเบ. เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบชเป‰เบฒเบ‡เบ”เบฑเบ”เบชเบฐเบ™เบตเปƒเบ™ Hazelcast เป€เบžเบทเปˆเบญเบ„เบปเป‰เบ™เบซเบฒเป‚เบ”เบ:

map.addIndex("subscriberId", false);

เปเบฅเบฐเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ‚เบฝเบ™เบ™เบดเบ•เบดเบšเบธเบเบ„เบปเบ™เปƒเบซเบกเปˆ, เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป„เบ”เป‰เบฎเบฑเบš ClassNotFoundException. Hazelcast เบžเบฐเบเบฒเบเบฒเบกเป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™เบ”เบฑเบ”เบŠเบฐเบ™เบต, เปเบ•เปˆเบšเปเปˆเบฎเบนเป‰เบซเบเบฑเบ‡เบเปˆเบฝเบงเบเบฑเบšเบซเป‰เบญเบ‡เบฎเบฝเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปเบฅเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™ JAR เบ—เบตเปˆเบกเบตเบซเป‰เบญเบ‡เบฎเบฝเบ™เบ™เบตเป‰เป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เปเบเปˆเบกเบฑเบ™. เบžเบงเบเป€เบฎเบปเบฒเป€เบฎเบฑเบ”เป„เบ”เป‰เบžเบฝเบ‡เปเบ•เปˆเบงเปˆเบฒ, เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เป„เบ”เป‰เป€เบฎเบฑเบ”เบงเบฝเบ, เปเบ•เปˆเบšเบฑเบ™เบซเบฒเปƒเบซเบกเปˆเบ›เบฐเบเบปเบ”เบงเปˆเบฒ: เบงเบดเบ—เบตเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡ JAR เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบขเบธเบ”เป€เบŠเบปเบฒเบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™? Hazelcast เบšเปเปˆเป„เบ”เป‰เป€เบญเบปเบฒ JAR เปƒเบซเบกเปˆเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบญเบฑเบšเป€เบ”เบ” node-by-node. เปƒเบ™เบˆเบธเบ”เบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบ”เปเบฒเบฅเบปเบ‡เบŠเบตเบงเบดเบ”เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ„เบปเป‰เบ™เบซเบฒเบ”เบฑเบ”เบชเบฐเบ™เบต. เบซเบผเบฑเบ‡เบˆเบฒเบเบ—เบตเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”, เบ–เป‰เบฒเบ—เปˆเบฒเบ™เปƒเบŠเป‰ Hazelcast เป€เบ›เบฑเบ™เบฎเป‰เบฒเบ™เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™, เปเบฅเป‰เบงเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบšเป? เบšเปเปˆเปเบกเปˆเบ™เปเบ—เป‰. เบ™เบตเป‰เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡เบžเบถเบ”เบ•เบดเบเปเบฒเบ‚เบญเบ‡ 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, เบเบปเบ™เป„เบเบเบฒเบ™เบ›เบฑเบšเปƒเบŠเป‰เบซเป‰เบญเบ‡เบฎเบฝเบ™เบœเบนเป‰เปƒเบŠเป‰เบ›เบฒเบเบปเบ”. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เบซเบ™เบถเปˆเบ‡ master node เปเบฅเบฐเบ›เบฑเบšเบ›เบธเบ‡เป„เบŸเบฅเปŒ JAR เปƒเบ™เบกเบฑเบ™.

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ›เปˆเบฝเบ™เบงเบดเบ—เบตเบเบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™: เบžเบงเบเป€เบฎเบปเบฒเบˆเบฑเบ”เบฅเปเบฒเบ”เบฑเบšเบกเบฑเบ™เป€เบญเบ‡เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ JSON เปเบฅเบฐเบšเบฑเบ™เบ—เบถเบเบกเบฑเบ™เป„เบงเป‰เปƒเบ™ Hazelcast. Hazelcast เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบฎเบนเป‰เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบ›เบฑเบšเบ›เบธเบ‡เป„เบ”เป‰เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบขเบธเบ”เป€เบงเบฅเบฒ. เป€เบงเบตเบŠเบฑเบ™เบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธเป‚เบ”เป€เบกเบ™เบ–เบทเบเบ„เบงเบšเบ„เบธเบกเป‚เบ”เบเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™. เบฎเบธเปˆเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบงเบฝเบเป„เบ”เป‰เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™, เปเบฅเบฐเบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เป€เบกเบทเปˆเบญเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เปƒเบซเบกเปˆเบ‚เบฝเบ™เบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบกเบตเบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เปƒเบซเบกเปˆ, เปเบ•เปˆเบœเบนเป‰เป€เบเบปเปˆเบฒเบเบฑเบ‡เบšเปเปˆเบ—เบฑเบ™เบฎเบนเป‰เบเปˆเบฝเบงเบเบฑเบšเบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰. เปเบฅเบฐเปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™, เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เปƒเบซเบกเปˆเบˆเบฐเบญเปˆเบฒเบ™เบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบ‚เบฝเบ™เป‚เบ”เบเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เป€เบเบปเปˆเบฒเบ—เบตเปˆเบšเปเปˆเบกเบตเบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เปƒเบซเบกเปˆ. เบžเบงเบเป€เบฎเบปเบฒเบˆเบฑเบ”เบเบฒเบ™เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบžเบฒเบเปƒเบ™เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™, เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบ‡เปˆเบฒเบเบ”เบฒเบเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเป„เบ”เป‰เบ›เปˆเบฝเบ™เปเบ›เบ‡เบซเบผเบทเบฅเบถเบšเบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™, เบžเบงเบเป€เบฎเบปเบฒเบžเบฝเบ‡เปเบ•เปˆเบ‚เบฐเบซเบเบฒเบเบŠเบฑเป‰เบ™เบฎเบฝเบ™เป‚เบ”เบเบเบฒเบ™เป€เบžเบตเปˆเบกเบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เปƒเบซเบกเปˆ.

เป€เบฎเบฑเบ”เปเบ™เบงเปƒเบ”เบžเบงเบเป€เบฎเบปเบฒเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเบนเบ‡

เบชเบตเปˆเบเบฒเบ™เป€เบ”เบตเบ™เบ—เบฒเบ‡เป„เบ›เบซเบฒ Hazelcast - เบ”เบต, เบชเบญเบ‡เป„เบ›เบซเบฒเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™ - เบšเปเปˆเบ”เบต

เบเบฒเบ™เป„เบ›เบ—เบตเปˆเปเบ„เบ”เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™เปเบกเปˆเบ™เบ”เบตเบเบงเปˆเบฒเบ—เบตเปˆเบˆเบฐเป„เบ›เบซเบฒเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™, เปเบ•เปˆเบ—เปˆเบฒเบ™เบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบšเบฑเบ™เบ—เบถเบเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰. เบžเบงเบเป€เบฎเบปเบฒเบญเบญเบเบˆเบฒเบเบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบเปˆเบฝเบงเบเบฑเบšเบชเบดเปˆเบ‡เบ—เบตเปˆเบˆเบฐ cache เบˆเบปเบ™เบเปˆเบงเบฒเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบชเบธเบ”เบ—เป‰เบฒเบเบ‚เบญเบ‡เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ. เป€เบกเบทเปˆเบญเบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบซเบกเปˆเบ–เบทเบเบฅเบฐเบซเบฑเบ”, เบžเบงเบเป€เบฎเบปเบฒเป€เบ›เบตเบ”เบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เบชเบญเบšเบ–เบฒเบกเบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™ PostgreSQL (log_min_duration_statement เป€เบ›เบฑเบ™ 0) เปเบฅเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เป‚เบซเบผเบ”เบชเปเบฒเบฅเบฑเบš 20 เบ™เบฒเบ—เบต. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบšเบฑเบ™เบ—เบถเบเบ—เบตเปˆเป€เบเบฑเบšเบเปเบฒ, utilities เป€เบŠเบฑเปˆเบ™ pgFouine เปเบฅเบฐ pgBadger เบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ. เปƒเบ™เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™, เบžเบงเบเป€เบฎเบปเบฒเบ•เบปเป‰เบ™เบ•เปเบŠเบญเบเบซเบฒเบเบฒเบ™เบชเบญเบšเบ–เบฒเบกเบŠเป‰เบฒเปเบฅเบฐเป€เบฅเบทเป‰เบญเบเป†. เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบญเบšเบ–เบฒเบกเบ—เบตเปˆเบŠเป‰เบฒ, เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เปเบœเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” (เบญเบฐเบ—เบดเบšเบฒเบ) เปเบฅเบฐเบ›เบฐเป€เบกเบตเบ™เบงเปˆเบฒเบ„เปเบฒเบ–เบฒเบกเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบชเบฒเบกเบฒเบ”เป€เบฅเบฑเปˆเบ‡เป„เบ”เป‰. เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเป€เบฅเบทเป‰เบญเบเป†เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เบ”เบฝเบงเบเบฑเบ™เป€เบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบš cache. เบžเบงเบเป€เบฎเบปเบฒเบžเบฐเบเบฒเบเบฒเบกเบฎเบฑเบเบชเบฒเปเบšเบšเบชเบญเบšเบ–เบฒเบก "เบฎเบฒเบšเบžเบฝเบ‡", เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบซเบ™เบถเปˆเบ‡เบ•เปเปˆเบ„เปเบฒเบ–เบฒเบก.

เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™

SV เป€เบ›เบฑเบ™เบšเปเบฅเบดเบเบฒเบ™เบญเบญเบ™เป„เบฅเบ™เปŒเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบžเบฒเบเบฎเบฝเบ™ spring เบ‚เบญเบ‡ 2017, เปเบฅเบฐเป€เบ›เบฑเบ™เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ, SV เป„เบ”เป‰เบ–เบทเบเบ›เปˆเบญเบเบญเบญเบเบกเบฒเปƒเบ™เป€เบ”เบทเบญเบ™เบžเบฐเบˆเบดเบ 2017 (เปƒเบ™เป€เบงเบฅเบฒเบ™เบฑเป‰เบ™เบขเบนเปˆเปƒเบ™เบชเบฐเบ–เบฒเบ™เบฐเบžเบฒเบšเบชเบฐเบšเบฑเบšเป€เบšเบ•เป‰เบฒ).

เปƒเบ™เบซเบผเบฒเบเบเบงเปˆเบฒเบซเบ™เบถเปˆเบ‡เบ›เบตเบ‚เบญเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™, เบšเปเปˆเบกเบตเบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบฎเป‰เบฒเบเปเบฎเบ‡เปƒเบ™เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบญเบญเบ™เป„เบฅเบ™เปŒ CB. เบžเบงเบเป€เบฎเบปเบฒเบ•เบดเบ”เบ•เบฒเบกเบเบงเบ”เบเบฒเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบญเบญเบ™เป„เบฅเบ™เปŒเป‚เบ”เบเบœเปˆเบฒเบ™ Zabbix, เป€เบเบฑเบšโ€‹เบเปเบฒโ€‹เปเบฅเบฐโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบˆเบฒเบโ€‹ เป„เบกเป‰เป„เบœเปˆ.

เบเบฒเบ™เปเบˆเบเบขเบฒเบเป€เบŠเบตเบšเป€เบงเบต SV เปเบกเปˆเบ™เบชเบฐเปœเบญเบ‡เปƒเบ™เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡เปเบžเบฑเบเป€เบเบฑเบ”เบžเบทเป‰เบ™เป€เบกเบทเบญเบ‡: RPM, DEB, MSI. Plus เบชเปเบฒเบฅเบฑเบš Windows เบžเบงเบเป€เบฎเบปเบฒเบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบ”เบฝเบงเปƒเบ™เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡ EXE เบ”เบฝเบงเบ—เบตเปˆเบ•เบดเบ”เบ•เบฑเป‰เบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ, Hazelcast เปเบฅเบฐ Elasticsearch เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบ”เบฝเบง. เบžเบงเบเป€เบฎเบปเบฒเปƒเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เป„เบ”เป‰เบเปˆเบฒเบงเป€เบ–เบดเบ‡เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบฅเบธเป‰เบ™เบ™เบตเป‰เป€เบ›เบฑเบ™ โ€œเบชเบฒเบ—เบดเบ”โ€ เป€เบงเบตเบŠเบฑเปˆเบ™, เปเบ•เปˆเบกเบฑเบ™เป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เบ—เบตเปˆเบˆเบฐเปเบˆเป‰เบ‡เปเบฅเป‰เบงเบงเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบ—เบตเปˆเบ™เบดเบเบปเบกเบ—เบตเปˆเบชเบธเบ”.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™