เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเปƒเบˆเบ™เบฒเบเบซเบ™เป‰เบฒเบ‚เปเป‰เบ„เบงเบฒเบก. เบเบฒเบ™เบฎเบฝเบ™เบฎเบนเป‰เบเบปเบ™เป„เบเบเบฒเบ™เบชเบปเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเบเบฑเบš ActiveMQ เปเบฅเบฐ Kafka. เบšเบปเบ”เบ—เบต 3. Kafka

เบชเบทเบšเบ•เปเปˆเบเบฒเบ™เปเบ›เบžเบฒเบชเบฒเบ‚เบญเบ‡เบ›เบถเป‰เบกเบ™เป‰เบญเบ:
เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเปƒเบˆเบ™เบฒเบเบซเบ™เป‰เบฒเบ‚เปเป‰เบ„เบงเบฒเบก
author: Jakub Korab, เบœเบนเป‰เบˆเบฑเบ”เบžเบดเบก: O'Reilly Media, Inc., เบงเบฑเบ™เบ—เบตเบžเบดเบกเป€เบœเบตเบเปเบœเปˆ: เป€เบ”เบทเบญเบ™เบกเบดเบ–เบธเบ™เบฒ 2017, ISBN: 9781492049296.

เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเปˆเปเบ›เบœเปˆเบฒเบ™เบกเบฒ: เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเปƒเบˆเบ™เบฒเบเบซเบ™เป‰เบฒเบ‚เปเป‰เบ„เบงเบฒเบก. เบเบฒเบ™เบฎเบฝเบ™เบฎเบนเป‰เบเบปเบ™เป„เบเบเบฒเบ™เบชเบปเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเบเบฑเบš ActiveMQ เปเบฅเบฐ Kafka. เบšเบปเบ”เบ—เบต 1 เบšเบปเบ”เปเบ™เบฐเบ™เบณ

เบšเบปเบ”เบ—เบต 3

Kafka

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

เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบชเบนเบ‡เบชเบธเบ”เบ™เบตเป‰, เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบญเบทเปˆเบ™เป†เบเปเปˆเป€เบเบตเบ”เบ‚เบทเป‰เบ™เบ•เบฒเบกเบ—เปเบฒเบกเบฐเบŠเบฒเบ”. Kafka เบ„เบงเบ™:

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

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

เปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เบˆเบธเบ”เบซเบกเบฒเบเบ›เบฒเบเบ—เบฒเบ‡เบฅเบงเบก

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

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

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

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

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

เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเปƒเบˆเบ™เบฒเบเบซเบ™เป‰เบฒเบ‚เปเป‰เบ„เบงเบฒเบก. เบเบฒเบ™เบฎเบฝเบ™เบฎเบนเป‰เบเบปเบ™เป„เบเบเบฒเบ™เบชเบปเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเบเบฑเบš ActiveMQ เปเบฅเบฐ Kafka. เบšเบปเบ”เบ—เบต 3. Kafka
เบฎเบนเบšเบ—เบต 3-1. Kafka Partitions

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

เบเบณเบฅเบฑเบ‡เบญเปˆเบฒเบ™เบ‚เปเป‰เบ„เบงเบฒเบก

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

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

เบšเบฑเบ™เบซเบฒเบเบฒเบ™เบญเปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบชเบฐเปเบ”เบ‡เป„เบ”เป‰เบ”เบฑเปˆเบ‡เบ™เบตเป‰:

  • เบซเบปเบงโ€‹เบ‚เปเป‰โ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹เบซเบผเบฒเบโ€‹
  • เบซเบผเบฒเบเบเบธเปˆเบกเบ‚เบญเบ‡เบœเบนเป‰เบšเปเบฅเบดเป‚เบžเบเบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบซเบปเบงเบ‚เปเป‰เปƒเบ”เบซเบ™เบถเปˆเบ‡เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™
  • เบเบธเปˆเบกเบœเบนเป‰เบšเปเบฅเบดเป‚เบžเบเบชเบฒเบกเบฒเบ”เบกเบตเบซเบผเบฒเบเบ•เบปเบงเบขเปˆเบฒเบ‡เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ

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

เบœเบนเป‰เบšเปเบฅเบดเป‚เบžเบเปเบฅเบฐเบเบธเปˆเบกเบœเบนเป‰เบšเปเบฅเบดเป‚เบžเบ

