ααΆαααααααΆαααααααααααα
ααΌα
αα½αα
ααΆααααααΉαα’αααΈαααα½ααααααΆαααΆα
α’ααααα·ααααα Jakub Korab α’αααααααα»αααααααΆαα O'Reilly Media, Inc. ααΆαααα·α
ααααααααΆαααααα»αααααααΆαα αααα·αα»ααΆ ααααΆα α’α α‘α§ ISBNα 2017α
ααααααααααΆαααααααααΈαα»αα
ααααΌαααΈ 3
ααΆααΆααΆα
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 ααΆαααααα ααΆααΎααΆαααΆααα½αααΆααααΌαααααΎααΆααα α ααΎαααΉααα·αα·αααααΎαααΏααααα±ααααΆαααααααα’α·ααα ααααααααα
ααΆαα’αΆαααΆα
αααΆαααΈαααααααααα ααα’αΆαααΆααααααααααααααα·α αααααΆααααααα α ααΆ αααα»αα’αααααααΎααααΆαααααα ααα’α»ααα α’α»α αααα·α ααΆααα αααα»αααΆαααΆαα α’α»α αααα·αααΊααΆααΈααΆαααααααααααα αΆααααααΎααα 0 αα αααα αΆααααααΎαααΆαααΆαα αααα»αα’αααααααΎααααΆααααα ααααα αααα»α API ααΆαααα group_id αααααααααααα’αααααααΎααααΆαα ααααΌαααααΆαα ααΉα α’αααααααΎααααΆαα α¬ααααααααα‘αΌααΈαααα½αα.
ααααααααααααΎααΆαααΆαα αααΎαα’αΆααα·ααααααααΈαα·ααα αααααααΎα§ααΆα ααα αα·ααααααααααΆαα αααΎα ααΎααααΈααααΎαααΆαααΆαααααααααΆα ααΌα αααα ααΆααααααΆβααΉαβααΆαβααααΈβα’αααααααΎααααΆααβααΆα αααΎαβαααβα αααααααβαααα»αβα’αααααααΎααααΆααβααΌα ααααΆα
αααα αΆααααΆαα’αΆαα’αΆα ααααΌαααΆαααααΆαααΌα ααΆαααααα:
- αααααΆαααααΆαααΆαααΆαα αααΎαα
- αααα»αα’αααααααΎααααΆααααΆα αααΎαα’αΆα ααααΎαααααΆααααα½ααααα»αααααααα½α
- αααα»αα’αααααααΎααααΆααα’αΆα ααΆαα§ααΆα αααααΆα ααααα‘ααααΆα αααΎαα
αααβααΆβαααα αΆβα αααΎαβαα βα αααΎαβαααβαα·αβααααΆααα ααΎααααΈαααααΈααααααα Kafka αααααααΆαααααΆαααααααααΆααααα»αα’αααααααΎααααΆαα ααααΈα’αααααααΎααααΆαα αα·αααΆαααΆα ααΌααααα‘ααααΎααααααΈααααααΆααΈαααΌααααΆαα’αΆααααααΆαααααααα»αααααΆαααΆααααΆααα
αααα»αα’αααααααΎααααΆαα αα·αα’αααααααΎααααΆαα
ααΌαβααβααΆβα
ααα»α
βα
αΆααβααααΎαβαααααΆαααβαα½αβαααβααΆαβααΆαβααΆαβαα½α (
ααΌαααΆαααΈ 3-2 α α’αααααααΎααααΆααα’αΆαααΈααΆαααΆα
αα
ααααααα’αα·αα·ααααααΎααααΆααααααΆααααΆαα½α group_id αααααααα½ααα
ααΉααααααΆαααααα ααΆααααΌαααΆααααααααΆαααΆαα’αΆα αα·αα’α»α αααα·ααα
αααα»αααΆαααΆααααα ααΈααΆααααα’α»α αααα·ααααα’αΆα
ααααααα
ααΆαααααααααα
αααα»ααααΆαααΈααααααααΆααααα·α
αα
ααΈααΆααααααΈαααα»α (ααΆαααααΈαααα»α) α¬ααΈααΆααααααΌααααα»α (ααΆαα
αΆαααααα»α)α α’αααααααΎααααΆααααααΎαα»α (ααΆααααααααα·) ααΆαααΈαααααΆααα ααααααααΆαα±αααα½αααα’αΆαααΆαααααααααΆααααΈαααααα ααα»α
ααΈααΆααα’α»α αααα·αααααΌαααΆαααααααααΆαααΆααααααΆαααααα‘αααα
Kafka α αΎααααααΆαα»αααΆααΆααα
αααα»ααααααΆααααααααααα»α _consumer_offsets. ααΆααααα’αΆααα
αααα·αααααΌαααΆααα»α αα·αααΌα
αααα½ααααααΆαααααααΆαα α αΎαα’αα·αα·ααα’αΆα
ααααα·αα’α»α αααα·αα‘αΎααα·α ααΎααααΈααααΎαααΆαααΆααααααΆαααΎααα½α
α αΎαα‘αΎααα·αα
αα
ααααααα’αααααααΎααααΆαααααααα·ααααΆααΈααΈαααααΆαααααααααΎ group_id αααααααααΆ ααΆαααααααααααααα·α
ααΈααΈααααα―αααΆαααααΈααΈαα½α (
ααΌαααΆαααΈ 3-3 α α’αααααααΎααααΆααααΈαααΆαααα
αααα»ααααα»αα’αααααααΎααααΆαααααααααααΆα’αΆαααΈααΆαααΆαααΌα
ααααΆα
α’αααααααΎααααΆαααα αααα»ααααα»αα’αααααααΎααααΆαα
αα
ααααααα’αα·αα·ααααααΎααααΆαααα½αα’αΆααα·ααααααααΈααΆαααΆα ααΆααΆαααΆααααααααααααααααααααααα·α
αα·αααααΎαααΆαααΆαααΌα
αααααΆααα·αααααΆαα
αααα»αααααααα»αα
ααααα·αααΎααααΈααΆα
αααΎαααα’αααααααΎααααΆααααααΌαααΆαααααΆααααΆαα½α group_id ααΌα
ααααΆαα
ααΉααααααΆααααααααΆαααΆαααΆααα½α αααα§ααΆα ααααααααααΆααα
α»ααααααααΉαααααΌαααΆααααααααΆααααααααααααΎααααα·α
α αΎαα
αΆααααΈααααααααααΆααΉαααα½αααΆαααΆααα’αα (
ααΌαααΆαααΈ 3-4 α α’αααααααΎααααΆααααΈαααΆαααα
αααα»ααααα»αα’αααααααΎααααΆααααΌα
ααααΆα’αΆαααΈααΆαααΆαααΌα
ααααΆα
ααααααααααΎαααΆαααα αααα ααα½αααααααΈα’αααααααΎααααΆααααΎαααΈα ααα½αααΆαααΆα α’αΆα ααααΌαααΆααα·αααΆααΆααααααααα’αααααααΎααααΆααααααΆα ααα»αα ααΆα’αΆα ααΆαααααααααααααα·αααΎα’αααααααΌαααΆα "ααααα-α’αααα" (α¬ "αααα -αααα ") α αααααααααααΈα’αααααααΎααααΆααααααα’ααα αααααΈααΆααααΎαααΆαα’αααααααΎααααΆααα αααΎαααααααααΆ ("ααααα-ααααα" α¬ "αααα -αααα ") ααΊααΆαααααααααααααΆααΆαα α’αααααααΎααααΆααα
α₯αα·ααΆααααααΆαα ααα αΆαααΆααααααΆααα·αααααΆααΆαααΎα’αΆα αα½αα±ααααααΆααααα’αΎαααΎαααααααααα ααΉαααααααααα½α JMS ααααααΆααΆαα₯αα·ααΆααα αα αααα»αααααΌααα ααΆααααααΆαααααΎαα ααΆαααα½αααΉαααααΌαααΆαα ααα αΆαααααΎαααααΆαααΆαα’αααααααΎααααΆααααΆααααΈαα
ααΆααΉαααΆαααααα»α αα ααααααααΎααααααΎαα’αααααααΎααααΆααα αααΎα ααΎαααααΎααΌα αααααΎααααΈααααΎαααΆαααΆαααααααααΆ α¬ααΎααααΈαααααΎαααααΏαααααΆαα’αΆα α¬αααααΎααααααααΆαααααααΎαααΆαα’αΆαα αααααΆαβααβα’αααβααααΎβααααΆααβααβαα½αβαααβα’αΆα βα’αΆαβαα·ααααααβααΈβααΆαβααΆαβαααα»αβαααβαα½α ααΎβααΆβααααΌαβααΆαβαααααα βαααβααααβααΆβαα βαααα»α Kafka?
αα·ααΈαα½αααΎααααΈααααΎααΌα ααααααΊααααΌαααααΎα§ααΆα αααα’αααααααΎααααΆαααααα½αααΎααααΈα’αΆαααΆαααΆααα’αα α αΎααααααΌαααΆαα αααα»ααααααααα‘αΆαα ααααααααααα·ααΈααΆαααααααααααααΎαααααΎαααΆαααααΎαααΆα ααΆαααααΎαααΆααααα»αααααΆααααααααα·ααααΆα’αααααααΎααααΆαα α αΎααα·αααααΎα’αααΈααΎααααΈαααααΎαααΆαααΉαααΆαααααααααααα’αΆααααααα ααααα·αααΎα αααΆααα αααααα½αααα’αααααααΎααααΆααααααΆααα α»ααααααΆαααΆαααΆα αα ααααα’αααα·αααΈ α¬ααααΉαααα·ααΆαααααααααααααΆααα ααΆαααααΉααααα
αααααααΆα Canonical ααΎααααΈαααααααΆααααα αΆααααα Kafka ααΊααααΌαααααΎ αΠααΆαααΆαα αααΎααααα
ααΆααααα αα
ααΆαααΆαααΊααΆααααααΆαα
αααααααααΆααααΆαα’αΆαααααααααΆ αα·αααααΎααΆαααααααΆααααααΆαααααΎαααΈααααα·ααααααΌαααα§ααΆα ααααααα½ααααααΆααααα½αα ααΎααααΈαααααΆααααα
αααΆαα ααΌαααΎααα·α
αΆαααΆα’αααΈααααΆαααΆααααααΆααααααΆααααααααΆαααΆαααΈα α αΎαα’αααααααΎααααΆααααααΆααααΆαααΆααααααΆαααααα (
ααΌαααΆαααΈ 3-5 α α’αααααααΎααααΆααααααΆααα’αΆαααΈααΆαα
αααΎαα
αα
αααα»αααααΆααΈαααΌααα α’αααααααΎααααΆααααααΌαααΆααααααααΆααααααααααααΎααααα·α
αααααααΌαααααΆααΉα group_id ααααααΆαα
αααα»αααΆαααΆαααΆααααΈα α αΎαα
αΆααααααΎαα’αΆαααΆαααΈααΆαααΆααααΈαα
αα
ααααααα’αααααααΎααααΆαααααααααααααΆαα group_id ααΌα
ααααΆααααΌαααΆααααααααα
αααααΆαααααα Kafka αααααααΈααΆαααα½αααααΆαααΆαααΈα’αααααααΎααααΆααααΈαα½ααα
α’αααααααΎααααΆααααΈααΈαα αααααΆααααΈααα ααααΈααΈαα½ααααα’αααααααΎααααΆααααΉαα’αΆαααΈααααααα½ααααααααΆααα (
ααΎααααΈααΆααΆααΆααΆαααααΌαααΆαααααΎαααΆαααααααααΆαααα»α 20 αααα α’αααααααΌαααΆαααΆαααΆααααΆαα αα ααΆαα 20 α ααααα·αααΎααΆαααΆαααΆααα·α ααΆαααα α’αααααΉαααααΌααα»αα²ααα’αααααααΎααααΆαααααααααΆαα’αααΈααααΌαααααΎαααΆα ααΌα αααααΆααα·αααααΆααΈαα»ααα αααα»αααΆααα·ααΆααααΆα’αααΈα’αααααααΎααααΆααααααΆα ααα»αα
ααΌαααΆαααΈ 3-6 α α’αααααααΎααααΆααααΈαααΆαααα
αααα»ααααα»αα’αααααααΎααααΆααααΌα
ααααΆα’αΆαααΈααΆααααααααααΆ
αααααααΆααααααααΆααααααααααΆαααααΆααααΌαααΆααααα»αααααΆααααααα½ααααααΆα Kafka ααΎαααααααααα ααΉαααΆαα ααα αΆαααΆααααααααΌαααΆαααΎααααΈαααααΆαα½α JMS α αα ααΈαααα’ααααα·αα αΆαααΆα ααααα½αααΆααααα’αααΈα ααα»α ααΆααααααα
- α’αααααααΎααααΆααααΆααααα½αααα½αααΆαααΆααααααΆαα αααααα’ααααΎααΆααααα αααα»ααα·ααα»α αααααααΆααα αα α»ααααααααααΆαααΆαααααΆααα»ααα»α α¬ααΆαααΈαα»α (αααααΆαααααα»αααΆα JMS)α
- ααΆαααΆαααααααΌαααααΎαα ααΆααα’αααααααΎααααΆαα αα·αααΆααΎαα½ααααα½αααααααΌαααΆααααααΌαα‘αΎααα·ααααα»αααααΈαααΆαααα
αααα½ααααααΆα Kafka ααΆααα’ααααααΌαααααΎααΊαααααΌαααΆαααΆαααααΆααααααααα ααΆααα’αααααααΎααααΆαααα ααααααα’αααααααΎαα»ααααααααα
αααααΆαααΆαααΆααααα αααααΌαααΆααααααΆααααΆαααααΌααααααΆαα’αΆα αα·ααααααΌαααΆαααααααΆαααα‘αΎααα·ααα·αααΆαααα ααΆαα - αααα½ααα»αααααΌααααααΆαααα½αααααααΆααααααααααΆααααΈαααα½ααααααΆααα α’αα·αα·ααα αααααΆααααααΆαα½αααααααΌααααααα αααα»αααααΈαα αααα»ααααααΌαααααα’αααα
ααΆαααααΎααΆα
ααΆααΆαααα½ααα»αααααΌαααααα’αααααα·αααΆαααααααα»αααΆααααααα α α·αααααΆααΎααΆαααΆαααΆαααααααΌαααααΎααΆααα α ααΎααααΈαααααΈααααααΆααααααΆααααΌαααΆαααααΎααααΌα ααΎαααααΌααα·α αΆαααΆααΆααΎααΎααααα»αααααΎα’αααΈαα·αααααΆααα
α ααααα―αα αααα»α JMS ααΎαααααΎαα ααΆααααααααααΆααααααΆααα·ααααααααααΆ (ααααααΆ αα·ααααααααααααααα·) αα·ααα½αααααΆααααα»αααααα»α (ααααα»α) αα αααα»α Kafka ααΆαααΊ ααΌ "ααααααααααΉα". ααααα»αααΆαααααΌαααΆαααααΎααΆαααααα αααααΆααα·αααα ααααααΌαααΆαααααΎααΆα αααααααααΆααααΆααααα αα α αΎαααααΌαααααΆα αααααΉαααΆααααΆαααααααααα·ααααΆα’αΆααΈαααααααΎααααΈβααΆααβααΆαβαααβααΆααβααβαααα»αβααΆαβααΆαβααΌα βααααΆα
αα αααα»αααααΌαααΈ 2 ααΎαααΆααα·ααΆααααΆα’αααΈααααΆααΈαααΌααααΆααα’αα‘αΆα αααααααΉαααα·ααΆααααααααΆαααααααααααΌαααααΎαααΆαααΆαααααΆααααααααααα’αααααααΎααααΆαααααα½αα
- ααααΈα’αααααααΎααααΆααααααΌαααΆαααααααα ααΆααααααααα
- αα»αααααΌαααΆααααα αΌααα αααα»αααααΈα
- ααΆαααααΆααααααΌαααΆαααααΎα‘αΎααααααααααΆααα ααααΈααααΈα
ααααα·αααΎααααΉαααα·ααΆαααααΈαα½ααααΊααΆααΆααααααΆααααα αααα
ααΆαααααααΆααα αααααααααααΆαα·ααΉαααααΆαααΆααααααααΆααααααΈα
αα
ααααααααΆαααααΌαααΆαααααΎαααααααΎ Kafka Producer API ααΆααααΌαααΆααααααΌααα
αα»αααΆαααΆαααΆαααααααααααΆα αα·αααααΆαααΆααα
αα
α»αααααααααααα»α Kafka αααα‘ααααααααααΆααααααΆαααΆααααααΆααα½αααααααΌαααΆαααααΎα αααααααα·ααααααααααΌαααΆαα’αα»αααααα
αααα»α Java ααΆααααα
ααα»α
αααααΆαα Partitioner α
α ααα»α αααααΆαααααααΎααα ααΌα αααα
interface Partitioner {
int partition(String topic,
Object key, byte[] keyBytes, Object value, byte[] valueBytes, Cluster cluster);
}
ααΆαα’αα»αααα Partitioner ααααΎαααα½ααααααααΆαααΆαααααααααααααααΌαα ααααΆαααΎαααΎαααααΉαααΎααααΈαααααααΆαααΆα α¬ round-robin ααααα·αααΎααααΆαααααΆααα α»α ααααΌαααΆααααααΆααα αααααααααΆαααΎααααααααΎαααΆαααα’αααα»αααααΈααΆαα αααΎαα ααααααΆαααΆααααααα αααα’ααΆααα’αααααΉαα αααααααααααααα½αα―αα
ααααααα»αααααΆαααααααααααααα½αα―α
ααΌααααα‘ααααΎαα§ααΆα ααααα½ααααα’αααα
ααααααΎαα·ααααααααααΆαα½αααΆαα½αααΉαααααα»αααΆαα ααααα»ααααα»αα§ααΆα αααααααααΎαααΊααΆααΆαααααΆαααΎααααΈααΆααααααΆαααα
αααα»αααααΈα ααααα ααΆαααααΆαααΊααΆα’αααΈαα½ααααααΎαα
ααααΆααΆααΆαα·αααααΌαααΆααααααααα
ααΎααΆααααααΌα αα·αα
ααααααΆααααΆααΆαααααααααααααΆαααΎααααα½αα±αααα»αα
α·αααααα»ααααααααα’αΆα
α
αΆααααααΎαααΆαααααΆααααα αααα»αααααΈααα ααααααααααααΎ αα·αααα½ααααααααααΎααΆαααααΎααααΆααα αααααααΆααΎααααΈαααααααααΆααααΆαα
αα
αααα»α JMS ααααααΆ ααΎαααααααααααα "α αααααααΆααΆα" α αΎαααααααααΆαα
αααα»αααΆαα αααααΆαααΆαααΆααααα Kafka αα·ααααααα±ααααΎαααΌαααααααΆααααααΆααααΆαααααααΆαααα·ααααααααααΆαα ααΆααααααααΉα αα·ααααααααα»αααααα
αααααΆααααααααΊααΆααααα»ααααααααααΆααααΆααααΆααΆααααααΆαααααΉαααααΌααααααΎαα αααααααΆαα»α ααΎαααααΆααααααΎαα’αααΈαααα ααΈααααααα ααΆαααααααααα·αααααααααααααΌαααααΎαααα»ααααααααα ααααααααααΆααΎαααααΌαααΆαααααααααΆααααααΈαααααΆααααΆααααα αα αααααΆαααΆαααΆααα’αααααααΆααααααΉαααααΈααααΌαααααααΎαααΆαααΆαααααΆααααααα ααΎαααΉααααααΎααα ααΆαααααααα JSON ααΌα ααΆααααααα
{
"signature": "541661622185851c248b41bf0cea7ad0",
"accountId": "10007865234"
}
αααααΆααααααααα αααααααΆααΉααααααααα½αα’αΆαααααααΎααααα»α αα»αααααΆααααααααααααααΆαααΎαααα ααα»α αααααΆαα Partitioner ααΉααα·ααα»αααΆαααα»αααΆααααααΆααααααααααααα ααΌα αααα ααΎαβααΉαβααααΌαβαααααβαα»αααααΆαααααβααααΆααβαααα½αβααααβααΎαβαααβααΉαβαααβαααααΉαβααα αα·αβαααα ααβααααα accountIdα
Kafka αα½ααααα αΌαααΆαααααααααΎααααΈααααΎαα’αααΎαα»αααα½αααααΆααα αααα»αα αΆα α αΎαααΆααααα»ααααααααααα»αααΆααα»ααααα·ααΆαα αααααΈααΆαααΆααααααααα αααααΌαααΆαααΆααααΆααααα§ααααΆα ααααααΌα ααΆ ααααααααααΆαααΎ αα½αααΆαααα α‘αΎαα
αα»αααααΆααααααααα ααααΆαααααα’αααααααΎααααΌαααααΆααΆααΆααΆααααααΆαααααααααΆααα’αααααα αααααα»αααΆαααΆααααα½αα αααααααααααΆα αΆααααΌα ααΆααΆαααα αααααΌαααΆαα’αΆα αααα»αααααΆααααααΆααααααΆααααααΆααααααΆαα·αααΆααααααΆαααα αα·ααααααααααα ααα½αααΆαααΆααα αααα»ααααααΆααααα½αα
α ααα½αααΆαααΆααα αααα»ααααααΆαααα’αΆα ααααΆααααααΌαααΆααααααααΆ αααααΆααα½αααΆα’αΆα ααααΌαααΆαααααααααααα·αααΎα ααΆα αααααΎαααΈααΆαααααΉααα»αααααΌαα ααΌα αααα ααααΆαα’αΆα ααααΌαααΆαααααΆααααΆαα½αααΆαααΆαααααα½αααααααΌαααΆαααααΎααΈααααΌααα ααααααααααααααΆααααααααααααααααααΌαα ααααααααααΆαα’αααααα·αα
αααααΆβαα½αβαααβαααβααααΌαβαα·α
αΆαααΆβααΊβααΆαβα
ααα
αΆαβααΆαβαα
βααΌααΆααβααΆαβααΆαα ααΆααααααΆ ααααΆααα
α»α
αα·αααααΌαααΆαα
ααα
αΆαααααΎαααααΆααΎααΆααα α αΎααα»αααΆα hash αα·αααΆααΆααΌαααΆαα
ααα
αΆαααΆαααααα»αααα·ααααααααΆαααααα»αααααΌα
αα½ααααααα
ααΆααΆααΏαααααΆαααααα»αααΆαααααααααΆααααΆ αααααΈααΆα’αααααααΎαααΎααααααααΆαααααα α’αααααααααααα½αααΆαααα ααααΆααααΌαααααΎα‘αΎααα·αα
αα·α αΆαααΆααΈαααααΌαααΆααααα»αααΆαα αααααα·αααααααααΆααααα»α Kafka αα αααα»αααΈααΆααααΌαα·ααΆαααααααααααααααΆα α αααααααααααααα Kafka ααααΆααααααΆαα½αα§ααααααααααΆααααΆααααααααΆαααααΆααααααααΆ MirrorMaker αααααααΌαααΆαααααΎααΎααααΈα’αΆαααΆαααΈα ααααααα½α α αΎαααααααα½αααΆαα αα½ααααα
MirrorMaker ααααΌααααααα’αααΈαααααΉααααααααΆααααααααΆαα αααα ααΎααααΈαααααΆααααΆαααααααΆααααααααΆαααΆαααΆααα αααα αααααααΆαα ααααα αααααΆαα ααα½αααΆαααΆααααααΆαααααααΆααααααα’αΆα αα·αααΌα ααααΆαααα»αα αααααααΈαα
αα»αααααΆααααααααα ααααΆαααααΆαααααα½αααΊααααααΆαααΆαα αααααΆαααΆααααααααααααΆαααΎα α¬αα»ααααΌαααΈαααααΎαααΆαααα’αα αααα»αααααΆααΈαααΌααΆαα αααΎαα αααααΆαααΆαααΆααααα ααααα·αααΎα’αααααααΌαααΆαααΆαααΆααΆααΎααΆααααααΆαα·αααααΆαα α¬ααααΌαααΆαααΆααααα·ααααααααααΆα ααααΈααααα»α αααααΆααααα ααααΊααΆα’αααΈαααα’ααααα½ααα·αα·αααααΎαα±ααααΆαααααα·ααααα
α’αααααααααααααααΆαααααΎααΆαααααααΆα αα·αααΆαα’αα»αααααααα 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) ααααΌαααΆαααααααα ααα·ααααααα’αΆααααααααΎαααααΆααααΆααααααααΈαα½αα α αΎαααααΎαα αααα½ααααααΆαααΆαααααααααΆαααααααΆαααααααα αααα»ααααααΆαααα’αα·αα·αα Kafka α αααααααααααΆααααΎα±ααα’αααΈαααααΎαααΆαααΏααα·ααα½αα±ααααΏ ααΆααΆααααααΆαααααα·ααΈαααααααΆααααα·αααααα’αΆα ααΆαααααααΆα ααααα·αααΎααααΎαααΆαααααααΆααααΌαααΆαααααααα
ααΌα αααααα½ααα ααΆααα·ααΈαα½αααΎααααΈααααΎα±ααααααα·ααααα·ααΆαααααΎααΆαααααα½αα±αααα»αα α·ααααααα»αααΆαα αααΆαααααΆαα’αα»ααααα ααα αααααα·ααααααα’αΆαααααααα’αΆα ααααΌαααΆαααααααα ααΆ 0 α αΎααααααααα‘αΆααααααα·ααΈααααΎααΉαααααΌααααααα±αααααα αΆααα αΌααααααΆααααααααΆααα αααα½ααααααΆαααααΌαααΆααααα αα ααΌα ααΆααααααα
RecordMetadata metadata = producer.send(record).get();
αααααααααα’αααΈααΆαα’αΆαααΆα
ααΆαα’αΆαααΆαααΆαααΆααααα»αααααΆααααααααααα αΆαααΆα αααααΌααααΆααααααΆαα αα·αααΌα JMS API αααα’αΆα ααααΎαααΆααααααα·ααΈααααΆααααΆααααα»αααΆαααααΎααααα ααΉαααΆα α’αααααααΎααααΆαα Kafka ααΆαααααΆαααααααααααα»αααααα α αΌαααΎααα·αα·αααααΎαα±ααααΆααααα αααΆααα’αααΈαα·ααΈααΆααααα ααΆααααααααα·()ααααΎαααααΆααααααααααααα
ConsumerRecords < K, V > poll(long timeout);
ααααααααα‘αααααα·ααΈααΆαααααααΊααΆαα ααΆαααααααααα»αααΊααααααααΆαααααα»α αααΎαα αααααααααΆα’αααααααΎααααΆαα ααΈααΆαααΆααααααΆααααααΆαα»ααααΆα αααΎαα αααααααααΆα’αααααααΎααααΆαα αααα½αααΆααΊααΆααααα»ααΆαααααααΆααααΌααααααααααααΆααα·ααααααααααΆαααααΆααααααα ααΌα ααΆααΆαααΆααααααΆααααΌαααΆαααΆαααα
ααΌα
αααααΆααα·ααΆααααΆαα
αααα»αααααΌαααΈ 2 ααΎαααααΌαααα
αα
αΆαααΌαα’αααΈαααααΎαα‘αΎαα
ααααααΆα αααααΆααααΈαα½αααααααΌαααΆαααααΎαααΆαααααααααα α¬αα·αααΆααααααα α§ααΆα ααα ααααα·αααΎα’αα·αα·αααα·αα’αΆα
ααααΎαααΆαααΆα α¬ααααα·αααΎααΆαα»αα
ααα αα
αααα»α JMS ααΆααααΌαααΆααααααααααααΆααααααααααα½αααααΆααα αααα½ααααααΆαααΉααα»αααΆααααααΆαααααΎαααΆαααααααααα α¬αααααΌαααΆαα‘αΎααα·α α¬ααΆααααααααααΆα (ααααααααΆααααα·ααααα·ααΆαααααΌαααΆαααααΎααααΆαα)α
Kafka ααααΎααΆααα»αααααΆααααΆααααΆααα ααΆααα·αααααΌαααΆααα»ααα
αααα»ααααα½ααααααΆααααααΆααααΈααΆαα’αΆαααΆααααααααααΆαααα α αΎαα’αααΈαααααΎαα‘αΎαααΎααΆααααΆαααααΊααΆααΆαααα½ααα»αααααΌαααααΌαα’αΆαααααα»ααΆααααα½αα―αα
ααΌα αααααΎαααΆααα·ααΆααα½α ααα αΎαααΆαααα»αα’αααααααΎααααΆααααααΌαααΆαααααΆαααααΆααααΆαα½αααΉαα’α»α αααα·ααα αααα»ααααααα ααα»α ααΈααΆαααααααα ααα»αααααααΆααααΆαα½αα’α»α αααα·ααααααααΌαααααΆαα ααΉαααΆααααααΆαααααααααΌαα ααααΆααΆαααααΎααα ααΆααααααααα·(). α ααα»α αα αααα»αααααααα’α»α αααα·ααααααΎαα‘αΎαααΊαααααα α α·ααααααααΆααααΆαα’αΆαα
αααα‘αααα ααααΌα’αΆααααααΆααα·ααΆααααΆααΈαα»α ααααΎαααΆαααΆαααΆαααΈααααΆααααΆαα
- ααΆαααααΆααααααΆααααΆαα’αΆαα
- ααααΎαααΆαααΆαα
- αααααΆααααΆαα
α’αααααααΎααααΆαα Kafka ααααΆααααααΆαα½ααααααΎαααααααα ααΆαααααααα enable.auto.commit. αααβααΆβααΆαβαααααβααααΆαααΎαβαααβααααΌαβααΆαβααααΎβααΆβααΉαβααΆααβααΌα βααΆβααΆαβαααααβαααβααΆαβααΆααα "ααααααααααααα·"α
αα»αααα Kafka 0.10 α’αα·αα·αααααααααΎαααααΎααααααΉαααααΎα’α»α αααα·αααααΆαα α»αααααααααααΆαα’αΆααα ααΎααΆαα α αααααΆαα ααΆααααααααα·() αααααΆααααΈααααΎαααΆαα αααααΆααααααΆααΆαααΆαα½ααααααΆααα αααα½α α αΎαα’αΆα ααααΌαααΆαααααΎαααΆαα‘αΎααα·αααααα·αααΎαααΆαααΈααααααααΆαααααΎαααΆααα½αααΆαα½α α αΎα ααα»ααααααααΌαααΆαααααααΆαααααα·αααΉαααααΆαααααα»ααααα α ααΌαααααα ααΆααααααααα·(). αααααΆααααααα½ααααααΆααα·ααααααΆααααΆαααΆαααΆαα½αα’αααΈα ααα½αααΆααααααααΌαααΆαα’αΆα α’αααααααΎααααΆαααααααΆαααααααΆαααααΆααααααΉααα·αααΉαααΆααΆαα’αααΈα’αΆαααααααΎαα‘αΎααααααα α₯αα·ααΆααβαααβααΊβααΆβααααα·ααααα·ααΆαβαααααααααΆαα α’α»α αααα·αβααααΌαβααΆαβααααΎβα‘αΎαβααβααααα·αβααΎβααΆαβααααΌαβααΆαβααααΎαααΆαβαααβαααααα ααα»ααααβααααα·αβααΎβα’αα·αα·ααβααΆαβαα»αβα αα αααβαααα½αβαααααΆαβααΉαβααααΎβααΆαβααααβαα βα’αα·αα·ααβαααααβαααα α₯αα·ααΆαααααααΊααααααΉαααΆαααΆααΆααΆααααααΌαααΆα "αααΆααα·α βαααα"α
αα αααα»α Kafka 0.10 αααααΌαα’αα·αα·ααααααΌαααΆαααααΆααααααΌα ααΌα ααααααΆαααααααααΆα α·αααααααΌαααΆαααααα‘αΎαααΆαααααΆααααααααααΆαααα’αα·αα·αα ααΌα αααααΆαααααααα ααΆαααααααα auto.commit.interval.ms. α₯αα·ααΆαααααααΊαα ααααααααΆαα½ααααΆααααα JMS AUTO_ACKNOWLEDGE αα·α DUPS_OK_ACKNOWLEDGE α αα αααααααΎ autocommit ααΆαα’αΆα ααααΌαααΆαααααααααΆααααα·ααα·αααΈααΆααΎαα½αααααααΌαααΆαααααΎαααΆααα·αααααΆαα - ααΆα’αΆα ααΎαα‘αΎααααα»αααααΈα’αααααααΎααααΆααααΊαα ααααα·αααΎα’αααααααΎααααΆααααααΌαααΆααα»αα αα ααΆαααΉαααααΌαααΆαααΆααααααα’αααααααΎααααΆαααααααΆαα αααα αΆααααααΎαααΈααΈααΆαααααααΆαααααααααΆα α·ααα αααα’αΆα αααααΆαα±ααααααΆαααΆαα αααα»αααααΈααα Kafka αα·αααΆαααααααΆααα αααααΌαα’αΆαααααΆαααααα·αααααΎαααΆααα½αααΆα
αααααααααΆαααΆααααααΆααΌα ααααΆααΉααααα 0.9 αααα ααΆαα’αΆα ααααΌαααΆαααααΎαααΆα ααα»ααααααααα·αααΎααΆαααΆααα α’α»α αααα·αα’αΆα ααΉααα·αααααΌαααΆαααααααααΆα α·ααα αααα’αΆα ααααΎα±ααααΆαααΉααααααΌαααΎαα‘αΎαααααααα ααΆαααΆααααα αααΎααααα’αααααα½αααΆααα αααααααα·ααααα· ααΆααααααααα·()αααα αΆαααααΆααααα αααΎαα
ααΌα αααααΆααα·ααΆααααΆαα αααα»α βααΆαα’αΆαααΆαααΈαα½αβ αα αααααααΈ 21 ααΆαα·αααΆαα’αααΈααΌα ααΆααΆααααααΌαααΆααα½ααααααα»αααααααααααααΎααΆααα αα αααααααααααααΆαααααααΌαααΆααααααα·α αΆαααΆα
αα αααα»α Kafka ααΆααα·ααΈααΈααααΆαααΎααααΈ commit (commit) a offset (offset): αααααααααααααααα· αα·ααααααα αααα»αβααααΈβααΆααααΈα ααΆαβα’αΆα βααααΌαβααΆαβααααΎαααΆαβα αααΎαβαα ααααα·αααΎβααΆαβααααΌαβααΆαβααααΎαααΆα ααα»ααααβααΆαβαααΆαααβαα»αβαααβαααβααΆαβαααααααΉαααα α’αααααα’αΆα ααααΎαααΎααα·αααααΎαααΆαααΆαααΆααααααα ααααα·αααΎααΆαααααααααΆα α·αααααΆαααΎαα‘αΎααα αααα»αααααααΆαααααα α αΎααααααΌαααααα’αααααααΌαααΆααααα αα αα»ααααααΆα’αΆα ααααΌαααΆαααααΎαααΆα (αααα ααααΆαα αααα»α Kafka 0.9 αα·ααα»αααα)α
α’αααα’αΆα αααααααααααααΎαααΆααααααααΉαααα’α»α αααα·αααααααα αααα»α Kafka consumer API αααααααααααΆαααΆαααααα enable.auto.commit ααΎααααΈαα·ααα·α αα·αα α αααΆαα αααΆααααΆααααΌααα·ααΈαα½ααααα»αα αααααα·ααΈααΆααααααα
void commitSync();
void commitAsync();
ααααα·αααΎα’αααα ααααααΎαααΆαααΆα "αααΆαα αα ααΆαααααα" α’αααααααΌαααααααΎα’α»α αααα·αααααα commitSync()αααααααα·ααααα·ααΆααααααααΆαααααααΆαααααααΆααααΈααααΎαααΆαααΆαα
αα·ααΈααΆαααααααΆααααααα·αα’αα»ααααΆαα±ααααΆαααααΌαααΆαααα½αααααΆαααα»αααααα½αααΆααααΌαααΆαααααΎαααΆαααααα ααα»αααααα½ααααα·αααααΎα’αααΈαααααΎααααΈαα»αααααΆααααΆααααααΆααααααααΎαααΆααααα’αΆα ααΎαααΆαααααααααααααααααΌαααΌαααΆαααααααα·ααααα·ααΆαα αα·αααΆαααααα·ααααα·ααΆααα αααα»α Kafka ααα α’αα·αα·αααα·αααΆαααααααΆαααααΎααΌα ααΆααααααα
- αααα‘ααααΆααααααααααΆααααααααααααααααα·α α’αααααααΎααααΆαααααα½αα―αααααΌααααααααααΆαααΆαααΎαααααααααΎαα‘αΎαααΈααααα»ααααααΆααααα αΆ αα·αααΆαααΆα αα ααααα’αααα·αααΈ αααααΆααα½ααααα·αα’αΆα ααΉαααα’ααααΎαααα½ααααααΆαααΎααααΈαααααΌαααΆαα‘αΎααα·αααΆαααα
- ααααΎααΆααα ααΆαααααααΆαααααΆα αααΎααα αααα»αααααα·ααααα·ααΆαα’αΆααΌαα·ααα½αα ααΌα αααααΎαααΉαααΎααααα»ααααααΆαααααα ααΆααααααααααααΎαααααΆααααααααααααΆ αα·αααΆαααΆαα’αΆα ααααα ααΎαααΆαααΈααααααααααΆαα αααα»αα ααααα Kafka ααααα·ααααααααααα½αααααα·ααααα·ααΆααα αααααααΎα αα αααααααΆααααααααα ααΆαααΆααα½αα ααα½αααααΌαααΆαααααΎααΎααααΈααααΎα±ααααΆα’αΆα αα αα½α ααΆαα½α KIP-98 α
- ααααΆααααΆαα’αΆαααΆααα½αααΈαααααΆααααα½αααΆαα½αααΉαααΆαααααΎααΆααα½ααααααααααα ααΆαααααααΆαααααααααααα ααΆααααΈααααααα ααααΆαααααααααααα Kafka ααΉαααα’ααααΎαααΆαααΈαα―αααΆαααααΆα αααΎααααααααΎαααΆαααΆα‘αΆααααα»ααααα½α α αΎαααααΆαααΆαααα»ααααααΆααααΆααααΏααααααα α§ααΆα ααα αα·αααΆααααΆαααΆαα» API αααααΉαα’αα»ααααΆαα±ααα’αααααααΆαα α’αααααααΎααααΆαα ΠΈ α’αααααα·α αα αααα»αααααα·ααααα·ααΆααα½αα αα αααα»α JMS αααααααΌαααΆαααααααααααααα» ααααααααα»αααΈαααααααΌαααΆααααααΎαα‘αΎα α’αααααα·αααΆα ΠΈ ααΆαα’αααααααΎααααΆαα.
ααααα·αααΎααΎααα·αα’αΆα ααΉαααα’ααααΎααααα·ααααα·ααΆαααΆααα ααΎααΎαα’αΆα αααααα’ααααααα±ααααΆαααααα·ααα ααΉαα’αααΈαααααααααααααααααααααααΎααΆαααααααααααΈαααααααααΆ?
ααααα·αααΎααΆαααααααΆααααα’α»α αααα·αααααα’αααααααΎααααΆααα’αΆα ααΎαα‘αΎα αα»αααααααααΆαααααΌαααΆαααααΎαααΆα ααΌα ααΆα’αα‘α»ααααα’αααααααΎααααΆααααΆαα αααα’αααααααΎααααΆαααα·αααΆααα·ααΈααΉαααΆααΎαααα»αα’αααααααΎααααΆαααααααααα½αααααΆαααΆααα ααααααααΆααααΌαααΆααααααααΆαααΆααααααα ααΌα αααααα»αααααΆααααααα½αααΊααααΌαααααα·αα’α»α αααα·ααα ααΈααΆαααα»αα API α’αααααααΎααααΆαα Kafka αααααααΌααα·ααΈααΆαααααααΌα ααΆαααααααααααΆααααΆαααα:
void seek(TopicPartition partition, long offset);
void seekToBeginning(Collection < TopicPartition > partitions);
αα·ααΈααΆααααα ααααααα() α’αΆα
ααααΌαααΆαααααΎααΆαα½ααα·ααΈααΆααααα
offsetsForTimes(αααααΈ ααααΆαααααααΆααΎααααΈααααααα) ααΎααααΈαααααααα
αααααα½ααα
α
ααα»α
ααΆααααΆααααΆαα½αααΆαααΈα’ααΈαααΆαα
ααΆααααααα ααΆαααααΎαα·ααΈααΆααααααααααΆααααααΆ ααΆααααααΆαααααααΆααα½αα ααα½ααααααααΌαααΆαααααΎαααΆαααΈαα»αααΉαααααΌαααΆαα’αΆα αα·αααααΎαααΆααααααααα ααΎααααΈαααααΆααααα αΆααα ααΎαα’αΆα ααααΎααΆαα’αΆαααααα·αααΆαα’αααΆα ααΌα αααααΆααα·αααααΆαα αααα»αααααΌαααΈ 4 ααΎααααΈααΆαααΆαααΆααααααΆαααΎαααΈαα»α αα·ααα»αααααΆααααΆαα ααααα
αααααΆαααα αααααΌαα’αααααααΎααααΆααααααα’αααα’αΆα αααααΆααΆααααΆαααΆαααα αααΆαααΆααΆαααΆαααααααΆα α¬ααΆαα ααααα’αΆα ααα½αααααΆαα αα αααααΎααα·αα·αααααΎαααααΈααααΎααααΆααααα Kafka ααααΌαααΆαααααααΎααΆααΌαα ααΌα ααΆααΆααααααααΆαααααΉαααα·ααΆααααααααα ααα» ααΆαααΆααααα ααΆαααΆαααΆαααΆαα α»α ααΆααΎαα ααΎαααΉαααΆααΆαααΆαααααααΆαααΈαα½ααααααααΆαα·αααΆααααααααΆααααααΆααααααααααα·ααΈαα»ααα·ααααααα αααα»αααααΈαααααααααααααααΆαααΎαααΊα’αΆα ααα½αααααΆααααΆαααα’α₯αααα ααα αααααΆααα·αααα ααααα·αααΎαααααα·ααΈααααα’αααααααΌαααΆαααααΎααΆαααΌααΆαα α’αααααααΌααααααααααΆααΆαααΈαα½ααααααααα»αααααααααα ααΆααΆααα’ααα α»ααααααα»αααα·ααα
ααΆαααααααααααΆαααααα½ααααα αΆαααΆ αα ααααααα’αΆααααααααΈααααααΆαααΎαα‘αΎα αααααααααΆαααΈαα½ααααΆαααΆαααα α»αα ααΆαααααΆααααααααΆαααααααα αααααΎααααα»ααααααααα½αα
ααΆαα’αΆα ααααΆααααααα
αα·ααΈααΆααααααααα Kafka α ααααααΆαα’αΆα ααααΆααααααααΊαα»αααααΆααααΆααααΈαα·ααΈααΆααααααααα ActiveMQ α Kafka ααααΌαβααΆαβαα ααΆβαα»ααα·αβα αααααβααααΆαβαααβααααΈβαααα½ααααααΆαβααΆααα’ααβααα½α αα·αβα ααα αΆαβααΆαβαααα»αβαααβαααα½αα
α ααααα Kafka ααΆαα§ααΆα ααααααα½ααααααΆαααΆα αααΎαααααααα»αααααΎαααΆαααΎαααΆαααΈαααααααααααααΆα Kafka ααααΌαβααΆαβαα ααΆβα‘αΎαβααΎααααΈβααααΎαβααΆαβααΎβαααααβααΉαβααβα―αβααααααΆ αααβααααΆααβααΈαα½ααβααΆαβααααααβαααα»αβααααΆαααααα½αα ααΆαααααΎααααΆααα§ααααααααα»ααααααΆαααααΆαααααααΆα (SAN) αα·αααααΌαααΆαααααΆααα ααΈαααααααααΆαααα»αααααΌαααα αααΎαα’αΆα ααααα½αααααααααΉααααααααΆαΠ«e α αααααααααααα»α αα·ααααααΎαααΆααααααααα·α α
Kafka ααΊ ααΆαα·α αα ααααααααα α’αααααααΎααααΆαα Kafka αααααΆα αααΎααα·αααααα·αα ααααααααααα½ααααα α αΎααααααα·ααΈαααααααααΎαα αα α»ααααααααΆαααΆαα½αααΉαααΆαα αΆααααααΎαα‘αΎααα·αααΆαααααααααΆααα αααααααΌαααΆααααααα αααααΆαααΆααΆααΆαααααααΆααΆαα½αααΉααααααα»ααααααΆααααΆα αα·αα’αααααααααααΆααααα½ααααααΆαα
αααα½ααααααΆαααΆαααααΆαααα
α
ααααααααΆαααΈααα
αααα»αααααΈααΌαααααΆα αααααΆααααα½αααααΌαααΆααααααΎααα αααα»αα ααααα Kafka αααααΆααααααααααααααα·ααΌα ααΆααααααα
- α ααα½αααΆαααΆαα ααΌα αααααΆααα·ααΆααααΆααΈαα»α ααααααα·αααααΆαααααααΆαααααΎαα ααΈαααααΊα’αΆαααααααΎααααα·ααααα ααααΆαααααΆαα’αΆααααΆαααΆα‘ααα
- αααααΆα αααα (αααααΆ) αααααααΆααΎαααα½ααααααΆαα ααα½αααα»ααααΆααα αααα»αα ααααααα½αααααΆααααααα ααα»αααααΆααααΆαααΆααααα
αααααααΎ ZooKeepers αααααΆααααΆααααααααααα½α Kafka ααααΆααΆαα ααα αΆαααΆαααααΈαααααααΎααΆααααα»αα αααααααα½ααααααΆααα αααα»αα αααααα αααααααΌαααΆαααααΎαααααααα»αααα½ααααααΎααα½ααΆα’ααααααα½ααα·αα·αααα
αααααααΎαααΆα αααααΆααααΆααααα αααααααΆαααααΈαα½αα α’ααααααα½ααα·αα·ααα αααααααα½ααΆααΈα±αααααα½ααααααΆα α’αααααΉαααΆα (α’αααααΉαααΆα αα α’αααααααΎαααααα αΆα) αα·α α’αααααΎαααΆα (α’αααααΎαααΆα, ααΆααα, α’αααααααααααααΆαα) α αααα½ααααααΆαααΎααα½ααΆα’αααααΉαααΆααααααΆααααΆαααΆαααα ααα½ααα»αααααΌααααα»αααΆαααα½αααΆαααΆααα’αααααααΆαααααΎαα ααΆαααα’αααααα·α αα·αα ααα αΆαααΆααα ααΆααα’αααααααΎααααΆααα αα ααααααααΆαααααΌαααΆαααααΎαα ααΆααααΆαααΆααααααΆααα αα½αααααααΌαααΆαα αααααα ααΆααααααΆαααααα½ααααααΆαααΆααα’αααααααΎααα½ααΆα’αααααΆαααΆααααααΆααααΆαααΆααααα ααααΆααααΈαα½αααααααΆααααααα ααα»αααααΆααααΆαααΆαααααΌαααΆαα α α αααα. αααα½ααααααΆαα’αΆα ααΎααα½ααΆα’αααααΉαααΆααααααΆααααΆααααα αα·αααΆα’αααααΎαααΆααααααΆααα’ααααααα
α’αααααΎαααΆααααααΆαααΆαααΆααα’αααααααΆαααααα’αααααΉαααΆαααααΌαααΆαα α ααΆαα αααααααααΆαααααΎααααΆααααα (α ααααβαααβαααα·αβαααα»αβααααΆαααΆαβααααΆααααα, α ααααβαααα»αβααααΆααααα)α ααααα·αααΎαααα½ααααααΆααααααΎααα½ααΆα’αααααΉαααΆααααααΆααααΆαααΆαααααΆααα α»α αααα½ααααααΆαααΆαα½ααααααΆαααααα α¬ααααΎααααΆααααααααααΆααααΆαααΆααααα’αΆα ααΆααααΆαααα½ααΆααΈααΆα’αααααΉαααΆαααΆαα ααΆααΆααΆααα ααΆαααααααααα·αααααααΆααα·ααα½αα±ααααΏα
αααααααααΆαααααααα ααΆααααααααα’αααααα·αααΊααΆαααΆαααΆαααααα α’ααααααααααααΆααΎα ααα½αα’αααα ααααααααΌαααααα½αααααΆαα (ααα½αααααΆαα) ααΆαααα½αααΆα αα»ααααααααααααα·ααΈααααααααΎα 0, 1 α¬ααΆααα’ααα ααααα·αααΎααααααα ααΆααα’αααααααΆαααααα ααααααααΆαααααΌαααΆαααα½α α’αααααΉαααΆαααΉαααααΎααΆααααααΆαααααα‘αααα α’αααααα·ααα·αααααΆαααα ααααααααΆααα½αααΆαααΆααααααΆαα (ααΆαααα½αααααΆαα) αααααααααααΆααΈαααααΆααΆα αααΎα (αα½αααΆαααααα½αααΆ) αααααααααααααΆαααααααααααΆαααα min.insync.replicas (ααααΆαααΎα 1) α ααααα·αααΎααΆααα·αα’αΆα α ααααααΆαααααααααα αααα’αααααα·αααΉααααααααααααα·ααΈααΎαααααα½α (NotEnoughReplicas α¬ NotEnoughReplicasAfterAppend).
ααΆαααααααα ααΆααααααααααααααΆαααααΎααααααΆααααα½ααααααΆααααααΆα αααααα 3 (α’αααααΉαααΆα 1 ααΆαα α’αααααΆα 2 ααΆαααααα»ααα½αααΆα) αα·ααααΆαααΆαααααα min.insync.replicas ααααΌαααΆαααααααα 2. αααα»αααααΈααα α αααααααΉαα’αα»ααααΆαα±αααααα½ααααααΆαααααΆααααααααααααααααΆαααΆααααααΆαααααααΆααα α»αααααα·ααααααΆααααααααααα·ααΈα’αα·αα·ααα
αααααΆαααΎααααααααα ααΆααααααΌααααααααΆααααααΆαααα½α α αΎααααΆαααΆαα’αα»αααα αα·αααΆαααΏααΆααα ααΆαα ααααααΎαα‘αΎααααα αααΆααααααααααΆαααα αΆααααααααααααΆααααΆααααααΆαα (ααΆαααα½αααααΆαα) ααΈα’αααααΎαααΆαα αααααΈααΆαααααΆαααααΆααααΎαααΆαααααααααΆ ααΆαα αααααα ααΆααααααΆαααααΆαα αα ααΆααααΈααΆαααααΎαααΆαααΌα ααααΆααΉαααΈα (αα·αα’αΎααΎααΉαααΆαααΎαα‘αΎαααααΆαααααΎααααΆααααααα·ααααααΌααααααΆα)α
αααααααΎαααααααΆαααα
ααααααα Kafka ααααΆααααααααΆαααΈαααααΌαααΆααααα»αααΆααααααααΆαααΈαα½αααα
ααΆααααΆαααΆαα½αααΉαααααα·ααααα·ααΆαα ααααΆααααα(). ααΆαααΈαα½αααααααΆαααααΎαααα’αααααα·αααΉαααααΌαααΆαααααααα
ααΆαααααααα ααα»ααΆα ααα»ααααααΌα
αααααΆααα·ααΆααααΆαααα»αααααΌαααΈ 2 ααΆαααααααα
ααΆααα―αααΆααα½αααααΌαααΆαααααΎα‘αΎαααααΌααα
αααα»αααα·ααααααα’αΆααααααααααααααααααααα·ααααα·ααΆαα ααααα·αααΎααΆααααααααΌαααΆαα
αααααα
ααααα» Kafka αααααααα α αΎααααα·ααα
αααα»αααΆαα
αα
αΆαααααααΆ ααΆαααΆαααααα’αααααΉαααΆααα·αααΆααααααΆααΆααααα½αα―αααααΌαααΆαααΆαααααααααα - ααΆα’αΆα
ααααΌαααΆαααααααααααααααΆαα
αααααααααααΎααααΆαααααα
ααΆαααα·ααααα·αααααΎααααα·ααααα·ααΆα ααααΆααααα() ααΆαβαααβααΆ Kafka α’αΆα
βααα½αβααΆαβααΆαβααΏαβααΆαβαααβααΆβα’αΆα
βαααααβαα½αααΆβαααα»αβααΆαβα
αα
αΆαα αααα»ααα
αα·α ααΆααααααΌαα’αααα’αΆα
αααααΆαααΆαα αΌαα’αααα
αα
αΆααα
αααα»αααΆα ααΆαααααααααΎαα αααααΆααα ααα»ααααα ααΆαα·ααααααΆααΏαα
αααααααααααααα½ααααααΆα Kafka ααααΌαααΆααααα
ααα’αααα
αα
αΆα 64 GB α¬α
αααΎαααΆααααα ααΆαααααΎααααΆααα’αααα
αα
αΆααααααΆααααααΆ ααααα» Kafka αααα½αα’αΆα
ααααΎαααΆααααΆαααΆααααα½ααααα»αααααΏαααΆααααΆααααααΏαααΆααααα½ααααααΆαααΆαααααααΆα
Kafka ααα’αΆα
ααααΌαααΆαααααααα
ααΆααααααααααΎααααΈα’αα»ααααααααα·ααααα·ααΆααααα ααααΆααααα() αα
ααΆαααααα
ααααΆαα αααααΆαα’αααΈααααααααΆααα
αααα»α Kafka ααΊαααααααα·ααααα
αα ααΆαα·αααΆααααΎαααΆαααΆααααΆαααα’αααααΆααααααΈααααΎααααΆααααΆα
αααΎα αα·αααΆα§αααααααΆααααααααααααααΆααα’αααααααΎααααΆαααααααααΌαααΆαααΆαααΆααΆααααΆααα ααΆαα
αααΎαααααΆαα’αα»ααααααααα·αα»ααααααα Kafka ααΆαααααΈααΆααααααααΌαααΆαααααΎαα
ααΆαααααα½ααααααΆαααΆαααα
ααααααααΆα α αΎαααΆαααΆαααααααααΌαααΆαα’αΆαααΈαααα½ααααααΆααααα»ααααα»αααΆαααααααααΆαααααααααΎ
ααΆαα’αα»ααααααΆαααααααααΎαα‘αΎαα αααΎαααΊα’αΆα ααααΎαα ααΆααα αααα»αα ααααα Kafka ααΆααΆαααΆαα½ααααα½ααααααΆα Kafka αααα½α ααΈαααααααΆαααΆααααααΆαααα’αΆα αααααΈααα ααΎαααΆαααΈαααΆα ααααα‘ααααΆα αααΎαα
αααααα
αα αααα»αααααΌαααα ααΎαααΆααααα‘ααααΎαααΈαααααααααααΆαααααααα Kafka αααααα‘αΎααα·αααΌαααααΆαααααααααΆαα’αα·αα·αα αα·ααααα½ααααααΆα ααΎααααΈαααααααΌαααααααααααΌαααΆαααααΉαααΆααα·ααα½αα±ααααΏ ααΆαα½αααΉαααα αΌαα αΌαα αααΎαααα αααΎαααΆααααα½ααααααΆαααΆαααααααΆα ααΎαααΆααα·ααΆααααΆα’αααΈαα»αααΆααααααΆααααΎααΎααααΈαααααα ααΆαααΌαα ααα»α ααα α αΎαααΆααα·αα·ααααααΆαααααΈα’αααΈααααΆαααααααααααααααα·ααΈαααααααααα»αααΆααααα αα αααα»αααααΌααααααΆαα ααΎαααΉααα·αα·αααααΎααααα αΆααΌαα ααααααααα·ααΈαααααα’ααααΎααΆαααααΌαααΆαααΎααααΈαααααααΆα αα·ααα·ααΆααααΆα’αααΈαα»αααααΆααααααααααΆαααααααααΆαααΆαα½ααα½αααα ααΎαβααΉαβαααα ααβααααΌαβαααβαααβααΆααβααΈβααααβαα·ααΆαβα’αααΈβαα αα ααβαα·ααααΆβααααΎβααΆαβααΆβααΌαα ααΌα ααααβα’αααβα’αΆα βααΆαβαααααβααΆαβαααααα·ααβααααβααΆβαααααΆααβααααΈβααααΎααααΆααβααααβα’αααα
ααααααααααΆαααααααααΈαα»αα
ααΆααααααααα½α
ααΆααα
αα βααΆαβααΆβααααβαααβ¦
ααΆαααα’αααααααΎααααΆαααααααΆαα
α»ααααααααα»ααααααααα’αΆα
α
αΌααα½ααααα»αααΆααααααααα·αααα
ααΎ Kafka ααααΌαααΆαααααΎααααΆαααα αααα»αααααΆαααααααα’ααααα?
-
ααΆ
-
ααααΆα
-
ααΈαα»αααααΆααααααΎ α₯α‘αΌαα’ααααα
-
ααΎαααΆαααααααααααΎααααΆαα
α’αααααααΎααααΆαα 38 ααΆααααΆαααααααααα α’αααααααΎααααΆαα α‘α€ ααΆααααααΌαααΆαα αΆαααΆααα
ααααα: www.habr.com