RabbitMQ เบ—เบฝเบšเบเบฑเบš Kafka: เบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบžเป‰เบญเบกเบชเบนเบ‡เปƒเบ™เบเบธเปˆเบก

RabbitMQ เบ—เบฝเบšเบเบฑเบš Kafka: เบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบžเป‰เบญเบกเบชเบนเบ‡เปƒเบ™เบเบธเปˆเบก

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

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

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

เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบˆเบฐโ€‹เป€เบซเบฑเบ™โ€‹เบงเปˆเบฒโ€‹เบ„เบงเบฒเบกโ€‹เบชเบญเบ”โ€‹เบ„เปˆเบญเบ‡โ€‹เปเบฅเบฐโ€‹เบ„เบงเบฒเบกโ€‹เบกเบตโ€‹เบขเบนเปˆโ€‹เปเบกเปˆเบ™โ€‹เบขเบนเปˆโ€‹เปƒเบ™โ€‹เบ•เบญเบ™โ€‹เบ—เป‰เบฒเบโ€‹เบ‚เบญเบ‡โ€‹เบชเบฐโ€‹เป€เบ›เบโ€‹เบ‚เบญเบ‡โ€‹เบเบปเบ‡โ€‹เบเบฑเบ™โ€‹เบ‚เป‰เบฒเบกโ€‹, เปเบฅเบฐโ€‹เบ—เปˆเบฒเบ™โ€‹เบˆเปเบฒโ€‹เป€เบ›เบฑเบ™โ€‹เบ•เป‰เบญเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เป€เบญเบปเบฒโ€‹เบงเบดโ€‹เบ—เบตโ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบ›เบฑเบšโ€‹เปƒเบซเป‰โ€‹เป€เบซเบกเบฒเบฐโ€‹เบชเบปเบกโ€‹. เบ‚เปˆเบฒเบงเบ”เบตเปเบกเปˆเบ™เบงเปˆเบฒเบเบฑเบš RabbitMQ เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰. เบ—เปˆเบฒเบ™เบกเบตเบ›เบฐเป€เบžเบ” "nerdy" levers เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป€เบžเบทเปˆเบญเบ›เปˆเบฝเบ™เบ„เบงเบฒเบกเบชเบปเบกเบ”เบนเบ™เป„เบ›เบชเบนเปˆเบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบซเบผเบทเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบซเบผเบฒเบเบเบงเปˆเบฒเป€เบเบปเปˆเบฒ.

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

Single Node Resilience Primitives

Resilient queing/routing

เบกเบตเบชเบญเบ‡เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบ„เบดเบงเปƒเบ™ RabbitMQ: เบ—เบปเบ™เบ—เบฒเบ™เปเบฅเบฐเบšเปเปˆเบ—เบปเบ™เบ—เบฒเบ™. เปเบ–เบงเบ—เบฑเบ‡เปเบปเบ”เบ–เบทเบเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เปƒเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™ Mnesia. เบ„เบดเบงเบ—เบตเปˆเบ—เบปเบ™เบ—เบฒเบ™เป„เบ”เป‰เบ–เบทเบเป‚เบ„เบชเบฐเบ™เบฒเบ„เบทเบ™เปƒเบซเบกเปˆเปƒเบ™เบ•เบญเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡ node เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เบขเบนเปˆเบฅเบญเบ”เบเบฒเบ™ restarts, เบฅเบฐเบšเบปเบšเบ‚เบฑเบ”เบ‚เป‰เบญเบ‡, เบซเบผเบท server crash (เบ•เบฒเบšเปƒเบ”เบ—เบตเปˆเบ‚เปเป‰เบกเบนเบ™เบเบฑเบ‡เบ„เบปเบ‡เบขเบนเปˆ). เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบ•เบฒเบšเปƒเบ”เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ›เบฐเบเบฒเบ” routing (เบเบฒเบ™เปเบฅเบเบ›เปˆเบฝเบ™) เปเบฅเบฐเบ„เบดเบงเบ—เบตเปˆเบˆเบฐเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆ, เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เบเบฒเบ™เบˆเบฑเบ”เปเบ–เบง / routing เบˆเบฐเบเบฑเบšเบ„เบทเบ™เบกเบฒเบญเบญเบ™เป„เบฅเบ™เปŒ.

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

เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบเบฑเบ‡เบ„เบปเบ‡เบ„เป‰เบฒเบ‡

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

RabbitMQ เบ—เบฝเบšเบเบฑเบš Kafka: เบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบžเป‰เบญเบกเบชเบนเบ‡เปƒเบ™เบเบธเปˆเบก
เป€เบ‚เบปเป‰เบฒ. 1. เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ„เบงเบฒเบกเบเบทเบ™เบเบปเบ‡

เบเบฒเบ™เบˆเบฑเบ”เบเบธเปˆเบกเบ”เป‰เบงเบเบเบฒเบ™เบชเบฐเบ—เป‰เบญเบ™เปเบ–เบง

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

เบเบฒเบ™เบชเบฐเบ—เป‰เบญเบ™เปเบ–เบง:

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

RabbitMQ เบ—เบฝเบšเบเบฑเบš Kafka: เบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบžเป‰เบญเบกเบชเบนเบ‡เปƒเบ™เบเบธเปˆเบก
เป€เบ‚เบปเป‰เบฒ. 2. เบเบฒเบ™เบชเบฐเบ—เป‰เบญเบ™เปเบ–เบง

เบเบฒเบ™เบชเบฐเบ—เป‰เบญเบ™เปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป‚เบ”เบเบ™เบฐเป‚เบเบšเบฒเบเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก. เปƒเบ™เบกเบฑเบ™เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฅเบทเบญเบเป€เบญเบปเบฒเบ„เปˆเบฒเบชเปเบฒเบ›เบฐเบชเบดเบ”เบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡เปเบฅเบฐเปเบกเป‰เบเบฐเบ—เบฑเป‰เบ‡ nodes เบ—เบตเปˆเปเบ–เบงเบ„เบงเบ™เบˆเบฐเบ•เบฑเป‰เบ‡เบขเบนเปˆ. เบ•เบปเบงเบขเปˆเบฒเบ‡:

  • ha-mode: all
  • ha-mode: exactly, ha-params: 2 (เบซเบ™เบถเปˆเบ‡เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเปเบฅเบฐเบซเบ™เบถเปˆเบ‡เบเบฐเบˆเบปเบ)
  • ha-mode: nodes, ha-params: rabbit@node1, rabbit@node2

เบเบฒเบ™เบขเบทเบ™เบขเบฑเบ™เบœเบนเป‰เป€เบœเบตเบเปเบœเปˆ

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

เบ„เบดเบงเบ—เบตเปˆเบฅเบปเป‰เบกเป€เบซเบฅเบง

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

RabbitMQ เบ—เบฝเบšเบเบฑเบš Kafka: เบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบžเป‰เบญเบกเบชเบนเบ‡เปƒเบ™เบเบธเปˆเบก
เป€เบ‚เบปเป‰เบฒ. 3. เบซเบผเบฒเบเปเบ–เบง mirrored เปเบฅเบฐเบ™เบฐเป‚เบเบšเบฒเบเบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ

เบ™เบฒเบเบซเบ™เป‰เบฒ 3 เบฅเบปเบ‡. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒ Queue C mirror เปƒเบ™ Broker 2 เบเปเบฒเบฅเบฑเบ‡เบ–เบทเบเบชเบปเปˆเบ‡เป€เบชเบตเบกเป€เบ›เบฑเบ™เปเบกเปˆเบšเบปเบ”. เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบเบฐเบˆเบปเบเปƒเบซเบกเปˆเป„เบ”เป‰เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เบชเปเบฒเบฅเบฑเบš Queue C เปƒเบ™ Broker 1. RabbitMQ เบชเบฐเป€เบซเบกเบตเบžเบฐเบเบฒเบเบฒเบกเบฎเบฑเบเบชเบฒเบ›เบฑเบ”เป„เบˆเบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™เบ™เบฐเป‚เบเบšเบฒเบเบ‚เบญเบ‡เบ—เปˆเบฒเบ™.

RabbitMQ เบ—เบฝเบšเบเบฑเบš Kafka: เบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบžเป‰เบญเบกเบชเบนเบ‡เปƒเบ™เบเบธเปˆเบก
เป€เบ‚เบปเป‰เบฒ. 4. เบ™เบฒเบเบซเบ™เป‰เบฒ 3 เบฅเบปเป‰เบกเป€เบซเบฅเบง, เป€เบฎเบฑเบ”เปƒเบซเป‰เบ„เบดเบง C เบฅเบปเป‰เบกเป€เบซเบฅเบง

เบ™เบฒเบเปœเป‰เบฒ 1 เบ„เบปเบ™เบ•เปเปˆเป„เบ›เบ•เบปเบ! เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบ™เบฒเบเบซเบ™เป‰เบฒเบ„เบปเบ™เบ”เบฝเบงเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™. เบเบฐเบˆเบปเบ Queue B เบ–เบทเบเป€เบฅเบทเปˆเบญเบ™เป€เบ›เบฑเบ™เปเบกเปˆเบšเบปเบ”.

RabbitMQ เบ—เบฝเบšเบเบฑเบš Kafka: เบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบžเป‰เบญเบกเบชเบนเบ‡เปƒเบ™เบเบธเปˆเบก
เบŠเบฒเบง. เบซเบ™เบถเปˆเบ‡

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

เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เบเบฒเบ™เบชเบนเบ™เป€เบชเบ Broker 1 เปเบกเปˆเบ™เบชเบปเบกเบšเบนเบ™, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™ Queue B เบ—เบตเปˆเบšเปเปˆเบกเบตเบเบฒเบ™เบชเบฐเบ—เป‰เบญเบ™เป„เบ”เป‰เบชเบนเบ™เป€เบชเบเบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™.

RabbitMQ เบ—เบฝเบšเบเบฑเบš Kafka: เบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบžเป‰เบญเบกเบชเบนเบ‡เปƒเบ™เบเบธเปˆเบก
เป€เบ‚เบปเป‰เบฒ. 6. เบ™เบฒเบเบซเบ™เป‰เบฒ 1 เบเบฑเบšเบ„เบทเบ™เบชเบนเปˆเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™

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

RabbitMQ เบ—เบฝเบšเบเบฑเบš Kafka: เบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบžเป‰เบญเบกเบชเบนเบ‡เปƒเบ™เบเบธเปˆเบก
เป€เบ‚เบปเป‰เบฒ. 7. เบ™เบฒเบเบซเบ™เป‰เบฒ 3 เบเบฑเบšเบ„เบทเบ™เบชเบนเปˆเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™. เบ„เบดเบงเบซเบผเบฑเบเบ—เบฑเบ‡เปเบปเบ”เบขเบนเปˆเปƒเบ™เป‚เบซเบ™เบ”เบ”เบฝเบง!

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

Syncing

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

เบเบฒเบ™เบŠเบดเป‰เบ‡เบ‚เปเป‰เบกเบนเบ™เบ™เบตเป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ” เบซเบผเบทเบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡ เปเบฅเบฐเบ–เบทเบเบˆเบฑเบ”เบเบฒเบ™เป‚เบ”เบเปƒเบŠเป‰เบ™เบฐเป‚เบเบšเบฒเบเบ„เบดเบง. เปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡.

เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบชเบญเบ‡เปเบ–เบง mirrored. เบ„เบดเบง A เปเบกเปˆเบ™ synchronized เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”, เปเบฅเบฐ Queue B เปเบกเปˆเบ™ synchronized เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡. เบ—เบฑเบ‡เบชเบญเบ‡เบ„เบดเบงเบกเบตเบชเบดเบšเบ‚เปเป‰เบ„เบงเบฒเบก.

RabbitMQ เบ—เบฝเบšเบเบฑเบš Kafka: เบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบžเป‰เบญเบกเบชเบนเบ‡เปƒเบ™เบเบธเปˆเบก
เป€เบ‚เบปเป‰เบฒ. 8. เบชเบญเบ‡เปเบ–เบงเบ—เบตเปˆเบกเบตเป‚เบซเบกเบ” synchronization เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เบชเบนเบ™เป€เบชเบเบ™เบฒเบเบซเบ™เป‰เบฒ 3.

RabbitMQ เบ—เบฝเบšเบเบฑเบš Kafka: เบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบžเป‰เบญเบกเบชเบนเบ‡เปƒเบ™เบเบธเปˆเบก
เป€เบ‚เบปเป‰เบฒ. 9. เบ™เบฒเบเปœเป‰เบฒ 3 เบ•เบปเบ

เบ™เบฒเบเบซเบ™เป‰เบฒ 3 เบเบฑเบšเบ„เบทเบ™เบชเบนเปˆเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™. เบเบธเปˆเบกเบชเป‰เบฒเบ‡เบเบฐเบˆเบปเบเบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเปเบ–เบงเบขเบนเปˆเปƒเบ™ node เปƒเปเปˆ เปเบฅเบฐ synchronize Queue A เปƒเปเปˆเบเบฑเบšเปเบกเปˆเปเบšเบšเป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบเบฐเบˆเบปเบเบ‚เบญเบ‡เบ„เบดเบง B เปƒเบซเบกเปˆเบเบฑเบ‡เบ„เบปเบ‡เบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒ. เบ”เป‰เบงเบเบงเบดเบ—เบตเบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบเบฒเบ™เบŠเปเป‰เบฒเบŠเป‰เบญเบ™เบขเบนเปˆเปƒเบ™เบ„เบดเบง A เปเบฅเบฐเบเบฐเบˆเบปเบเบญเบฑเบ™เบ”เบฝเบงเบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบ„เบงเบฒเบกเบ„เบดเบง B เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบง.

RabbitMQ เบ—เบฝเบšเบเบฑเบš Kafka: เบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบžเป‰เบญเบกเบชเบนเบ‡เปƒเบ™เบเบธเปˆเบก
เป€เบ‚เบปเป‰เบฒ. 10. เบเบฐเบˆเบปเบเปƒเบซเบกเปˆเบ‚เบญเบ‡เบ„เบดเบง A เป„เบ”เป‰เบฎเบฑเบšเบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบกเบตเบขเบนเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”, เปเบ•เปˆเบเบฐเบˆเบปเบเปƒเบซเบกเปˆเบ‚เบญเบ‡เบ„เบดเบง B เบšเปเปˆ.