เปƒเบซเป‰เป€เบญเบปเบฒเป€เบ›เบฑเบ™เบˆเบธเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบซเบปเบงเบ‚เปเป‰เบ—เบตเปˆเบกเบตเบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™เบซเบ™เบถเปˆเบ‡ (เบฎเบนเบšเบ—เบต 3-2).

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

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

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

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

เบœเบนเป‰เบšเปเบฅเบดเป‚เบžเบเปƒเบ™เบเบธเปˆเบกเบœเบนเป‰เบšเปเบฅเบดเป‚เบžเบ

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

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

เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบ™เบตเป‰, เปƒเบ™เบˆเปเบฒเบ™เบงเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบœเบนเป‰เบšเปเบฅเบดเป‚เบžเบเป€เบเบตเบ™เบˆเปเบฒเบ™เบงเบ™เบเบฒเบ™เปเบšเปˆเบ‡เบชเปˆเบงเบ™, เบชเบฒเบกเบฒเบ”เบ„เบดเบ”เบงเปˆเบฒเป€เบ›เบฑเบ™เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบœเบนเป‰เบšเปเบฅเบดเป‚เบžเบเบชเบฐเป€เบžเบฒเบฐ. เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™ "active-passive" (เบซเบผเบท "hot-warm") clustering เบ‚เบญเบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡เบœเบนเป‰เบšเปเบฅเบดเป‚เบžเบเบ‚เบญเบ‡เบ—เปˆเบฒเบ™, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ‚เบญเบ‡เบœเบนเป‰เบšเปเบฅเบดเป‚เบžเบเบซเบผเบฒเบเปƒเบ™เบ‚เบฐเบซเบ™เบฒเบ™ ("active-active" เบซเบผเบท "hot-hot") เปเบกเปˆเบ™เบ›เบปเบเบเบฐเบ•เบดเบซเบผเบฒเบเบเปˆเบงเบฒเบซเบผเบฒเบ. เบœเบนเป‰เบšเปเบฅเบดเป‚เบžเบ.

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

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

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

เบงเบดเบ—เบตเบเบฒเบ™ canonical เป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ™เบตเป‰เปƒเบ™ Kafka เปเบกเปˆเบ™เบเบฒเบ™เปƒเบŠเป‰ bะžเปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹เป€เบžเบตเปˆเบกโ€‹เป€เบ•เบตเบกโ€‹.

เบเบฒเบ™เปเบšเปˆเบ‡เบชเปˆเบงเบ™

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

เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเปƒเบˆเบ™เบฒเบเบซเบ™เป‰เบฒเบ‚เปเป‰เบ„เบงเบฒเบก. เบเบฒเบ™เบฎเบฝเบ™เบฎเบนเป‰เบเบปเบ™เป„เบเบเบฒเบ™เบชเบปเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเบเบฑเบš ActiveMQ เปเบฅเบฐ Kafka. เบšเบปเบ”เบ—เบต 3. Kafka
เบฎเบนเบš 3-5. เบœเบนเป‰เบšเปเบฅเบดเป‚เบžเบเบ„เบปเบ™เบซเบ™เบถเปˆเบ‡เบญเปˆเบฒเบ™เบˆเบฒเบเบซเบผเบฒเบเบžเบฒเบ—เบดเบŠเบฑเบ™

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

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

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

เป‚เบ„เบ‡เบเบฒเบ™เบ™เบตเป‰เบซเบผเบธเบ”เบฅเบปเบ‡เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเบ‚เบญเบ‡เบ„เบงเบฒเบกเบชเบฑเบšเบชเบปเบ™เบ‚เบญเบ‡เบ™เบฒเบเบซเบ™เป‰เบฒ Kafka เป€เบกเบทเปˆเบญเบ—เบฝเบšเบเบฑเบšเบเบฒเบ™เปเบˆเบเบขเบฒเบเบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบžเบทเปˆเบญเบฎเบฑเบเบชเบฒเปเบ–เบง JMS. เปƒเบ™เบ—เบตเปˆเบ™เบตเป‰เบ—เปˆเบฒเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบเบฑเบ‡เบงเบปเบ™เบเปˆเบฝเบงเบเบฑเบšเบˆเบธเบ”เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

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

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

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

