α αα α!
ααΎαααααΉαα’αααααΆααααΎααΆαααααα
α’αααΈ
αααααΆαααααααα αα ααααααααΆαααααα·ααααΆααΈααααααααααα§αααααααααΆαα₯αααα·αααααα ααΌα
αααα α’αααααβαα½αβααααΌαβααΆαβα
α»αβααααΆαβααΆβαααβααααΈβαβααα αααβααΆβααΆαβααβααααβαααβααΎαβα
ααβααααΆαβα’αααβα²ααβααααΆααα ααΆααααα·αααααααααΆαααααα½α α’ααααα·ααααααααΆααααΈαααααααααα Kafka Stream αα
ααΆαααααααααα»ααα·ααααααα
ααα
αΆαα ααΌαααΈαααΆαα’αΆα!
αααααΆααα Apache
αα αααα»αα’αααααααα αααα»αααΉαααααΆααα’αααααΈααααααααααα»αα αα»αααααααΎαααΆααααααααααααΎααααΈααα½αααΆαααα αααααααα»αααΆαααααΎααααΆααα±ααΆαααααα ααααααααΎαααα·ααααααααΆαααα»ααααα·ααΆααααααα·ααΈαααα αααααααΎ Kafka Stream ααΎαααΆααααααΎαααααΆααΈααααΌαααααααααΆαα ααααααα αααααΈαα½ααααΆααα½ααΆααΈααΆααααααααα’ααα±αα ααααααα α»α αα·αα’αΆα ααααΆααααααααααααααΆααααα’αΆα αα»αα α·αααααΆαα’αααΈααααΆαααΆαααααααααα»αα αααα»αααααααααα αααααΆαααα½αααΎα αααααΊααΆααα αΆαααααααα αα»αααΆαααααααααααΆαααΏααΆαα αα·αααΆαααΆααααα½αααααΆαααΆααααα
ααααα·αααΎα’αααα αΆααα’αΆααααααααΎαα·ααΈααΆααααααααα½ααααα’αα»ααααΆαα±ααα’αααααααΎααΌαααααΆααα·αααααααααααΆααααα½αααΎααααΈααΆααααααααΆαααΆαααααΌαααΆαααααααα»ααααα’ααα α’αΆαααΆ ααΆααΉααα½αα±ααα αΆααα’αΆαααααα ...
α ααα»βα’αααΈβααΆαβααΆβααΎαβαα·αβααΆβαααβαααβααααΌαβααααΆααβααααΌαβααααβααααΎβααΆαβααΆαα½αβααααβαα½α
ααΎαααααΌααααααΆααααΆαααΆαααααααα»αααααααααααα’ααααΎαααΆαααΆαααααααΆααααΆα (α§ααΆα αααα ααΎααα αααααααααααα·ααα
αααααααΆαααΆααααα αΆα)? αα»ααααααααΎα
αααΆααααα»ααα
ααΆαα Kafka Stream ααΎααααααααΉαααα’ααααΎααΌαααααΆααα·αααααααααααΆααααα½α (+ API ααααΆαααα) αααααΆααααΆααααααααααααααα αα·ααΈααΆααααααααααΆααα»ααα·ααααα·ααααααΆ:
ααΌαααΆαααΈ 1α ααααΆααΈαααΌαααααααααααααααααΆαααααΎααα»ααααααΆαααααΆααααααΌααα
Kafka αα·α Kafka Streamα ααααΆααααΆαααααΆαααααααααααααααααα½αααααΆαααα API ααααΆαααΆααααααΆαααααΎαα
αα
α»ααααααααΆαααααΌαααΆαααααΆααΆααααααΌαααααΆααα·αααααααααααΆα
αα½αααΆαα½α Kafka Stream αααααααΎα±ααααΆααΆααααα½ααααα»αααΆααααααΎαααααΆααΈααααΌαααααααααΆαα ααααααα
αααα αααα½αααααΆααα»α ααΎαααΆααααααα α α·ααααα·αα·ααααααΆαααα α·ααααα»αααΆααααΎααααΆααΈαααΌαααααα½αααααΆααααααΎα ααΎααααΈαααααααΆααααα αΆααΆαααααα ααααΆααααα ααΎαααΆααααααα α α·αααααΆααααα Kafka Stream - ααΎαααΉαααΆααΎααΆααΆαααα αααα»αααΆ α’αΆα ααααΎααΆαααααα αα·αα’ααα±αα ααααααα α»α αα»αααΆαααααααΈαααααααΌαααααααααΆααΆα (ααΆαααααααα αα½αααΆαααααα)α ααααΆααααααΆα’αααΈαααααΎαααααΌαααΆαααα»ααααα ααααα·ααα·ααΆαα’αααΈαααααααααααααααααααΎααΆαααΆαααΆαα αΆαααα»α αα·αα’αΆα αα»αα α·αααααΆααα αααα»α Kafka α
ααααΆααΈααααΌα α·ααααααααα»ααΈαα½αααααααΎαααΆααααααΎαααααΌαααΆααααααΎαα‘αΎααα ααΎααααΌααα Kafka Stream instance ααΆαα½αααΉα topology ααΆααααααααααα ααΆααΆα 1) ααααα 2) αα½αααααΆααααααΆαααααΆαααααααααΆααααΆαα 3) αα·α αα½α:
ααΌαααΆαααΈ 2α ααΌαααΌα‘αΌαααααΆαααΎαααα§ααΆα αααααΆαααααΆαααααααΎααααααΆααααααΆααΈααααΌααααα α
αααΆαααΆααΆαααααΆαααα
ααΈαααααααααααααΆααα·ααααααααααΆαααααααΆαα
αα αααα»ααα·ααΈααΆαααααααααΈααα ααααΆααααΆααααααααΆααααααααΌαααΆααααα αΌααα αααα»ααααααΆαααααααα α αΎαα’αααααααΎααααΆαα - αα·ααΆαααΆ ααααΆααααααΌαααααΉαααΆααααα»ααα - ααα½αααΆαααααΆαααΆααααααΆαα ααααααααααααΆαααααΆααΆαααααα·α (αααααΆααααααααα)α
ααΌαααΆαααΈ 3α ααα αΌαααΆαααΆαα§ααΆα αααααααΈαααααΆααααααΆααΈαααΌααΆαα½αααααΆααααααΈααααΌα
αααααααα 1) ααααΆααααΆααααααΎαααΆααααααααααααααΆαααααααα Kafka α 2) ααααΆααΈααααΌαααααΆαααααα
ααααααα (αααααααΎ Kafka Stream) ααααΎαααΆαααΆ α αΎααααααααααΆαααΆααααααΆαααααΆαα
αααααΆααα Kafka α
α»ααααααα αααααΆααααΈααα 3) α’αααααααΎααααΆααααα½αααααααααααΈα
α α α αΆαααααααααααααΆααααααΆαα½αααααα·αααΆααΆαααααααααααααΆααααΆαα!
ααΌα αααααΆααααααΆααααΆαααΎ Topology αααααααααΆαα αααααααααααααΎαααΆαααααΆααααααααααααΉαα ααΎαααΆαααααΎααααααΎαααΆα αααΎααααααΆααααΆαααααΎααααΆααααΆ α αΎαααΈααααα»αα αααααα½αααΆααααΌαααΆααα·αααααΆααΆααααααα
αααααΎαααΈ 1α ααααΎααααΆααααααααααααΆααααΆαααααΆ
α αΆαααααααααααΉαααααΌαααααααΎαααΆααα·αααααααααα½ααααααΎαααααΌαααΆααααααΆααααΆαααααΆα ααΆα§ααΆα ααα αααα»αααααΈαααααααααα½αααααΌαααΆααααααααααααααΆααα "ααα‘ααααΆαα
αααΎα"α ααααΆααα’αΆα
αααα»ααααΆαααΆαααααααΆααααΆαα
α»αααααααααα»αααΆααα’ααα’αααΈααααΆαααΆαααααααα»αα½αα
ααα½αα αααααΆαααα αα
ααααααααΎαααα½αααΆααααΆαααΆαααααααΈααΈααααΆααααΆααα½α α¬ααααΆααααΆααα½ααααααααα ααΎαα’αΆα
αααααΆαα»αααΆ ααΆααααααΆαααΆαααααΈααααΆααααΆαααααααααααΆααα’ααα’αααΈααααΆαααΆαααααααα»ααΌα
ααααΆααΈαααααααααα»α α αΎαααααΎααΆαααααΆα‘αΎααα·αα
ααΌαααΆαααΈ 4 ααΆαααααααααα αΆαααΈαααααααααΎαααΆααααααΆαααααΆαααααααΆαα/ααααααα
αα·ααΈααΆαααααααααΎαααΆααααααα½αααααΆα ααΌα
ααααααΆαααααΈα’αΆα
ααααΎαααΆαααΆαα
ααΌαααΆαααΈ 4α ααΎαααΎαααΆαα
αΌααα
ααΆααααααΆααααααααααααΆαααα·ααΈααΆαααααααααΎαααΆααααα processor (αααααΆααααΈααα ααΆααααααααΈααααααααΎαααΆαααΆαα½αααααα
αααααααααααΌαααα’αα»αααααα·ααΈααΆααααα doProcess
)
αααααΎαααΈ 2α ααΆααααααΎα CRUD API αα ααΎααααΌααα Kafka Stream
αααααΆααααααΎαααα αΌαααΆαααΆαααΆααΌαααααΆαααααααΎα ααΎαααΆαα αΆααααααΎαααααΆααΆαααααα RESTful CRUD API αααααΆααααααΆααΈααααΌαααααααααΆαα αααααααααααααΎαα ααΎαβα ααβα’αΆα βαα βααβααααΆαααΆαβααααβααααα»βαα½αβα ααα½α α¬βααΆααα’αα ααααβααΆααβααααα α¬βαα»αβααααΆαααΆαβααααβααααα»βα αα (ααΆαβααααααααβαααααΆααβααΆαβααΆααααβαααααβααΆαααααα)α
ααΎααααΈααΆαααα Get State API ααΆααα’αα αα αααααΆαααααΎαααααΌαααΆαααΎααααΈααααΆα‘αΎααα·αααΌαααααΆαααΆαααα‘α»ααααααααΎαααΆα ααΎαααΆααααααΆαα»αααΆαα αααα»αααααΆααααααααααααααΆαααααΆαααααα»αααααααααΌαα αααα»αααααΈααα ααΆααΊααΆααααααΆαααααα»αααΆαα’αα»αααα API αααααααααααααΎα§ααΆα ααααααα½ααα Kafka Stream ααΌα αααααΆααααα αΆααααα»ααααααΈααΆααααααα
ααΌαααΆαααΈ 5: ααΆαααααΎααααΆααααααΆααααααααααααααΆααααααΆαα½α ααΎααααΈααα½αααΆαααααΆαααΆααααααΆαααααΆααΆαα»αααααααα»
ααΆαααααΎαα αα α»ααααααααΆαααααΆαααΆαααααααα»ααΆαααα API ααααΆααααα½ααααα»αααΆαα’αα»αααααααααα ααΆααΌαα α’αααΈαααα’αααααααΌαααααΎααΊαααααΎαα’αααααα·α Kafka α αΎαααααΎααΆααΎααααΈαααααΎααααααααααΆαααααΆαααααααααΈα αααααΆααΆααΆααΆαααΆααα’αααααααΆααααααΎαααΆαααα API ααΉαααααΌαααΆαααααΎαααΆαααΆαααααααΌα ααααΆααΉαααΆααααααα½αααΆαααΈα’αααααα·ααααααααα (α§ααΆα αααααααΆααααΆα)α
ααΌαααΆαααΈ 6: α’αααα’αΆα
αααααααααΆαααΆαααααααααα»αααααααΎα’αααααα·α Kafka
ααΆααααα»αααααΆαααΌα : Kafka ααΆαααΆαααΆαααΆα αααΎαα
αααααΆααααααα ααΎαα ααα ααα αΆαααααα»αααααΎαααΆα αα·ααααααα’ααΆαα’αΆα ααααΆαααααααααααΌαα αααααααααααΆααΈααααΌαααααα½ααααα»ααα½αααααΆααΈαααΌα ααΆαβαααα αβααΊβααΆβααΆαβααΆααααα½αβαα½αα αααβαααβααΎαβαααααβαα ααΆααααααααβααααα»βααΆααα’ααβα±ααβααααΎαααΆαβαααααβαααβαααααΆααβαααααα·ααΈβααΌα βααααΆ (αα·αβαααΆαααΈαβαααααΎβα αΆααααααΎαβααααααααβααΌα ααααΆ) ααααΎαααβα’αααΈαβααΆααα’ααβααααΌαβααΆαβααααΎβαααβααααααααααααα·α ααΎαααααΆααααααΆαααααααααΆαααααΆααααααααααΈαα½ααααΉαααΆαααΆαααΆαααΆα αααΎα ααΌα ααααα§ααΆα αααααΈαα½ααα’αΆα ααααΌαααΆαα αΆααααΆααααΆαααααααααααΆαααΆαααααααα
αααα»αααααΉαααΎαα‘αΎααααααααΆ ααΆααΆαααααΆααααααααΆαααα»αααΆαααααΎα αααΆααα ααααααααα»ααα»αααααα αΆααααα ααΌα ααααα§ααΆα ααα αααα»αααααΈααΆαααΆαααααΆαα‘αΎααα·ααααααΆααααΈααΆααααΆααα ααΌααααααα αααΆααα ααααααααα ααααα»αα½αααααααααα αααααΆααα αΆαααααααΈαα½αααα αααα»α Kafka Stream αααααΆααααααααΆαα ααααααααΌαααΆααααααΎαααΆαα½αααΉααααααα ααα»ααααΆαααααΆααααααΌα (αααααΆαααΆααα αα α»ααααααααΆααααα»αααααα)α ααΌα αααα Kafka αααααααΆααααα αΆαααααααααα ααΌα αααααααα»αααααΈααΆαααΆααααΆαααααα§ααΆα ααα Kafka Stream αα½α α¬αα½ααααααααα α αΆαααααααααα’αΆα ααααΌαααΆαααααΆαα‘αΎααα·ααααΆαααΆαααα ααααΎα§ααΆα ααααα½αααα αααααΆαααΆααααααααΌαααααΆααΉααα α ααΆαααααΎαααααααααααΎαααΆααααα αΆαααΆααΆααααΌαααΆαααααΎαααα»αααααααααααα»ααααΆααα·ααΆααΈααα»ααααα ααΎαααααΈααΆααΆααααααααααΆααΆααααΆααα αααα»αα αΆααααααα
ααΆαααααΆααααααΌαααΈααααΆααΈααααΌαααα½αααΆαα½αααααα ααααααααα ααΆααα αααααααααααΆααΈααααΌ ααΆααααΆαααΆααΏαααΌα ααΆα αααα»αααΆαα’αα»αααα Get State API α αα αααα»αααααΆαααΆαααααΈ α αΆαααααααααααΆααΈααααΌααΈαα½ααααΆααααααααααΌαααΆααα½α (ααααα»ααΆααααααααααααΆααα α»α ααααΌαααΆαααΌαααΆααα ααΉαααΆαααΆαααΆααααΆαα)α ααΎαααααΌααααααααΆααΎααααα»αα½αααΆαααααΆαααααΆαααΆαααααααα»αααααΎαααααΌαααΆα α αΎαααΎαααΆαααααΎααΆαααααα’ααααΎαα·ααααααααααΆαααααααααα‘αΆα ααΌα ααΆααααα αΆαααΆααααααα
ααΌαααΆαααΈ 7: αααααααΎαα·ααααααααααΆααααααΈα ααΎααααααααΈααααα»ααΆαα½ααααααααΌααα½αααααΆαααΆαααααααα»αααα
ααααΆαα αα·ααΈααΆαααααααααααααααΆαααααααΌαααΆαααααΎααΆαα½α GET ALL API
ααΆαααααΎαααααΆααα
α αΆααααααααααα αααα»α Kafka Stream α’αΆα αααααΎααΆααΌαααααΆααα·ααααααα ααα αΆαααΆαααααααα
- α ααααααΆαααααααααΆαααα αααα»α Kafka
- CRUD API α’αΆα ααααΌαααΆααααααΎαα‘αΎααααΆαααΆααααα½ααα ααΎααααΌααααααααααααααααα
- ααΆααααααααααααΆαααΆαα αααΎαααΊαααα»αααααΆαααααα·α
- ααΆααα’αΆα ααααΎαα ααΆαααααααααα»αααΆαααααααα αΆααααααα½α α¬α αααΎααα αααα»α topology ααααααΈα ααΎααααΈαααααΆαα»ααα·αααααααααα½αα αααααΎααααα’αΆα ααααΌαααΆαααααΎαααααΆααα
- ααΆααααα»ααα·ααααααααααααααααααααααΌαααΆααααααΆααααΆαααααΆααα‘α»ααααααααΎαααΆαααααααΈα
- ααΆααααα»ααα·ααααααααααααααααααα’αΆα ααΆααααααααααα αααααααααααααΆαααααΆαααααααΆαααααΌαααΆααααααααΌα
- ααΆβα αααΎαβααα...
αα»ααααααααα·ααΆααααα αα·αα’αααααααααααααααααααααααΎα±ααααααααΈα Kafka αααααα·αααααααΆααααΆααααααααΆααααΆαααΆαααααα
αααα»αααααααααα
ααα
αΆαααΌα
ααΎααααα Kafka Stream ααΆααααα αΆαααΆααΆαααΆαααΏααΆααααααΆαααααα»αααα·ααααα (ααΎαααααΎαααααααΆαααΆαααΆαααααααΆαα
αΆααααΆααααΈααΆαααΆαααααααΆαααΆ) α αΎαααΎαααΆααααα»αα
α·αααααΆαααααααΆαααααααΆααΉααα·αααααα
ααΈααααα!
ααααα: www.habr.com