เบญเบตเบเบชเบดเบšเบ‚เปเป‰เบ„เบงเบฒเบกเบกเบฒเบฎเบญเบ”เบ—เบฑเบ‡เบชเบญเบ‡เบ„เบดเบง. เป‚เบšเบฃเบเป€เบเบต 2 เปเบฅเป‰เบงเบ‚เบฑเบ”เบ‚เป‰เบญเบ‡ เปเบฅเบฐเบ„เบดเบง A เบกเป‰เบงเบ™เบเบฑเบšเบ„เบทเบ™เป„เบ›เบซเบฒเบšเปˆเบญเบ™เปเบฅเบเบ›เปˆเบฝเบ™เบ„เบงเบฒเบกเป€เบเบปเปˆเบฒเปเบเปˆเบ—เบตเปˆเบชเบธเบ”, เป€เบŠเบดเปˆเบ‡เบขเบนเปˆเปƒเบ™ Broker 1. เบšเปเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™เบชเบนเบ™เป€เบชเบเป€เบกเบทเปˆเบญเบกเบฑเบ™เบฅเบปเป‰เบกเป€เบซเบฅเบง. เปƒเบ™เบ„เบดเบง B, เบกเบต XNUMX เบ‚เปเป‰เบ„เบงเบฒเบกเปƒเบ™เปเบกเปˆเบšเบปเบ”เปเบฅเบฐเบกเบตเบžเบฝเบ‡เปเบ•เปˆเบชเบดเบšเบ‚เปเป‰เบ„เบงเบฒเบกเปƒเบ™เบเบฐเบˆเบปเบเป€เบžเบฒเบฐเบงเปˆเบฒเบ„เบดเบงเบ™เบตเป‰เบšเปเปˆเป€เบ„เบตเบ replicated เบชเบดเบšเบ‚เปเป‰เบ„เบงเบฒเบกเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš.

RabbitMQ เบ—เบฝเบšเบเบฑเบš Kafka: เบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบžเป‰เบญเบกเบชเบนเบ‡เปƒเบ™เบเบธเปˆเบก
เป€เบ‚เบปเป‰เบฒ. 11. เบ„เบดเบง A เบเบฑเบšเบ„เบทเบ™เป„เบ›เบซเบฒ Broker 1 เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบชเบนเบ™เป€เบชเบเบ‚เปเป‰เบ„เบงเบฒเบก

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

เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ™เบฐเป‚เบเบšเบฒเบ ha-promote-on-failure เบ„เบงเบ™โ€‹เบˆเบฐโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ•เบดเบ”โ€‹เบ•เบฑเป‰เบ‡โ€‹เปƒเบ™โ€‹ เบชเบฐเป€เบซเบกเบตเป„เบ›. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบชเบฐเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบฅเบฐเบšเบธเบ™เบฐเป‚เบเบšเบฒเบเป„เบ”เป‰. เปƒเบ™โ€‹เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹เบ™เบตเป‰, เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เป€เบ›เบฑเบ™โ€‹เบชเบดเปˆเบ‡โ€‹เบˆเปเบฒโ€‹เป€เบ›เบฑเบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เปƒเบซเป‰โ€‹เบ„เบงเบฒเบกโ€‹เบฅเบปเป‰เบกโ€‹เป€เบซเบผเบงโ€‹เปƒเบ™โ€‹เบเบฐโ€‹เบˆเบปเบ unsynchronized. เบ™เบตเป‰เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบ‚เปเป‰เบ„เบงเบฒเบกเบชเบนเบ™เป€เบชเบ, เปเบ•เปˆเปเบ–เบงเบˆเบฐเบเบฑเบ‡เบ„เบปเบ‡เบญเปˆเบฒเบ™เป„เบ”เป‰เปเบฅเบฐเบ‚เบฝเบ™เป„เบ”เป‰.

RabbitMQ เบ—เบฝเบšเบเบฑเบš Kafka: เบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบžเป‰เบญเบกเบชเบนเบ‡เปƒเบ™เบเบธเปˆเบก
เป€เบ‚เบปเป‰เบฒ. 12. เบ„เบดเบง A เบ–เบทเบเบกเป‰เบงเบ™เบเบฑเบšเบ„เบทเบ™เป„เบ›เบซเบฒ Broker 3 เป‚เบ”เบเบšเปเปˆเบชเบนเบ™เป€เบชเบเบ‚เปเป‰เบ„เบงเบฒเบก. เบ„เบดเบง B เบเบฑเบšเบ„เบทเบ™เป„เบ›เบซเบฒ Broker 3 เบ”เป‰เบงเบเบชเบดเบšเบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบชเบนเบ™เป€เบชเบเป„เบ›

เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบ•เบดเบ”เบ•เบฑเป‰เบ‡เป„เบ”เป‰ ha-promote-on-failure เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ„เบงเบฒเบกเบซเบกเบฒเบ when-synced. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบกเป‰เบงเบ™เบเบฑเบšเบ„เบทเบ™เป„เบ›เบšเปˆเบญเบ™เบเบฐเบˆเบปเบ, เปเบ–เบงเบˆเบฐเบฅเปเบ–เป‰เบฒเบˆเบปเบ™เบเปˆเบงเบฒ Broker 1 เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡เบกเบฑเบ™เบเบฑเบšเบ„เบทเบ™เบชเบนเปˆเป‚เบซเบกเบ”เบญเบญเบ™เป„เบฅเบ™เปŒ. เบซเบผเบฑเบ‡เบˆเบฒเบเบ—เบตเปˆเบกเบฑเบ™เบเบฑเบšเบ„เบทเบ™เบกเบฒ, เบ„เบดเบงเบ•เบปเป‰เบ™เบ•เปเปเบกเปˆเบ™เบเบฑเบšเบกเบฒเบขเบนเปˆเปƒเบ™ Broker 1 เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบชเบนเบ™เป€เบชเบเบ‚เปเป‰เบกเบนเบ™เปƒเบ”เป†. เบ„เบงเบฒเบกเบžเป‰เบญเบกเปเบกเปˆเบ™เป€เบชเบเบชเบฐเบฅเบฐเป€เบžเบทเปˆเบญเบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™. เปเบ•เปˆเบ™เบตเป‰เปเบกเปˆเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบชเปˆเบฝเบ‡เบ—เบตเปˆเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบชเบฒเบกเบฒเบ”เบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™เบชเบนเบ™เป€เบชเบเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบชเบปเบกเบšเบนเบ™, เป€เบŠเบดเปˆเบ‡เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบšเบดเปˆเบ‡เปƒเบ™เป„เบงเป†เบ™เบตเป‰.

RabbitMQ เบ—เบฝเบšเบเบฑเบš Kafka: เบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบžเป‰เบญเบกเบชเบนเบ‡เปƒเบ™เบเบธเปˆเบก
เป€เบ‚เบปเป‰เบฒ. 13. เบ„เบดเบง B เบเบฑเบ‡เบšเปเปˆเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบซเบผเบฑเบ‡เบˆเบฒเบเบชเบนเบ™เป€เบชเบเบ™เบฒเบเปœเป‰เบฒ 1

เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบ–เบฒเบกเบงเปˆเบฒ, "เบกเบฑเบ™เบ”เบตเบเบงเปˆเบฒเบ—เบตเปˆเบˆเบฐเบšเปเปˆเป€เบ„เบตเบเปƒเบŠเป‰ synchronization เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบšเป?" เบ„เปเบฒเบ•เบญเบšเปเบกเปˆเบ™เบงเปˆเบฒ synchronization เปเบกเปˆเบ™เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบชเบฐเบเบฑเบ”. เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™ synchronization, เปเบ–เบงเบ•เบปเป‰เบ™เบ•เปเบšเปเปˆเบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบญเปˆเบฒเบ™เบซเบผเบทเบ‚เบฝเบ™เปƒเบ”เป†!

เปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบ„เบดเบงเบเบฒเบงเบซเบผเบฒเบ. เบžเบงเบเป€เบ‚เบปเบฒเบชเบฒเบกเบฒเบ”เป€เบ•เบตเบšเป‚เบ•เป„เบ”เป‰เบ‚เบฐเบซเบ™เบฒเบ”เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป„เบ”เป‰เปเบ™เบงเปƒเบ”? เบ”เป‰เบงเบเป€เบซเบ”เบœเบปเบ™เบซเบผเบฒเบเบขเปˆเบฒเบ‡:

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

RabbitMQ เบ—เบฝเบšเบเบฑเบš Kafka: เบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบžเป‰เบญเบกเบชเบนเบ‡เปƒเบ™เบเบธเปˆเบก
เป€เบ‚เบปเป‰เบฒ. 14. เบชเบญเบ‡เปเบ–เบงเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบ—เบตเปˆเบกเบตเป‚เบซเบกเบ” synchronization เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™ Broker 3 เบ•เบปเบ.

RabbitMQ เบ—เบฝเบšเบเบฑเบš Kafka: เบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบžเป‰เบญเบกเบชเบนเบ‡เปƒเบ™เบเบธเปˆเบก
เป€เบ‚เบปเป‰เบฒ. 15. เบ™เบฒเบเบซเบ™เป‰เบฒ 3 เบ•เบปเบ, เบ›เปˆเบญเบเปƒเบซเป‰เบซเบ™เบถเปˆเบ‡เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเปเบฅเบฐเบเบฐเบˆเบปเบเปƒเบ™เปเบ•เปˆเบฅเบฐเปเบ–เบง

เบ™เบฒเบเบซเบ™เป‰เบฒ 3 เบเบฑเบšเบกเบฒเบญเบญเบ™เป„เบฅเบ™เปŒเปเบฅเบฐเบเบฐเบˆเบปเบเปƒเบซเบกเปˆเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™. เบ„เบดเบงเบซเบผเบฑเบ A เป€เบฅเบตเปˆเบกเบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบกเบตเบขเบนเปˆเบเบฑเบšเบเบฐเบˆเบปเบเปƒเปเปˆ, เปเบฅเบฐเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ™เบตเป‰เบ„เบดเบงเบšเปเปˆเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰. เบกเบฑเบ™เปƒเบŠเป‰เป€เบงเบฅเบฒเบชเบญเบ‡เบŠเบปเปˆเบงเป‚เบกเบ‡เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เป€เบฅเบทเป‰เบกเบ„เบทเบ™เบ‚เปเป‰เบกเบนเบ™, เบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เบ„เบดเบงเบ™เบตเป‰เปƒเบŠเป‰เป€เบงเบฅเบฒเบชเบญเบ‡เบŠเบปเปˆเบงเป‚เบกเบ‡!

เบขเปˆเบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก, เบ„เบดเบง B เบเบฑเบ‡เบกเบตเบขเบนเปˆเบ•เบฐเบซเบผเบญเบ”เป„เบฅเบเบฐเป€เบงเบฅเบฒเบ—เบฑเบ‡เปเบปเบ”. เบ™เบฒเบ‡เป„เบ”เป‰เป€เบชเบเบชเบฐเบฅเบฐเบเบฒเบ™เบŠเปเป‰เบฒเบŠเป‰เบญเบ™เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡.

RabbitMQ เบ—เบฝเบšเบเบฑเบš Kafka: เบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบžเป‰เบญเบกเบชเบนเบ‡เปƒเบ™เบเบธเปˆเบก
เป€เบ‚เบปเป‰เบฒ. 16. เบ„เบดเบงเบเบฑเบ‡เบšเปเปˆเบกเบตเบขเบนเปˆเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™ synchronization

เบซเบผเบฑเบ‡เบˆเบฒเบเบชเบญเบ‡เบŠเบปเปˆเบงเป‚เบกเบ‡, เบ„เบดเบง A เบเปเปˆเบกเบตเบขเบนเปˆ เปเบฅเบฐเบชเบฒเบกเบฒเบ”เป€เบฅเบตเปˆเบกเบฎเบฑเบšเบเบฒเบ™เบญเปˆเบฒเบ™ เปเบฅเบฐ เบ‚เบฝเบ™เบญเบตเบเบ„เบฑเป‰เบ‡.

เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡

เบžเบถเบ”เบ•เบดเบเปเบฒเบเบฒเบ™เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบ™เบตเป‰เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™ synchronization เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบเบฒเบเบ—เบตเปˆเบˆเบฐเบ›เบฑเบšเบ›เบธเบ‡เบเบธเปˆเบกเบ—เบตเปˆเบกเบตเปเบ–เบงเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบซเบผเบฒเบ. เปƒเบ™เบšเบฒเบ‡เบˆเบธเบ”, เปเบกเปˆเบšเบปเบ”เบ•เป‰เบญเบ‡เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบซเบกเปˆ, เบŠเบถเปˆเบ‡เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบˆเบฐเบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™เบšเปˆเบญเบ™เปเบฅเบเบ›เปˆเบฝเบ™เบ„เบงเบฒเบกเบซเบผเบทเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เปเบ–เบงเปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบเปเบฒเบฅเบฑเบ‡เบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡. เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเป€เบฅเบทเบญเบเบ—เบตเปˆเบˆเบฐเบ›เปˆเบฝเบ™, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบชเบนเบ™เป€เบชเบเบ‚เปเป‰เบ„เบงเบฒเบกเบ–เป‰เบฒเบเบฐเบˆเบปเบเบšเปเปˆเป„เบ”เป‰เบ–เบทเบ synchronized. เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบขเบธเบ”เบ‚เบญเบ‡เบ™เบฒเบเบซเบ™เป‰เบฒ, เบเบฒเบ™เบฅเบปเป‰เบกเป€เบซเบฅเบงเบเบฑเบšเบšเปˆเบญเบ™เปเบฅเบเบ›เปˆเบฝเบ™เบ„เบงเบฒเบกเบ—เบตเปˆเบšเปเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบˆเบฐเบšเปเปˆเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”. เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบ—เบฑเบ™เบ—เบตเบ—เบตเปˆเบ™เบฒเบเบซเบ™เป‰เบฒเบเบฑเบšเบ„เบทเบ™เบกเบฒ, เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเป„เบ”เป‰เบชเบนเบ™เป€เบชเบเบ‚เปเป‰เบ„เบงเบฒเบกเปƒเบ”เป†, เบ„เบงเบฒเบกเป€เบชเบเบซเบฒเบเบžเบฝเบ‡เปเบ•เปˆเป€เบ›เบฑเบ™เปเบ–เบงเบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบ. เบเบปเบ”เบฅเบฐเบšเบฝเบšเบ‚เบญเบ‡เบžเบถเบ”เบ•เบดเบเปเบฒเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ™เบฒเบเบซเบ™เป‰เบฒเบ–เบทเบเบ•เบฑเบ”เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป‚เบ”เบเบ™เบฐเป‚เบเบšเบฒเบ ha-promote-on-shutdown. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เบซเบ™เบถเปˆเบ‡เปƒเบ™เบชเบญเบ‡เบ„เปˆเบฒ:

  • always= เบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™เป„เบ›เบชเบนเปˆเบเบฐเบˆเบปเบเบ—เบตเปˆเบšเปเปˆ synchronized เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰
  • when-synced= เบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™เป„เบ›เบซเบฒเบšเปˆเบญเบ™เปเบฅเบเบ›เปˆเบฝเบ™เบ„เบงเบฒเบกเบเบปเบ‡เบเบฑเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™, เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ„เบดเบงเบˆเบฐเบเบฒเบเป€เบ›เบฑเบ™เบญเปˆเบฒเบ™เบšเปเปˆเป„เบ”เป‰ เปเบฅเบฐเบ‚เบฝเบ™เบšเปเปˆเป„เบ”เป‰. เบ„เบดเบงเบเบฑเบšเบ„เบทเบ™เบชเบนเปˆเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบฑเบ™เบ—เบตเบ—เบตเปˆเบ™เบฒเบเบซเบ™เป‰เบฒเบเบฑเบšเบ„เบทเบ™เบกเบฒ