เบเบณเบฅเบฑเบ‡เบชเบปเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบก

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

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

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

  1. เบšเบฑเบ™เบŠเบตเบœเบนเป‰เปƒเบŠเป‰เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒ.
  2. เป€เบ‡เบดเบ™เบ–เบทเบเป€เบ‚เบปเป‰เบฒเบšเบฑเบ™เบŠเบต.
  3. เบเบฒเบ™เป€เบ”เบตเบกเบžเบฑเบ™เปเบกเปˆเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เบ–เบญเบ™เป€เบ‡เบดเบ™เบญเบญเบเบˆเบฒเบเบšเบฑเบ™เบŠเบต.

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

เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบ™เบตเป‰เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒ:

interface Partitioner {
    int partition(String topic,
        Object key, byte[] keyBytes, Object value, byte[] valueBytes, Cluster cluster);
}

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

เบ‚เบฝเบ™เบเบธเบ”เบ—เบฐเบชเบฒเบ”เบเบฒเบ™เปเบšเปˆเบ‡เบชเปˆเบงเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบญเบ‡

เปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบชเบปเปˆเบ‡ metadata เบžเป‰เบญเบกเบเบฑเบš payload เบ‚เปเป‰เบ„เบงเบฒเบก. payload เปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปเบกเปˆเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบ‡เบดเบ™เบเบฒเบเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบšเบฑเบ™เบŠเบตเป€เบเบก. เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปเบกเปˆเบ™เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒเบˆเบฐเบšเปเปˆเบ–เบทเบเบ”เบฑเบ”เปเบ›เบ‡เปƒเบ™เบฅเบฐเบšเบปเบšเบชเบฒเบเบชเบปเปˆเบ‡เปเบฅเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบžเบฝเบ‡เปเบ•เปˆเบฅเบฐเบšเบปเบšเบชเบฒเบเบ™เป‰เปเบฒเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบชเบฒเบกเบฒเบ”เบฅเบดเป€เบฅเบตเปˆเบกเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ™เบฑเป‰เบ™. เปƒเบ™โ€‹เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹เบ™เบตเป‰โ€‹, เบฅเบฐโ€‹เบšเบปเบšโ€‹เบเบฒเบ™โ€‹เบชเบปเปˆเบ‡โ€‹เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบฎเบฑเบšโ€‹เป„เบ”เป‰โ€‹เบ•เบปเบโ€‹เบฅเบปเบ‡โ€‹เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบฅเบฒเบโ€‹เป€เบŠเบฑเบ™โ€‹เป€เบžเบทเปˆเบญโ€‹เบเบงเบ”โ€‹เบชเบญเบšโ€‹เบ‚เปเป‰โ€‹เบ„เบงเบฒเบกโ€‹.
เปƒเบ™ JMS เบ›เบปเบเบเบฐเบ•เบด, เบžเบงเบเป€เบฎเบปเบฒเบžเบฝเบ‡เปเบ•เปˆเบเปเบฒเบ™เบปเบ”เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ” "เบฅเบฒเบเป€เบŠเบฑเบ™เบ‚เปเป‰เบ„เบงเบฒเบก" เปเบฅเบฐเป€เบžเบตเปˆเบกเบกเบฑเบ™เปƒเบชเปˆเบ‚เปเป‰เบ„เบงเบฒเบก. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก, Kafka เบšเปเปˆเป„เบ”เป‰เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบเบปเบ™เป„เบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ–เปˆเบฒเบเบ—เบญเบ” metadata, เบžเบฝเบ‡เปเบ•เปˆเบฅเบฐเบซเบฑเบ”เปเบฅเบฐเบกเบนเบ™เบ„เปˆเบฒ.

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

{
  "signature": "541661622185851c248b41bf0cea7ad0",
  "accountId": "10007865234"
}

เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบกเบนเบ™เบ„เปˆเบฒเบ‚เบญเบ‡เบฅเบฒเบเป€เบŠเบฑเบ™เบˆเบฐเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เป„เบ›เบ•เบฒเบก payload, เบเบธเบ”เบ—เบฐเบชเบฒเบ” hashing เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบชเปˆเบงเบ™เบ•เบดเบ”เบ•เปเปˆเบ‚เบญเบ‡ Partitioner เบˆเบฐเบšเปเปˆเป€เบ›เบฑเบ™เบเบธเปˆเบกเบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ•เป‰เบญเบ‡เบ‚เบฝเบ™เบเบธเบ”เบ—เบฐเบชเบฒเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเป€เบญเบ‡เบ—เบตเปˆเบˆเบฐเบงเบดเป€เบ„เบฒเบฐเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ™เบตเป‰เปเบฅเบฐเปเบšเปˆเบ‡เบชเปˆเบงเบ™เบกเบนเบ™เบ„เปˆเบฒ accountId.

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

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

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

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

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

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

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

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

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

เบชเบฑเบ™เบเบฒเบœเบนเป‰เบœเบฐเบฅเบดเบ”

เบเบฒเบ™เปเบšเปˆเบ‡เบชเปˆเบงเบ™เบšเปเปˆเปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ”เบฝเบงเบ—เบตเปˆเบˆเบฐเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเปƒเบ™เป€เบงเบฅเบฒเบชเบปเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบก. เบฅเบญเบ‡เป€เบšเบดเปˆเบ‡เบงเบดเบ—เบตเบเบฒเบ™ send() เบ‚เบญเบ‡เบŠเบฑเป‰เบ™เบœเบนเป‰เบœเบฐเบฅเบดเบ”เปƒเบ™ Java API:

Future < RecordMetadata > send(ProducerRecord < K, V > record);
Future < RecordMetadata > send(ProducerRecord < K, V > record, Callback callback);

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

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

RecordMetadata metadata = producer.send(record).get();

เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบญเปˆเบฒเบ™เบ‚เปเป‰เบ„เบงเบฒเบก

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

ConsumerRecords < K, V > poll(long timeout);

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

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

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

เบเบฑเบšเบ„เบทเบ™เป„เบ›เบซเบฒเบฎเบนเบšเปเบšเบšเบเบฒเบ™เบญเปˆเบฒเบ™เบ—เบตเปˆเป„เบ”เป‰เบชเบปเบ™เบ—เบฐเบ™เบฒเบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰, เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบชเบฒเบกเบ‚เบฑเป‰เบ™เบ•เบญเบ™:

  1. เบ”เบถเบ‡โ€‹เบ‚เปเป‰โ€‹เบ„เบงเบฒเบกโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบญเปˆเบฒเบ™โ€‹.
  2. เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ‚เปเป‰เบ„เบงเบฒเบก.
  3. เบขเบทเบ™เบขเบฑเบ™เบ‚เปเป‰เบ„เบงเบฒเบก.

เบœเบนเป‰เบšเปเบฅเบดเป‚เบžเบ Kafka เบกเบฒเบžเป‰เบญเบกเบเบฑเบšเบ•เบปเบงเป€เบฅเบทเบญเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ enable.auto.commit. เบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเปƒเบŠเป‰เป€เบฅเบทเป‰เบญเบเป†, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ—เบตเปˆเบกเบตเบ„เปเบฒเบงเปˆเบฒ "เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”".

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

เปƒเบ™ Kafka 0.10, เบฅเบฐเบซเบฑเบ”เบฅเบนเบเบ„เป‰เบฒเป„เบ”เป‰เบ–เบทเบเบ›เปˆเบฝเบ™เปเบ›เบ‡เป€เบžเบทเปˆเบญเปƒเบซเป‰เบ„เปเบฒเบซเบกเบฑเป‰เบ™เบชเบฑเบ™เบเบฒเบ–เบทเบเบเบฐเบ•เบธเป‰เบ™เป€เบ›เบฑเบ™เปเบ•เปˆเบฅเบฐเป„เบฅเบเบฐเป‚เบ”เบเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบฅเบนเบเบ„เป‰เบฒ, เบ•เบฒเบกเบ—เบตเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”เป„เบงเป‰. auto.commit.interval.ms. เบžเบถเบ”เบ•เบดเบเปเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบขเบนเปˆเบšเปˆเบญเบ™เปƒเบ”เบšเปˆเบญเบ™เปœเบถเปˆเบ‡เบฅเบฐเบซเบงเปˆเบฒเบ‡เป‚เปเบ” JMS AUTO_ACKNOWLEDGE เปเบฅเบฐ DUPS_OK_ACKNOWLEDGE. เป€เบกเบทเปˆเบญเบ™เปเบฒเปƒเบŠเป‰ autocommit, เบ‚เปเป‰เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ–เบทเบเบชเบฑเบ™เบเบฒเป‚เบ”เบเบšเปเปˆเบ„เปเบฒเบ™เบถเบ‡เป€เบ–เบดเบ‡เบงเปˆเบฒเบžเบงเบเบกเบฑเบ™เบ–เบทเบเบ›เบธเบ‡เปเบ•เปˆเบ‡เบขเปˆเบฒเบ‡เปเบ—เป‰เบˆเบดเบ‡ - เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เป€เบเบตเบ”เบ‚เบทเป‰เบ™เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบœเบนเป‰เบšเปเบฅเบดเป‚เบžเบเบŠเป‰เบฒ. เบ–เป‰เบฒเบœเบนเป‰เบšเปเบฅเบดเป‚เบžเบเบเบปเบเป€เบฅเบตเบ, เบ‚เปเป‰เบ„เบงเบฒเบกเบˆเบฐเบ–เบทเบเบ”เบถเบ‡เบกเบฒเป‚เบ”เบเบœเบนเป‰เบšเปเบฅเบดเป‚เบžเบเบ•เปเปˆเป„เบ›, เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบˆเบฒเบเบ•เปเบฒเปเบซเบ™เปˆเบ‡เบ—เบตเปˆเบซเบกเบฑเป‰เบ™เบชเบฑเบ™เบเบฒ, เป€เบŠเบดเปˆเบ‡เบญเบฒเบ”เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบ‚เปเป‰เบ„เบงเบฒเบกเบžเบฒเบ”เป‚เบญเบเบฒเบ”. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, Kafka เบšเปเปˆเป„เบ”เป‰เบชเบนเบ™เป€เบชเบเบ‚เปเป‰เบ„เบงเบฒเบก, เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เบญเปˆเบฒเบ™เบžเบฝเบ‡เปเบ•เปˆเบšเปเปˆเป„เบ”เป‰เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบžเบงเบเบกเบฑเบ™.

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

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

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

เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ„เบงเบšโ€‹เบ„เบธเบกโ€‹เบ‚เบฐโ€‹เบšเบงเบ™โ€‹เบเบฒเบ™ offset commit เบ„เบนเปˆโ€‹เบกเบทโ€‹เปƒเบ™ Kafka consumer API เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒโ€‹เบžเบฒโ€‹เบฅเบฒโ€‹เบกเบดโ€‹เป€เบ•เบตโ€‹ enable.auto.commit เบœเบดเบ” เปเบฅเบฐ เป‚เบ—เบซเบฒเบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡เบงเบดเบ—เบตเปœเบถเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

void commitSync();
void commitAsync();

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ‚เปเป‰เบ„เบงเบฒเบก "เบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบเบซเบ™เบถเปˆเบ‡เบ„เบฑเป‰เบ‡", เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบŠเบปเบ”เป€เบŠเบตเบเบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡ commitSync()เป‚เบ”เบเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เปเบฒเบชเบฑเปˆเบ‡เบ™เบตเป‰เบ—เบฑเบ™เบ—เบตเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ‚เปเป‰เบ„เบงเบฒเบก.

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

  • เบกเป‰เบงเบ™เบ„เบทเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบ–เบทเบเบ›เบญเบกเปเบ›เบ‡เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”. เบœเบนเป‰เบšเปเบฅเบดเป‚เบžเบเป€เบญเบ‡เบ•เป‰เบญเบ‡เบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เบ—เบตเปˆเป€เบเบตเบ”เบˆเบฒเบเบเบฒเบ™เป‚เบซเบผเบ”เบ—เบตเปˆเบกเบตเบšเบฑเบ™เบซเบฒเปเบฅเบฐ backend outages, เบเป‰เบญเบ™เบงเปˆเบฒเบžเบงเบเป€เบ‚เบปเบฒเบšเปเปˆเบชเบฒเบกเบฒเบ”เบญเบตเบ‡เปƒเบชเปˆเบ™เบฒเบเบซเบ™เป‰เบฒเป€เบžเบทเปˆเบญเบชเบปเปˆเบ‡เบ„เบทเบ™เบ‚เปเป‰เบ„เบงเบฒเบก.
  • เบชเบปเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเป„เบ›เบซเบฒเบซเบผเบฒเบเบซเบปเบงเบ‚เปเป‰เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบนเบซเบ™เบถเปˆเบ‡. เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบซเบฑเบ™เปƒเบ™เป„เบงเป†เบ™เบตเป‰, เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบซเบปเบงเบ‚เปเป‰เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™เบชเบฒเบกเบฒเบ”เบญเบฒเป„เบชเบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เปƒเบ™เบเบธเปˆเบก Kafka เบ—เบตเปˆเบšเปเปˆเบ›เบฐเบชเบฒเบ™เบ‡เบฒเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเป€เบกเบทเปˆเบญเบชเบปเปˆเบ‡. เปƒเบ™เป€เบงเบฅเบฒเบ‚เบฝเบ™เบ™เบตเป‰, เบšเบฒเบ‡เบงเบฝเบเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบชเบดเปˆเบ‡เบ™เบตเป‰เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบเบฑเบš KIP-98.
  • เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบเบฒเบ™เบญเปˆเบฒเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเบซเบ™เบถเปˆเบ‡เบˆเบฒเบเบซเบปเบงเบ‚เปเป‰เบซเบ™เบถเปˆเบ‡เบเบฑเบšเบเบฒเบ™เบชเบปเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเบญเบทเปˆเบ™เป„เบ›เบซเบฒเบซเบปเบงเบ‚เปเป‰เบญเบทเปˆเบ™. เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡, เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ‚เบญเบ‡ Kafka เปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเป€เบญเบเบฐเบฅเบฒเบ”เบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบเบ—เบตเปˆเปเบฅเปˆเบ™เป€เบ›เบฑเบ™เบฅเบปเบ”เป€เบกเบซเบ™เบถเปˆเบ‡เปเบฅเบฐเบšเปเปˆเบกเบตเบเบฒเบ™เบžเบฐเบเบฒเบเบฒเบกเบ›เบดเบ”เบšเบฑเบ‡เบชเบดเปˆเบ‡เบ™เบตเป‰. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบšเปเปˆเบกเบตเบญเบปเบ‡เบ›เบฐเบเบญเบš API เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ เบœเบนเป‰เบšเปเบฅเบดเป‚เบžเบ ะธ เบœเบนเป‰เบœเบฐเบฅเบดเบ” เปƒเบ™เบ—เบธเบฅเบฐเบเปเบฒ. เปƒเบ™ JMS, เบ™เบตเป‰เปเบกเปˆเบ™เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เป‚เบ”เบเบงเบฑเบ”เบ–เบธ เบเบญเบ‡เบ›เบฐเบŠเบธเบกเบˆเบฒเบเบ—เบตเปˆเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™ MessageProducers ะธ MessageConsumers.

เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเบชเบฒเบกเบฒเบ”เบญเบตเบ‡เปƒเบชเปˆเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒ, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบชเบฐเบซเบ™เบญเบ‡เบ„เบงเบฒเบกเบซเบกเบฒเบเบ—เบตเปˆเปƒเบเป‰เบŠเบดเบ”เบเบฑเบšเบชเบดเปˆเบ‡เบ—เบตเปˆเบชเบฐเบซเบ™เบญเบ‡เป‚เบ”เบเบฅเบฐเบšเบปเบšเบเบฒเบ™เบชเบปเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบกเป„เบ”เป‰เปเบ™เบงเปƒเบ”?

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

void seek(TopicPartition partition, long offset);
void seekToBeginning(Collection < TopicPartition > partitions);

เบงเบดเบ—เบตเบเบฒเบ™ เบŠเบญเบเบซเบฒ() เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™
offsetsForTimes(เปเบœเบ™เบ—เบตเปˆ timestampsToSearch) เป€เบžเบทเปˆเบญเบเบฑเบšเบ„เบทเบ™เบชเบนเปˆเบชเบฐเบ–เบฒเบ™เบฐเปƒเบ™เบšเบฒเบ‡เบˆเบธเบ”เบชเบฐเป€เบžเบฒเบฐเปƒเบ™เบญเบฐเบ”เบตเบ”.

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

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

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

เบกเบตเปƒเบซเป‰เบชเบนเบ‡

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

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

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

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

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

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

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

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

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

เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบœเบนเป‰เบœเบฐเบฅเบดเบ”เปเบกเปˆเบ™เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต acks, เป€เบŠเบดเปˆเบ‡เบเปเบฒเบ™เบปเบ”เบˆเปเบฒเบ™เบงเบ™ replicas เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบฎเบฑเบšเบฎเบนเป‰ (เบฎเบฑเบšเบฎเบนเป‰) เบ‚เปเป‰เบ„เบงเบฒเบกเบเปˆเบญเบ™เบ—เบตเปˆเบเบฐเบ—เบนเป‰เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบˆเบฐเบชเบทเบšเบ•เปเปˆเบชเบปเปˆเบ‡: 0, 1, เบซเบผเบทเบ—เบฑเบ‡เบซเบกเบปเบ”. เบ–เป‰เบฒเบ•เบฑเป‰เบ‡เป€เบ›เบฑเบ™ เบ—เบฑเบ‡เบซเบกเบปเบ”, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เป€เบกเบทเปˆเบญเป„เบ”เป‰เบฎเบฑเบšเบ‚เปเป‰เบ„เบงเบฒเบก, เบœเบนเป‰เบ™เปเบฒเบˆเบฐเบชเบปเปˆเบ‡เบ„เปเบฒเบขเบทเบ™เบขเบฑเบ™เบเบฑเบšเบ„เบทเบ™เป„เบ›เบšเปˆเบญเบ™เบœเบนเป‰เบœเบฐเบฅเบดเบ”เบ—เบฑเบ™เบ—เบตเบ—เบตเปˆเบกเบฑเบ™เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบขเบทเบ™เบขเบฑเบ™ (เบเบฒเบ™เบฎเบฑเบšเบฎเบนเป‰) เบ‚เบญเบ‡เบšเบฑเบ™เบ—เบถเบเบˆเบฒเบเบซเบผเบฒเบเป† cues (เบฅเบงเบกเบ—เบฑเบ‡เบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡) เบเปเบฒเบ™เบปเบ”เป‚เบ”เบเบซเบปเบงเบ‚เปเป‰เบ•เบฑเป‰เบ‡. min.insync.replicas (เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ 1). เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบ‚เปเป‰โ€‹เบ„เบงเบฒเบกโ€‹เบšเปเปˆโ€‹เบชเบฒโ€‹เบกเบฒเบ” replicated เบชเบปเบšโ€‹เบœเบปเบ™โ€‹เบชเปเบฒโ€‹เป€เบฅเบฑเบ”โ€‹, เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ™เบฑเป‰เบ™โ€‹เบœเบนเป‰โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เบˆเบฐโ€‹เบเบปเบโ€‹เป€เบงเบฑเป‰เบ™โ€‹เบ„เปเบฒโ€‹เบฎเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบฑเบ (NotEnoughReplicas เบซเบผเบท NotEnoughReplicasAfterAppend).

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

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

เป‚เบ”เบเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เป‚เบ„เบ‡เบเบฒเบ™เบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡เบ™เบตเป‰, Kafka เบชเบฐเบซเบฅเบฒเบ”เบซเบฅเบตเบเบฅเปˆเบฝเบ‡เบ„เบงเบฒเบกเบˆเปเบฒเป€เบ›เบฑเบ™เปƒเบ™เบเบฒเบ™เบ‚เบฝเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเปเบ•เปˆเบฅเบฐเบ„เบปเบ™เปƒเบชเปˆเปเบœเปˆเบ™เบ”เบดเบ”เบ”เป‰เบงเบเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™. sync(). เปเบ•เปˆเบฅเบฐเบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบ–เบทเบเบชเบปเปˆเบ‡เป‚เบ”เบเบœเบนเป‰เบœเบฐเบฅเบดเบ”เบˆเบฐเบ–เบทเบเบ‚เบฝเบ™เปƒเบชเปˆเบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เปเบšเปˆเบ‡เบชเปˆเบงเบ™, เปเบ•เปˆเบ”เบฑเปˆเบ‡เบ—เบตเปˆเป„เบ”เป‰เบชเบปเบ™เบ—เบฐเบ™เบฒเปƒเบ™เบšเบปเบ”เบ—เบต 2, เบเบฒเบ™เบ‚เบฝเบ™เป„เบŸเบฅเปŒเปเบกเปˆเบ™เป€เบฎเบฑเบ”เปƒเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เปƒเบ™ buffer เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™. เบ–เป‰เบฒเบ‚เปเป‰เบ„เบงเบฒเบกเบ™เบตเป‰เบ–เบทเบเบˆเปเบฒเบฅเบญเบ‡เบเบฑเบšเบ•เบปเบงเบขเปˆเบฒเบ‡ Kafka เบญเบทเปˆเบ™เปเบฅเบฐเบขเบนเปˆเปƒเบ™เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบ‚เบญเบ‡เบกเบฑเบ™, เบเบฒเบ™เบชเบนเบ™เป€เบชเบเบœเบนเป‰เบ™เปเบฒเบšเปเปˆเป„เบ”เป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบ‚เปเป‰เบ„เบงเบฒเบกเบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡เป„เบ”เป‰เบชเบนเบ™เป€เบชเบ - เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเป„เบ›เป‚เบ”เบ replica synchronized.
เบเบฒเบ™เบ›เบฐเบ•เบดเป€เบชเบ”เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™ sync() เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ Kafka เบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบ‚เปเป‰เบ„เบงเบฒเบกเป„เบงเป€เบ—เบปเปˆเบฒเบ—เบตเปˆเบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบ‚เบฝเบ™เบžเบงเบเบกเบฑเบ™เป„เบงเป‰เปƒเบ™เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒ. เบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบก, เบเบดเปˆเบ‡เป€เบˆเบปเป‰เบฒเบชเบฒเบกเบฒเบ”เบซเบผเบตเบเบฅเปˆเบฝเบ‡เบเบฒเบ™เบฅเป‰เบฒเบ‡เปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณเป„เบ›เปƒเบชเปˆเปเบœเปˆเบ™เป„เบ”เป‰เบ”เบปเบ™เป€เบ—เบปเปˆเบฒเปƒเบ”, เบเปเปˆเบเบดเปˆเบ‡เบ”เบตเบเบงเปˆเบฒ. เบชเปเบฒเบฅเบฑเบšเป€เบซเบ”เบœเบปเบ™เบ™เบตเป‰, เบกเบฑเบ™เบšเปเปˆเปเบกเปˆเบ™เป€เบฅเบทเปˆเบญเบ‡เปเบ›เบเบ—เบตเปˆเบ™เบฒเบเบซเบ™เป‰เบฒ Kafka เบˆเบฐเบ–เบทเบเบˆเบฑเบ”เบชเบฑเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ 64 GB เบซเบผเบทเบซเบผเบฒเบเบเบงเปˆเบฒเบ™เบฑเป‰เบ™. เบเบฒเบ™เปƒเบŠเป‰เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบ•เบปเบงเบขเปˆเบฒเบ‡ Kafka เบ”เบฝเบงเบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป„เบ”เป‰เบขเปˆเบฒเบ‡เบ‡เปˆเบฒเบเบ”เบฒเบเบ”เป‰เบงเบเบ„เบงเบฒเบกเป„เบงเบซเบผเบฒเบเบžเบฑเบ™เป€เบ—เบทเปˆเบญเป„เบงเบเปˆเบงเบฒเบ™เบฒเบเบซเบ™เป‰เบฒเบ‚เปเป‰เบ„เบงเบฒเบกเปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบก.

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

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

เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš

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

เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเปˆเปเบ›เบœเปˆเบฒเบ™เบกเบฒ: เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเปƒเบˆเบ™เบฒเบเบซเบ™เป‰เบฒเบ‚เปเป‰เบ„เบงเบฒเบก. เบเบฒเบ™เบฎเบฝเบ™เบฎเบนเป‰เบเบปเบ™เป„เบเบเบฒเบ™เบชเบปเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเบเบฑเบš ActiveMQ เปเบฅเบฐ Kafka. เบšเบปเบ”เบ—เบต 1

เบเบฒเบ™เปเบ›เบชเบณเป€เบฅเบฑเบ”เปเบฅเป‰เบง: tele.gg/middle_java

เบ•เบดเบ”โ€‹เบ•เบฒเบกโ€‹เบ•เบญเบ™โ€‹เบ•เปเปˆโ€‹เป„เบ›โ€ฆ

เบžเบฝเบ‡เปเบ•เปˆเบœเบนเป‰เปƒเบŠเป‰เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบกเปƒเบ™เบเบฒเบ™เบชเปเบฒเบซเบผเบงเบ”. เป€เบ‚เบปเป‰เบฒโ€‹เบชเบนเปˆโ€‹เบฅเบฐโ€‹เบšเบปเบšเบเบฐเบฅเบธเบ™เบฒ.

Kafka เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบญเบปเบ‡เบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบšเป?

  • เปเบกเปˆเบ™โ€‹เปเบฅเป‰เบง

  • เบšเปเปˆโ€‹เบกเบต

  • เป€เบกเบทเปˆเบญเบเปˆเบญเบ™เปƒเบŠเป‰, เบ”เบฝเบงเบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰

  • เบžเบงเบเป€เบฎเบปเบฒเบงเบฒเบ‡เปเบœเบ™เบ—เบตเปˆเบˆเบฐเบ™เปเบฒเปƒเบŠเป‰

38 เบœเบนเป‰เปƒเบŠเป‰เบฅเบปเบ‡เบ„เบฐเปเบ™เบ™เบชเบฝเบ‡. 8 เบœเบนเป‰เปƒเบŠเป‰เบ‡เบปเบ”.

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

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