เบ—เบฒเบ‡เปœเบถเปˆเบ‡เบซเบผเบทเบ—เบฒเบ‡เบญเบทเปˆเบ™, เบ”เป‰เบงเบเบ„เบดเบงเปƒเบซเบเปˆเป€เบˆเบปเป‰เบฒเบ•เป‰เบญเบ‡เป€เบฅเบทเบญเบเบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบชเบนเบ™เป€เบชเบเบ‚เปเป‰เบกเบนเบ™ เปเบฅเบฐ เบ„เบงเบฒเบกเบšเปเปˆเบžเป‰เบญเบก.

เป€เบกเบทเปˆเบญเบกเบตเปƒเบซเป‰เบ›เบฑเบšเบ›เบธเบ‡เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™

เบกเบตโ€‹เบญเบตเบโ€‹เบญเบฑเบ™โ€‹เปœเบถเปˆเบ‡โ€‹เบ—เบตเปˆโ€‹เบ•เป‰เบญเบ‡โ€‹เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒโ€‹เบเปˆเบญเบ™โ€‹เบเบฒเบ™โ€‹เบ•เบฑเบ”เบชเบดเบ™โ€‹เปƒเบˆ. เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบเบฒเบ™ synchronization เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เปเบกเปˆเบ™เบ”เบตเบเบงเปˆเบฒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบŠเป‰เปเบฒเบŠเป‰เบญเบ™, เบกเบฑเบ™เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เปเบ™เบงเปƒเบ”? เปเบ™เปˆเบ™เบญเบ™, เบ”เป‰เบงเบเบเบฒเบ™เบŠเปเป‰เบฒเบŠเป‰เบญเบ™เบ—เบตเปˆเบ”เบตเบเบงเปˆเบฒ, RabbitMQ เบกเบตเป‚เบญเบเบฒเบ”เบซเบ™เป‰เบญเบเบ—เบตเปˆเบˆเบฐเบชเบนเบ™เป€เบชเบเบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบกเบตเบขเบนเปˆ, เปเบ•เปˆเบงเปˆเบฒเบ‚เปเป‰เบ„เบงเบฒเบกเปƒเบซเบกเปˆเบˆเบฒเบเบœเบนเป‰เป€เบœเบตเบเปเบœเปˆเปเบกเปˆเบ™เบซเบเบฑเบ‡?

เบ—เบตเปˆเบ™เบตเป‰เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

  • เบœเบนเป‰เป€เบœเบตเบเปเบžเปˆเบชเบฒเบกเบฒเบ”เบชเบปเปˆเบ‡เบ„เบทเบ™เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เป„เบ”เป‰ เปเบฅเบฐเปƒเบซเป‰เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ‚เบฑเป‰เบ™เบ•เบปเป‰เบ™ เบซเบผเบทเบœเบนเป‰เปƒเบŠเป‰เบžเบฐเบเบฒเบเบฒเบกเบญเบตเบเบ„เบฑเป‰เบ‡เปƒเบ™เบžเบฒเบเบซเบผเบฑเบ‡เบšเป?
  • เบœเบนเป‰เป€เบœเบตเบเปเบœเปˆเบชเบฒเบกเบฒเบ”เบšเบฑเบ™เบ—เบถเบเบ‚เปเป‰เบ„เบงเบฒเบกเบขเบนเปˆเปƒเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบซเบผเบทเปƒเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เป€เบžเบทเปˆเบญเบฅเบญเบ‡เปƒเปเปˆเปƒเบ™เบžเบฒเบเบซเบผเบฑเบ‡เบšเป?

เบ–เป‰เบฒเบœเบนเป‰เป€เบœเบตเบเปเบœเปˆเบžเบฝเบ‡เปเบ•เปˆเบชเบฒเบกเบฒเบ”เบเบปเบเป€เบฅเบตเบเบ‚เปเป‰เบ„เบงเบฒเบก, เปƒเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡, เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบเบฑเบ‡เบ›เบฑเบšเบ›เบธเบ‡เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบเบฒเบ™เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบŠเบญเบเบซเบฒ, เปเบฅเบฐเบเบฒเบ™เปเบเป‰เป„เบ‚เปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบชเบฐเป€เบžเบฒเบฐ.

เบกเบตเบšเบฑเบ™เบซเบฒเบเบฑเบš ha-promote-on-failure=when-synced

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

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

เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบก node เบ—เบตเปˆเบกเบตเบŠเบทเปˆเบ”เบฝเบงเบเบฑเบ™, เบžเบงเบเป€เบฎเบปเบฒเบšเบญเบ cluster เปƒเบซเป‰เบฅเบทเบก node เบ—เบตเปˆเบชเบนเบ™เป€เบชเบ (เบ”เป‰เบงเบเบ„เปเบฒเบชเบฑเปˆเบ‡. rabbitmqctl forget_cluster_node) เปเบฅเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ™เบฒเบเบซเบ™เป‰เบฒเปƒเบซเบกเปˆเบ—เบตเปˆเบกเบตเบŠเบทเปˆเป€เบˆเบปเป‰เบฒเบžเบฒเบšเบ”เบฝเบงเบเบฑเบ™. เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆ cluster เบˆเบทเปˆ node เบ—เบตเปˆเบชเบนเบ™เป€เบชเบเป„เบ›, เบกเบฑเบ™เบˆเบทเปˆเบ„เบดเบงเป€เบเบปเปˆเบฒเปเบฅเบฐเบเบฐเบˆเบปเบ unsynchronized. เป€เบกเบทเปˆเบญเบเบธเปˆเบกเบ–เบทเบเบšเบญเบเปƒเบซเป‰เบฅเบทเบกเบ‚เปเป‰เบ—เบตเปˆเบเบณเบžเป‰เบฒ, เปเบ–เบงเบ™เบฑเป‰เบ™เบ–เบทเบเบฅเบทเบกเป€เบŠเบฑเปˆเบ™เบเบฑเบ™. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบžเบงเบเป€เบฎเบปเบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ›เบฐเบเบฒเบ”เบกเบฑเบ™เปƒเบซเบกเปˆ. เบžเบงเบเป€เบฎเบปเบฒเบชเบนเบ™เป€เบชเบเบ‚เปเป‰เบกเบนเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบกเบตเบšเปˆเบญเบ™เปเบฅเบเบ›เปˆเบฝเบ™เบ„เบงเบฒเบกเบเบฑเบšเบŠเบธเบ”เบ‚เปเป‰เบกเบนเบ™เบšเบฒเบ‡เบชเปˆเบงเบ™. เบกเบฑเบ™เบˆเบฐเป€เบ›เบฑเบ™เบเบฒเบ™เบ”เบตเบเบงเปˆเบฒเบ—เบตเปˆเบˆเบฐเบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™เบเบฐเบˆเบปเบเบ—เบตเปˆเบšเปเปˆ synchronized!

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, synchronization เบ„เบนเปˆเบกเบท (เปเบฅเบฐเบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบผเบงเบ—เบตเปˆเบˆเบฐ synchronize) เปƒเบ™เบเบฒเบ™เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบเบฑเบš ha-promote-on-failure=when-synced, เปƒเบ™เบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™เบ‚เบญเบ‡เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒ, เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบกเบตเบ„เบงเบฒเบกเบชเปˆเบฝเบ‡. เป€เบญเบเบฐเบชเบฒเบ™เบšเบญเบเบงเปˆเบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบกเบตเบขเบนเปˆเบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™, เปเบ•เปˆเบกเบฑเบ™เป€เบ›เบฑเบ™เบกเบตเบ”เบชเบญเบ‡เบ”เป‰เบฒเบ™.

เบเบฒเบ™เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš

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

Rebalancing masters เบชเบฒเบกเบฒเบ”เบกเบตเบšเบฑเบ™เบซเบฒเบชเปเบฒเบฅเบฑเบšเบชเบญเบ‡เป€เบซเบ”เบœเบปเบ™:

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

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

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

  • เป€เบญเบปเบฒเบเบฐเบˆเบปเบเบ—เบฑเบ‡เปเบปเบ”เบญเบญเบเป‚เบ”เบเปƒเบŠเป‰เบ™เบฐเป‚เบเบšเบฒเบเบŠเบปเปˆเบงเบ„เบฒเบงเบ—เบตเปˆเบกเบตเบšเบนเบฅเบดเบกเบฐเบชเบดเบ”เบชเบนเบ‡เบเบงเปˆเบฒเบ™เบฐเป‚เบเบšเบฒเบ HA เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบง.
  • เบ›เปˆเบฝเบ™เบ™เบฐเป‚เบเบšเบฒเบเบŠเบปเปˆเบงเบ„เบฒเบง HA เป€เบžเบทเปˆเบญเปƒเบŠเป‰เป‚เบซเบกเบ” node, เบฅเบฐเบšเบธ node เบ—เบตเปˆเปเบ–เบงเปเบกเปˆเปเบšเบšเบ„เบงเบ™เบ–เบทเบเป‚เบญเบ™.
  • synchronizes เปเบ–เบงเบชเปเบฒเบฅเบฑเบš push migration.
  • เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เป‚เบญเบ™เบเป‰เบฒเบเบชเบณเป€เบฅเบฑเบ”เปเบฅเป‰เบง, เปƒเบซเป‰เบฅเบถเบšเบ™เบฐเป‚เบเบšเบฒเบเบŠเบปเปˆเบงเบ„เบฒเบงเบญเบญเบ. เบ™เบฐโ€‹เป‚เบโ€‹เบšเบฒเบ HA เปƒเบ™โ€‹เป€เบšเบทเป‰เบญเบ‡โ€‹เบ•เบปเป‰เบ™โ€‹เบกเบตโ€‹เบœเบปเบ™โ€‹เบšเบฑเบ‡โ€‹เบ„เบฑเบšโ€‹เปƒเบŠเป‰โ€‹เปเบฅเบฐโ€‹เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบ—เบตเปˆโ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ‚เบญเบ‡โ€‹เบเบฐโ€‹เบˆเบปเบโ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบชเป‰เบฒเบ‡โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ‚เบถเป‰เบ™.

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

เบ•เบญเบ™เบ™เบตเป‰เปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบงเบดเบ—เบตเบเบฒเบ™เบเบธเปˆเบก RabbitMQ เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบ.

เบเบฒเบ™เบชเบนเบ™เป€เบชเบเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ

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

เบ”เป‰เบงเบ RabbitMQ เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบชเบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ•เบปเป‰เบ™เบ•เป:

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

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

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

เบ–เป‰เบฒเบœเบนเป‰เป€เบœเบตเบเปเบœเปˆเบชเบปเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™เป„เบ›เบซเบฒเปเบกเปˆเบšเบปเบ”เบ—เบฑเบ‡เบชเบญเบ‡, เบžเบงเบเป€เบฎเบปเบฒเบชเบดเป‰เบ™เบชเบธเบ”เบ”เป‰เบงเบเบชเบญเบ‡เบชเปเบฒเป€เบ™เบปเบฒเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบ‚เบญเบ‡เปเบ–เบง.

เป‚เบซเบกเบ”เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบ‚เบญเบ‡ RabbitMQ เบชเบฐเบซเบ™เบญเบ‡เบ„เบงเบฒเบกเบžเป‰เบญเบกเบซเบผเบทเบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡.

เป‚เปเบ”เบšเปเปˆเบชเบปเบ™เปƒเบˆ (เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™)

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

RabbitMQ เบ—เบฝเบšเบเบฑเบš Kafka: เบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบžเป‰เบญเบกเบชเบนเบ‡เปƒเบ™เบเบธเปˆเบก
เป€เบ‚เบปเป‰เบฒ. 18. เบชเบฒเบกเบœเบนเป‰เป€เบœเบตเบเปเบœเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบชเบฒเบกเบ™เบฒเบเบซเบ™เป‰เบฒ. เบžเบฒเบเปƒเบ™, เบเบธเปˆเบกเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบชเบปเปˆเบ‡เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ—เบฑเบ‡เบซเบกเบปเบ”เป„เบ›เบซเบฒเปเบ–เบงเบ•เบปเป‰เบ™เบ•เปเปƒเบ™ Broker 2.

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

RabbitMQ เบ—เบฝเบšเบเบฑเบš Kafka: เบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบžเป‰เบญเบกเบชเบนเบ‡เปƒเบ™เบเบธเปˆเบก
เป€เบ‚เบปเป‰เบฒ. 19. เบเบฒเบ™เปเบšเปˆเบ‡เบ•เบฒเบกเป€เบซเบ”เบœเบปเบ™ (split-brain). เบšเบฑเบ™เบ—เบถเบเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบชเบญเบ‡เปเบ–เบงเบ•เบปเป‰เบ™เบ•เป, เปเบฅเบฐเบชเบญเบ‡เบชเปเบฒเป€เบ™เบปเบฒ diverge.

เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป„เบ”เป‰เบ–เบทเบเบŸเบทเป‰เบ™เบŸเบน, เปเบ•เปˆเบเบฒเบ™เปเบเบเบเบฑเบ™เบขเปˆเบฒเบ‡เบกเบตเป€เบซเบ”เบœเบปเบ™เบเบฑเบ‡เบ„เบปเบ‡เบขเบนเปˆ. เบœเบนเป‰เบšเปเบฅเบดเบซเบฒเบ™เบ•เป‰เบญเบ‡เป€เบฅเบทเบญเบเบ”เป‰เบฒเบ™เบ—เบตเปˆเบชเบนเบ™เป€เบชเบเบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰, เบœเบนเป‰เบšเปเบฅเบดเบซเบฒเบ™ reboots Broker 3. เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบฅเบฒเบงเบšเปเปˆเป„เบ”เป‰เบˆเบฑเบ”เบเบฒเบ™เบชเบปเปˆเบ‡เปเบกเปˆเบ™เบชเบนเบ™เป€เบชเบ.

RabbitMQ เบ—เบฝเบšเบเบฑเบš Kafka: เบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบžเป‰เบญเบกเบชเบนเบ‡เปƒเบ™เบเบธเปˆเบก
เป€เบ‚เบปเป‰เบฒ. 20. เบœเบนเป‰เบšเปเบฅเบดเบซเบฒเบ™เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™ Broker 3.

RabbitMQ เบ—เบฝเบšเบเบฑเบš Kafka: เบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบžเป‰เบญเบกเบชเบนเบ‡เปƒเบ™เบเบธเปˆเบก
เป€เบ‚เบปเป‰เบฒ. 21. เบœเบนเป‰เบšเปเบฅเบดเบซเบฒเบ™เป€เบฅเบตเปˆเบก Broker 3 เปเบฅเบฐเบกเบฑเบ™เป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบกเบเบธเปˆเบก, เบชเบนเบ™เป€เบชเบเบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบ›เบฐเป„เบงเป‰.

เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบชเบนเบ™เป€เบชเบเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบŸเบทเป‰เบ™เบŸเบนเบ‚เบญเบ‡เบกเบฑเบ™, เบเบธเปˆเบกเปเบฅเบฐเปเบ–เบงเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบญเปˆเบฒเบ™เปเบฅเบฐเบ‚เบฝเบ™.

เป‚เปเบ” Autoheal

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

เบขเบธเบ”เป‚เปเบ”เบŠเบปเบ™เป€เบœเบปเปˆเบฒเบชเปˆเบงเบ™เปœเป‰เบญเบเบŠเบปเปˆเบงเบ„เบฒเบง

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

RabbitMQ เบ—เบฝเบšเบเบฑเบš Kafka: เบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบžเป‰เบญเบกเบชเบนเบ‡เปƒเบ™เบเบธเปˆเบก
เป€เบ‚เบปเป‰เบฒ. 22. เบชเบฒเบกเบœเบนเป‰เป€เบœเบตเบเปเบœเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบชเบฒเบกเบ™เบฒเบเบซเบ™เป‰เบฒ. เบžเบฒเบเปƒเบ™, เบเบธเปˆเบกเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบชเบปเปˆเบ‡เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ—เบฑเบ‡เบซเบกเบปเบ”เป„เบ›เบซเบฒเปเบ–เบงเบ•เบปเป‰เบ™เบ•เปเปƒเบ™ Broker 2.

เป‚เบšเบฃเบเป€เบเบต 1 เปเบฅเบฐ 2 เบˆเบฒเบเบ™เบฑเป‰เบ™เปเบเบเบญเบญเบเบˆเบฒเบเบ™เบฒเบเปœเป‰เบฒ 3. เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบชเบปเปˆเบ‡เป€เบชเบตเบกเบšเปˆเบญเบ™เปเบฅเบเบ›เปˆเบฝเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เปเบกเปˆเปเบšเบš, เป‚เบšเบฃเบเป€เบเบต 3 เบˆเบฐเป‚เบˆเบฐ เปเบฅเบฐเบเบฒเบเป€เบ›เบฑเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰.

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

เป€เบกเบทเปˆเบญเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ–เบทเบเบŸเบทเป‰เบ™เบŸเบน, เบกเบฑเบ™เบˆเบฐเบเบฑเบšเบ„เบทเบ™เป„เบ›เบซเบฒเบเบธเปˆเบก.

เปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡เบญเบทเปˆเบ™เบ—เบตเปˆเปเบ–เบงเบ•เบปเป‰เบ™เบ•เปเปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™ Broker 3.

RabbitMQ เบ—เบฝเบšเบเบฑเบš Kafka: เบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบžเป‰เบญเบกเบชเบนเบ‡เปƒเบ™เบเบธเปˆเบก
เป€เบ‚เบปเป‰เบฒ. 24. เปเบ–เบงเบซเบผเบฑเบ 3 เบ™เบฒเบเปœเป‰เบฒ.

เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบเบฒเบ™เบชเบนเบ™เป€เบชเบเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ”เบฝเบงเบเบฑเบ™เป€เบเบตเบ”เบ‚เบถเป‰เบ™. เป‚เบšเบฃเบเป€เบเบต 3 เบขเบธเบ”เบŠเบปเปˆเบงเบ„เบฒเบง เป€เบžเบฒเบฐเบงเปˆเบฒเบกเบฑเบ™เบขเบนเปˆเปƒเบ™เบ”เป‰เบฒเบ™เบ™เป‰เบญเบเบเบงเปˆเบฒ. เปƒเบ™เบญเบตเบเบ”เป‰เบฒเบ™เบซเบ™เบถเปˆเบ‡, nodes เป€เบซเบฑเบ™เบงเปˆเบฒ Broker 3 เป„เบ”เป‰เบซเบผเบธเบ”เบฅเบปเบ‡, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบฐเบˆเบปเบเบ—เบตเปˆเป€เบเบปเปˆเบฒเปเบเปˆเบˆเบฒเบ Brokers 1 เปเบฅเบฐ 2 เบ–เบทเบเบชเบปเปˆเบ‡เป€เบชเบตเบกเป€เบ›เบฑเบ™เปเบกเปˆเบšเบปเบ”.

RabbitMQ เบ—เบฝเบšเบเบฑเบš Kafka: เบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบžเป‰เบญเบกเบชเบนเบ‡เปƒเบ™เบเบธเปˆเบก
เป€เบ‚เบปเป‰เบฒ. 25. เบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™เป„เบ›เบชเบนเปˆเบ™เบฒเบเปœเป‰เบฒ 2 เบ–เป‰เบฒเบ™เบฒเบเปœเป‰เบฒ 3 เบšเปเปˆเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰.

เป€เบกเบทเปˆเบญเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ–เบทเบเบŸเบทเป‰เบ™เบŸเบน, Broker 3 เบˆเบฐเป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบกเบเบธเปˆเบก.

RabbitMQ เบ—เบฝเบšเบเบฑเบš Kafka: เบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบžเป‰เบญเบกเบชเบนเบ‡เปƒเบ™เบเบธเปˆเบก
เป€เบ‚เบปเป‰เบฒ. 26. เบเบธเปˆเบกเป„เบ”เป‰เบเบฑเบšเบ„เบทเบ™เบชเบนเปˆเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ›เบปเบเบเบฐเบ•เบด.

เบชเบดเปˆเบ‡เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบˆเบฐเป€เบ‚เบปเป‰เบฒเปƒเบˆเบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰เปเบกเปˆเบ™เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบกเบตเบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡, เปเบ•เปˆเบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบ„เบงเบฒเบกเบžเป‰เบญเบก, เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒ เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ›เบฐเบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”เบเบฒเบ™เป‚เบญเบ™เบฅเบนเบเบ„เป‰เบฒเป„เบ›เบซเบฒเบชเปˆเบงเบ™เปƒเบซเบเปˆเบ‚เบญเบ‡เบžเบฒเบเบชเปˆเบงเบ™. เบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบชเปˆเบงเบ™เปƒเบซเบเปˆ, เบชเปˆเบงเบ™เบ•เบปเบงเบ‚เป‰เบญเบเบˆเบฐเป€เบฅเบทเบญเบเบฎเบนเบšเปเบšเบš Pause Minority, เปเบ•เปˆเบกเบฑเบ™เบเปเปˆเบ‚เบถเป‰เบ™เบเบฑเบšเบเปเบฅเบฐเบ™เบตเปเบ•เปˆเบฅเบฐเบ„เบปเบ™.

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

เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบฅเบนเบเบ„เป‰เบฒ

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

เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ‚เบญเบ‡โ€‹เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹:

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

เบเบฒเบ™เบ„เบปเป‰เบ™เบžเบปเบš

RabbitMQ clustering เบกเบตเบ‚เปเป‰เบ”เบตเปเบฅเบฐเบ‚เปเป‰เป€เบชเบเบ‚เบญเบ‡เบกเบฑเบ™. เบ‚เปเป‰เป€เบชเบเบ—เบตเปˆเบฎเป‰เบฒเบเปเบฎเบ‡เบ—เบตเปˆเบชเบธเบ”เปเบกเปˆเบ™เบงเปˆเบฒ:

  • เป€เบกเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบกเบเบธเปˆเบก, nodes เบเบปเบเป€เบฅเบตเบเบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ;
  • เบเบฒเบ™เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบเบฒเบ™ synchronization เป€เบฎเบฑเบ”เปƒเบซเป‰เปเบ–เบงเบšเปเปˆเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰.

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

  • เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ—เบตเปˆเบšเปเปˆเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบท.
  • เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ—เบตเปˆเบšเปเปˆเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบท.
  • เบ„เบดเบงเบเบฒเบงเบซเบผเบฒเบ.

เป€เบกเบทเปˆเบญเบกเบฑเบ™เบกเบฒเบเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ—เบตเปˆเบกเบตเปƒเบซเป‰เบชเบนเบ‡, เปƒเบซเป‰เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบ•เปเปˆเป„เบ›เบ™เบตเป‰:

  • ha-promote-on-failure=always
  • ha-sync-mode=manual
  • cluster_partition_handling=ignore (เบซเบผเบท autoheal)
  • เบ‚เปเป‰โ€‹เบ„เบงเบฒเบกโ€‹เบ—เบตเปˆโ€‹เบเบฑเบ‡โ€‹เบ„เบปเบ‡โ€‹เบ„เป‰เบฒเบ‡โ€‹
  • เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบฅเบนเบเบ„เป‰เบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบš node เบ—เบตเปˆเปƒเบŠเป‰เบงเบฝเบเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบšเบฒเบ‡ node เบฅเบปเป‰เบกเป€เบซเบฅเบง

เป€เบžเบทเปˆเบญเบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡ (เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™), เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ•เปเปˆเป„เบ›เบ™เบตเป‰:

  • Publisher เบขเบทเบ™เบขเบฑเบ™เปเบฅเบฐเบ„เบนเปˆเบกเบทเบเบฒเบ™เบฎเบฑเบšเบฎเบนเป‰เปƒเบ™เบเปˆเบฒเบเบœเบนเป‰เบšเปเบฅเบดเป‚เบžเบ
  • ha-promote-on-failure=when-synced, เบ–เป‰เบฒเบœเบนเป‰เป€เบœเบตเบเปเบœเปˆเบชเบฒเบกเบฒเบ”เบฅเบญเบ‡เปƒเปเปˆเปƒเบ™เบžเบฒเบเบซเบผเบฑเบ‡ เปเบฅเบฐเบ–เป‰เบฒเบ—เปˆเบฒเบ™เบกเบตเบšเปˆเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบซเบผเบฒเบ! เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เปƒเบชเปˆ =always.
  • ha-sync-mode=automatic (เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเบฎเบนเบšเปเบšเบšเบ„เบนเปˆเบกเบทเบ„เบดเบงเบ—เบตเปˆเบšเปเปˆเป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบญเบฒเบ”เบˆเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™; เบเบฑเบ‡เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบงเปˆเบฒเบ„เบงเบฒเบกเบšเปเปˆเบกเบตเบขเบนเปˆเบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบ‚เปเป‰เบ„เบงเบฒเบกเบชเบนเบ™เป€เบชเบ)
  • เบขเบธเบ”เป‚เปเบ”เบŠเบปเบ™เป€เบœเบปเปˆเบฒเบชเปˆเบงเบ™เปœเป‰เบญเบเบŠเบปเปˆเบงเบ„เบฒเบง
  • เบ‚เปเป‰โ€‹เบ„เบงเบฒเบกโ€‹เบ—เบตเปˆโ€‹เบเบฑเบ‡โ€‹เบ„เบปเบ‡โ€‹เบ„เป‰เบฒเบ‡โ€‹

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

เบ–เป‰เบฒเบ‚เป‰เบญเบเบžเบฒเบ”เบซเบเบฑเบ‡เบญเบตเบ, เบเบฐเบฅเบธเบ™เบฒเปเบˆเป‰เบ‡เปƒเบซเป‰เบ‚เป‰เบญเบเบฎเบนเป‰.

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

เบšเบปเบ”เบ„เบงเบฒเบกเบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒเปƒเบ™เบŠเบธเบ”:
เบญเบฑเบ™เบ”เบฑเบš 1 - habr.com/ru/company/itsumma/blog/416629
เบญเบฑเบ™เบ”เบฑเบš 2 - habr.com/ru/company/itsumma/blog/418389
เบญเบฑเบ™เบ”เบฑเบš 3 - habr.com/ru/company/itsumma/blog/437446

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

เบŠเบทเป‰เป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡ DDoS, เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ VPS VDS ๐Ÿ”ฅ เบŠเบทเป‰เป€เบงเบฑเบšเป„เบŠเบ—เปŒเป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ”เป‰เบงเบเบเบฒเบ™เบ›เป‰เบญเบ‡เบเบฑเบ™ DDoS, เป€เบŠเบตเบšเป€เบงเบต VPS VDS | ProHoster