αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ‚αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ– αžšαž”αŸ€αž”αžŠαŸ‚αž›αž™αžΎαž„αž”αž„αŸ’αž€αžΎαžαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž…αŸ‚αž€αž…αžΆαž™αž–αžΈ Kafka Stream αž“αž·αž„αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž”αžΆαž“αž˜αž€αž–αžΈαžœαžΆαŸ”

ហេហេ!

αž™αžΎαž„αžšαŸ†αž›αžΉαž€αž’αŸ’αž“αž€αžαžΆαž’αŸ’αžœαžΎαžαžΆαž˜αžŸαŸ€αžœαž—αŸ…αž’αŸ†αž–αžΈ αž€αžΆαž€αžΆαž€αžΆαŸ” αž™αžΎαž„β€‹αž”αžΆαž“β€‹αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–β€‹αž•αŸ’αžŸαžΆαž™β€‹αž€αžΆαžšαž„αžΆαžšβ€‹αž‚αž½αžšβ€‹αž±αŸ’αž™β€‹αž…αžΆαž”αŸ‹β€‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸβ€‹αžŸαŸ’αž˜αžΎβ€‹αž‚αŸ’αž“αžΆβ€‹αž’αŸ†αž–αžΈβ€‹αž”αžŽαŸ’αžŽαžΆαž›αŸαž™ Kafka Stream API.

αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ‚αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ– αžšαž”αŸ€αž”αžŠαŸ‚αž›αž™αžΎαž„αž”αž„αŸ’αž€αžΎαžαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž…αŸ‚αž€αž…αžΆαž™αž–αžΈ Kafka Stream αž“αž·αž„αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž”αžΆαž“αž˜αž€αž–αžΈαžœαžΆαŸ”

αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž–αŸαž›αž“αŸαŸ‡ αžŸαž αž‚αž˜αž“αŸαž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αžŸαž·αž€αŸ’αžŸαžΆαž–αžΈαžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αž“αŸƒαž§αž”αž€αžšαžŽαŸαžŠαŸαž˜αžΆαž“αž₯αž‘αŸ’αž’αž·αž–αž›αž“αŸαŸ‡αŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž’αžαŸ’αžαž”αž‘β€‹αž˜αž½αž™β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž…αž»αŸ‡β€‹αž•αŸ’αžŸαžΆαž™β€‹αž“αžΆβ€‹αž–αŸαž›β€‹αžαŸ’αž˜αžΈβ€‹αŸ—β€‹αž“αŸαŸ‡ αžŠαŸ‚αž›β€‹αž‡αžΆβ€‹αž€αžΆαžšβ€‹αž”αž€β€‹αž”αŸ’αžšαŸ‚β€‹αžŠαŸ‚αž›β€‹αž™αžΎαž„β€‹αž…αž„αŸ‹β€‹αžŽαŸ‚αž“αžΆαŸ†β€‹αž’αŸ’αž“αž€β€‹αž²αŸ’αž™β€‹αžŸαŸ’αž‚αžΆαž›αŸ‹αŸ” αžαžΆαž˜αž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“ αž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’αž”αŸ’αžšαžΆαž”αŸ‹αž–αžΈαžšαž”αŸ€αž”αž”αž„αŸ’αžœαŸ‚αžš Kafka Stream αž‘αŸ…αž‡αžΆαž€αž“αŸ’αž›αŸ‚αž„αž•αŸ’αž‘αž»αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αž…αŸ‚αž€αž…αžΆαž™αŸ” αžŸαžΌαž˜αžšαžΈαž€αžšαžΆαž™αž’αžΆαž“!

αž”αžŽαŸ’αžŽαžΆαž›αŸαž™ Apache αžŸαŸ’αž‘αŸ’αžšαžΈαž˜ Kafka αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž‘αžΌαž‘αžΆαŸ†αž„αž–αž·αž—αž–αž›αŸ„αž€αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαž αž‚αŸ’αžšαžΆαžŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž…αŸ‚αž€αž…αžΆαž™αžŸαŸ’αž‘αŸ’αžšαžΈαž˜αž“αŸ…αž›αžΎαž€αŸ†αž–αžΌαž›αž“αŸƒ Apache KafkaαŸ” αž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αž˜αž½αž™αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αžŠαŸ‚αž›αž˜αž·αž“αž˜αžΆαž“αžαž˜αŸ’αž›αŸƒαž“αŸƒαž€αŸ’αžšαž”αžαŸαžŽαŸ’αžŒαž“αŸαŸ‡αž‚αžΊαžαžΆαžœαžΆαž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αžšαžŠαŸ’αž‹αž€αŸ’αž“αž»αž„αžŸαŸ’αžšαž»αž€αžŠαŸ‚αž›αž•αž›αž·αžαžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αŸ”

αž“αŸ…αž€αŸ’αž“αž»αž„αž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡ αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž”αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αžšαž”αžŸαŸ‹αž™αžΎαž„αž”αžΆαž“αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŠαžΎαž˜αŸ’αž”αžΈαž‘αž‘αž½αž›αž”αžΆαž“αž•αž›αž…αŸ†αžŽαŸαž‰αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž±αž€αžΆαžŸαž“αŸαŸ‡αž“αŸ…αž–αŸαž›αž”αž„αŸ’αž€αžΎαžαž•αž›αž·αžαž•αž›αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž–αž–αž€αŸ” αžŠαŸ„αž™αž”αŸ’αžšαžΎ Kafka Stream αž™αžΎαž„αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαžŸαŸαžœαžΆαž˜αžΈαž€αŸ’αžšαžΌαžšαžŠαŸ’αž‹αžŠαŸ‚αž›αž”αžΆαž“αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€ αžŠαŸ‚αž›αž“αžΈαž˜αž½αž™αŸ—αž˜αžΆαž“αžαž½αž“αžΆαž‘αžΈαž‡αžΆαž”αŸ’αžšαž—αž–αžŠαŸ‚αž›αž’αžαŸ‹αž±αž“αž…αŸ†αž–αŸ„αŸ‡αž€αŸ†αž αž»αžŸ αž“αž·αž„αž’αžΆαž…αžšαž€αž”αžΆαž“αžαŸ’αž–αžŸαŸ‹αž“αŸƒαž–αŸαžαŸŒαž˜αžΆαž“αžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“αž’αŸ†αž–αžΈαžŸαŸ’αžαžΆαž“αž—αžΆαž–αžšαž”αžŸαŸ‹αžœαžαŸ’αžαž»αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž–αž½αž€αž™αžΎαž„ αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž‡αŸ†αž αžΆαž“αž†αŸ’αž–αŸ„αŸ‡αž‘αŸ…αž˜αž»αžαž‘αžΆαŸ†αž„αž•αŸ’αž“αŸ‚αž€αž“αŸƒαž—αžΆαž–αž‡αžΏαž‡αžΆαž€αŸ‹ αž“αž·αž„αž—αžΆαž–αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž“αŸƒαž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαŸ”

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž›αžΎαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž‡αŸ†αž“αž½αžŸαžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αžŽαŸ’αžαžΆαž›αžαŸ‚αž˜αž½αž™αžŠαžΎαž˜αŸ’αž”αžΈαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαŸ’αžαžΆαž“αž—αžΆαž–αž•αŸ’αž›αžΌαžœαž€αžΆαžšαž“αŸƒαžœαžαŸ’αžαž»αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αž’αžΆαž“αžœαžΆ αžœαžΆαž“αžΉαž„αž‚αž½αžšαž±αŸ’αž™αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸ ...

αž αŸαžαž»β€‹αž’αŸ’αžœαžΈβ€‹αž”αžΆαž“β€‹αž‡αžΆβ€‹αž™αžΎαž„β€‹αž‚αž·αžβ€‹αžαžΆβ€‹αžŠαž›αŸ‹β€‹αž–αŸαž›β€‹αžαŸ’αžšαžΌαžœβ€‹αž•αŸ’αž›αžΆαžŸαŸ‹β€‹αž”αŸ’αžαžΌαžšβ€‹αžšαž”αŸ€αž”β€‹αž’αŸ’αžœαžΎβ€‹αž€αžΆαžšβ€‹αž‡αžΆαž˜αž½αž™β€‹αžšαžŠαŸ’αž‹β€‹αžšαž½αž˜

αž™αžΎαž„αžαŸ’αžšαžΌαžœαžšαž€αŸ’αžŸαžΆαžŸαŸ’αžαžΆαž“αž—αžΆαž–αž“αŸƒαžœαžαŸ’αžαž»αž•αŸ’αžŸαŸαž„αŸ—αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžš (αž§αž‘αžΆαž αžšαžŽαŸαŸ– αžαžΎαž‚αŸαž αž‘αŸ†αž–αŸαžšαž“αŸαŸ‡αžŸαŸ’αžαž·αžαž“αŸ…αž€αŸ’αžšαŸ„αž˜αž€αžΆαžšαžœαžΆαž™αž”αŸ’αžšαž αžΆαžš)? αž˜αž»αž“αž–αŸαž›αž’αŸ’αžœαžΎαž…αŸ†αžŽαžΆαž€αžŸαŸ’αžšαž»αž€αž‘αŸ…αž€αžΆαž“αŸ‹ Kafka Stream αž™αžΎαž„αžαŸ‚αž„αžαŸ‚αž–αžΉαž„αž•αŸ’αž’αŸ‚αž€αž›αžΎαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αžŽαŸ’αžαžΆαž›αžαŸ‚αž˜αž½αž™ (+ API αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜) αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžšαžŠαŸ’αž‹αŸ” αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž“αŸαŸ‡αž˜αžΆαž“αž‚αž»αžŽαžœαž·αž”αžαŸ’αžαž·αžšαž”αžŸαŸ‹αžœαžΆ: αž€αžΆαž›αž”αžšαž·αž…αŸ’αž†αŸαž‘αž“αŸƒαžŸαŸ’αžαžΆαž“αž—αžΆαž–αžŠαŸ‚αž›αž–αžΉαž„αž•αŸ’αž’αŸ‚αž€αžαŸ’αž›αžΆαŸ†αž„ αž€αžΆαžšαžšαž€αŸ’αžŸαžΆαž—αžΆαž–αžŸαŸŠαžΈαžŸαž„αŸ’αžœαžΆαž€αŸ‹αž‚αŸ’αž“αžΆ αž“αž·αž„αž€αžΆαžšαž’αŸ’αžœαžΎαžŸαž˜αž€αžΆαž›αž€αž˜αŸ’αž˜αž€αŸ’αž›αžΆαž™αž‡αžΆαž”αž‰αŸ’αž αžΆαž”αŸ’αžšαžˆαž˜αž–αž·αžαž”αŸ’αžšαžΆαž€αžŠαŸ” αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž’αžΆαž…αž€αŸ’αž›αžΆαž™αž‡αžΆαž§αž”αžŸαž‚αŸ’αž‚ αž¬αž”αž‰αŸ’αž…αž”αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„ αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž”αŸ’αžšαžŽαžΆαŸ†αž„ αž“αž·αž„αž‘αž‘αž½αž›αžšαž„αž–αžΈαž€αžΆαžšαž˜αž·αž“αž’αžΆαž…αž‘αžΆαž™αž‘αž»αž€αž‡αžΆαž˜αž»αž“αž”αžΆαž“αŸ”

αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ‚αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ– αžšαž”αŸ€αž”αžŠαŸ‚αž›αž™αžΎαž„αž”αž„αŸ’αž€αžΎαžαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž…αŸ‚αž€αž…αžΆαž™αž–αžΈ Kafka Stream αž“αž·αž„αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž”αžΆαž“αž˜αž€αž–αžΈαžœαžΆαŸ”

αžšαžΌαž”αž—αžΆαž–αž‘αžΈ 1αŸ– αžŸαŸαžŽαžΆαžšαžΈαž™αŸ‰αžΌαž“αŸƒαžšαžŠαŸ’αž‹αž”αŸ†αž”αŸ‚αž€αž’αž˜αŸ’αž˜αžαžΆαžŠαŸ‚αž›αžƒαžΎαž‰αž˜αž»αž“αž–αŸαž›αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‘αŸ…
Kafka αž“αž·αž„ Kafka StreamαŸ– αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αž‘αžŸαŸ’αžŸαž“αŸˆαžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαžαžΆαž˜αžšαž™αŸˆ API αžŸαŸ’αžαžΆαž“αž—αžΆαž–αžŠαŸ‚αž›αž”αžΆαž“αž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžŽαž“αžΆαžαžΆαž˜αžšαž™αŸˆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αžŽαŸ’αžαžΆαž›

αž‡αž½αž”αž‡αžΆαž˜αž½αž™ Kafka Stream αžŠαŸ‚αž›αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž„αžΆαž™αžŸαŸ’αžšαž½αž›αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαžŸαŸαžœαžΆαž˜αžΈαž€αŸ’αžšαžΌαžšαžŠαŸ’αž‹αžŠαŸ‚αž›αž”αžΆαž“αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€

αž”αŸ’αžšαž αŸ‚αž›αž˜αž½αž™αž†αŸ’αž“αžΆαŸ†αž˜αž»αž“ αž™αžΎαž„αž”αžΆαž“αžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαž–αž·αž“αž·αžαŸ’αž™αž™αŸ‰αžΆαž„αž™αž€αž…αž·αžαŸ’αžαž‘αž»αž€αžŠαžΆαž€αŸ‹αž›αžΎαžŸαŸαžŽαžΆαžšαžΈαž™αŸ‰αžΌαžšαžŠαŸ’αž‹αžšαž½αž˜αž‚αŸ’αž“αžΆαžšαž”αžŸαŸ‹αž™αžΎαž„ αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž‘αžΆαŸ†αž„αž“αŸαŸ‡αŸ” αž—αŸ’αž›αžΆαž˜αŸ—αž“αŸ„αŸ‡ αž™αžΎαž„αž”αžΆαž“αžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαžŸαžΆαž€αž›αŸ’αž”αž„ Kafka Stream - αž™αžΎαž„αžŠαžΉαž„αžαžΆαžαžΎαžœαžΆαž˜αžΆαž“αž‘αŸ†αž αŸ†αž”αŸ‰αž»αž“αžŽαžΆ αž’αžΆαž…αž”αŸ’αžšαžΎαž”αžΆαž“αžαŸ’αž–αžŸαŸ‹ αž“αž·αž„αž’αžαŸ‹αž±αž“αž…αŸ†αž–αŸ„αŸ‡αž€αŸ†αž αž»αžŸ αž˜αž»αžαž„αžΆαžšαžŸαŸ’αž‘αŸ’αžšαžΈαž˜αžŠαŸαžŸαŸ†αž”αžΌαžšαž”αŸ‚αž”αžŠαŸ‚αž›αžœαžΆαž˜αžΆαž“ (αž€αžΆαžšαž”αŸ†αž”αŸ’αž›αŸ‚αž„ αžšαž½αž˜αž‘αžΆαŸ†αž„αžšαžŠαŸ’αž‹)αŸ” αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž‡αžΆαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž™αžΎαž„αžαŸ’αžšαžΌαžœαž€αžΆαžšαž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡ αžŠαŸ„αž™αž˜αž·αž“αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž•αŸ’αž‰αžΎαžŸαžΆαžšαž˜αžΆαž“αž—αžΆαž–αž…αžΆαžŸαŸ‹αž‘αž»αŸ† αž“αž·αž„αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„ Kafka αŸ”

αžŸαŸαžœαžΆαž˜αžΈαž€αŸ’αžšαžΌαž αž·αžšαž‰αŸ’αž‰αžœαžαŸ’αžαž»αž“αžΈαž˜αž½αž™αŸ—αžŠαŸ‚αž›αž™αžΎαž„αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αž“αŸ…αž›αžΎαž€αŸ†αž–αžΌαž›αž“αŸƒ Kafka Stream instance αž‡αžΆαž˜αž½αž™αž“αžΉαž„ topology αžŸαžΆαž˜αž‰αŸ’αž‰αžŸαž˜αžšαž˜αŸ’αž™αŸ” αžœαžΆαž˜αžΆαž“ 1) αž”αŸ’αžšαž—αž– 2) αžαž½αžšαž€αŸ’αž”αžΆαž›αžŠαŸ‚αž›αž˜αžΆαž“αžƒαŸ’αž›αžΆαŸ†αž„αžαž˜αŸ’αž›αŸƒαž‡αžΆαž”αŸ‹αž›αžΆαž”αŸ‹ 3) αž›αž·αž…αž˜αž½αž™:

αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ‚αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ– αžšαž”αŸ€αž”αžŠαŸ‚αž›αž™αžΎαž„αž”αž„αŸ’αž€αžΎαžαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž…αŸ‚αž€αž…αžΆαž™αž–αžΈ Kafka Stream αž“αž·αž„αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž”αžΆαž“αž˜αž€αž–αžΈαžœαžΆαŸ”

αžšαžΌαž”αž—αžΆαž–αž‘αžΈ 2αŸ– αžαžΌαž”αŸ‰αžΌαž‘αžΌαž‰αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αž“αŸƒαž§αž‘αžΆαž αžšαžŽαŸαž€αžΆαžšαž•αŸ’αžŸαžΆαž™αžšαž”αžŸαŸ‹αž™αžΎαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸαžœαžΆαž˜αžΈαž€αŸ’αžšαžΌαžšαžŠαŸ’αž‹αŸ” αž…αŸ†αžŽαžΆαŸ†αžαžΆαž˜αžΆαž“αžƒαŸ’αž›αžΆαŸ†αž„αž“αŸ…αž‘αžΈαž“αŸαŸ‡αž•αž„αžŠαŸ‚αžšαžŠαŸ‚αž›αž˜αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž˜αŸαžαžΆαž“αŸƒαž•αŸ‚αž“αž€αžΆαžšαŸ”

αž“αŸ…αž€αŸ’αž“αž»αž„αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαžαŸ’αž˜αžΈαž“αŸαŸ‡ αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαžŸαžšαžŸαŸαžšαžŸαžΆαžšαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž”αŸ’αžšαž—αž– αž αžΎαž™αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ - αž“αž·αž™αžΆαž™αžαžΆ αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž‡αžΌαž“αžŠαŸ†αžŽαžΉαž„αžαžΆαž˜αžŸαŸ†αž”αž»αžαŸ’αžš - αž‘αž‘αž½αž›αž”αžΆαž“αžŸαŸ’αžαžΆαž“αž—αžΆαž–αžŠαŸ‚αž›αž”αžΆαž“αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αžŠαŸ‚αž›αž”αžΆαž“αž‚αžŽαž“αžΆαžαžΆαž˜αžšαž™αŸˆαž›αž·αž… (αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž›αž‘αŸ’αž’αž•αž›)αŸ”

αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ‚αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ– αžšαž”αŸ€αž”αžŠαŸ‚αž›αž™αžΎαž„αž”αž„αŸ’αž€αžΎαžαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž…αŸ‚αž€αž…αžΆαž™αž–αžΈ Kafka Stream αž“αž·αž„αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž”αžΆαž“αž˜αž€αž–αžΈαžœαžΆαŸ”

αžšαžΌαž”αž—αžΆαž–αž‘αžΈ 3αŸ– αž›αŸ†αž αžΌαžšαž€αžΆαžšαž„αžΆαžšαž§αž‘αžΆαž αžšαžŽαŸαžαŸ’αž˜αžΈαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸαžŽαžΆαžšαžΈαž™αŸ‰αžΌαž‡αžΆαž˜αž½αž™αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž˜αžΈαž€αŸ’αžšαžΌαž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αŸ– 1) αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž”αž„αŸ’αž€αžΎαžαžŸαžΆαžšαžŠαŸ‚αž›αž˜αž€αžŠαž›αŸ‹αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž”αŸ’αžšαž—αž– Kafka αŸ” 2) αžŸαŸαžœαžΆαž˜αžΈαž€αŸ’αžšαžΌαžŠαŸ‚αž›αž˜αžΆαž“αžšαžŠαŸ’αž‹αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€ (αžŠαŸ„αž™αž”αŸ’αžšαžΎ Kafka Stream) αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžœαžΆ αž αžΎαž™αžŸαžšαžŸαŸαžšαžŸαŸ’αžαžΆαž“αž—αžΆαž–αžŠαŸ‚αž›αž”αžΆαž“αž‚αžŽαž“αžΆαž‘αŸ…αž”αŸ’αžšαž’αžΆαž“αž”αž‘ Kafka αž…αž»αž„αž€αŸ’αžšαŸ„αž™αŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž“αŸ„αŸ‡ 3) αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž‘αž‘αž½αž›αž™αž€αžšαžŠαŸ’αž‹αžαŸ’αž˜αžΈαŸ”

ហេ αž αžΆαž„αžαž˜αŸ’αž›αŸƒαžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž€αž‡αžΆαž˜αž½αž™αž“αŸαŸ‡αž–αž·αžαž‡αžΆαž˜αžΆαž“αž”αŸ’αžšαž™αŸ„αž‡αž“αŸαžαŸ’αž›αžΆαŸ†αž„αžŽαžΆαžŸαŸ‹!

αžŠαžΌαž…αžŠαŸ‚αž›αž”αžΆαž“αžšαŸ€αž”αžšαžΆαž”αŸ‹αžαžΆαž„αž›αžΎ Topology αžšαžŠαŸ’αž‹αžŠαŸ‚αž›αž”αžΆαž“αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αžšαž”αžŸαŸ‹αž™αžΎαž„αž˜αžΆαž“αžƒαŸ’αž›αžΆαŸ†αž„αžαž˜αŸ’αž›αŸƒαž‚αž“αŸ’αž›αžΉαŸ‡αŸ” αž™αžΎαž„αž”αžΆαž“αžšαž€αžƒαžΎαž‰αž‡αž˜αŸ’αžšαžΎαžŸαž‡αžΆαž…αŸ’αžšαžΎαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžœαžΆ αž αžΎαž™αž–αžΈαžšαž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αž–αž½αž€αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž·αž–αžŽαŸŒαž“αžΆαžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ”

αž‡αž˜αŸ’αžšαžΎαžŸαž‘αžΈ 1αŸ– αž”αŸ’αžšαžΎαžƒαŸ’αž›αžΆαŸ†αž„αžαž˜αŸ’αž›αŸƒαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž‚αžŽαž“αžΆ

αž αžΆαž„αžαž˜αŸ’αž›αŸƒαž‚αž“αŸ’αž›αžΉαŸ‡αžŠαŸ†αž”αžΌαž„αžšαž”αžŸαŸ‹αž™αžΎαž„αž˜αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‡αŸ†αž“αž½αž™αžŠαŸ‚αž›αž™αžΎαž„αžαŸ’αžšαžΌαžœαž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž‚αžŽαž“αžΆαŸ” αž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸ αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžαŸ’αž›αŸ‡αžšαžŠαŸ’αž‹αžšαž½αž˜αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžŠαŸ„αž™αž‚αŸ„αž›αž€αžΆαžšαžŽαŸ "αžŸαŸ†αž‘αŸαž„αž—αžΆαž‚αž…αŸ’αžšαžΎαž“"αŸ” αžƒαŸ’αž›αžΆαŸ†αž„αž’αžΆαž…αž•αŸ’αž‘αž»αž€αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž…αž»αž„αž€αŸ’αžšαŸ„αž™αž”αŸ†αž•αž»αžαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž’αŸ†αž–αžΈαžŸαŸ’αžαžΆαž“αž—αžΆαž–αž“αŸƒαžœαžαŸ’αžαž»αž˜αž½αž™αž…αŸ†αž“αž½αž“αŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€ αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž™αžΎαž„αž‘αž‘αž½αž›αž”αžΆαž“αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαžαŸ’αž˜αžΈαž–αžΈαž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž˜αž½αž™ αž¬αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž˜αž½αž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αž αž™αžΎαž„αž’αžΆαž…αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αžœαžΆ αž‘αžΆαž‰αž™αž€αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαž–αžΈαž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž’αŸ†αž–αžΈαžŸαŸ’αžαžΆαž“αž—αžΆαž–αž“αŸƒαžœαžαŸ’αžαž»αžŠαžΌαž…αž‚αŸ’αž“αžΆαž–αžΈαž€αž“αŸ’αž›αŸ‚αž„αž•αŸ’αž‘αž»αž€ αž αžΎαž™αž’αŸ’αžœαžΎαž€αžΆαžšαž‚αžŽαž“αžΆαž‘αžΎαž„αžœαž·αž‰αŸ”
αžšαžΌαž”αž—αžΆαž–αž‘αžΈ 4 αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αž”αž„αŸ’αž αžΆαž‰αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αž™αžΎαž„αž›αžΆαžαžαŸ’αžšαžŠαžΆαž„αžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹/αžαž˜αŸ’αž›αŸƒαž‘αŸ…αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžšαž”αžŸαŸ‹αžαž½αžšαž€αŸ’αž”αžΆαž› αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžŸαžΆαžšαžαŸ’αž˜αžΈαž’αžΆαž…αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αžΆαž“αŸ”

αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ‚αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ– αžšαž”αŸ€αž”αžŠαŸ‚αž›αž™αžΎαž„αž”αž„αŸ’αž€αžΎαžαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž…αŸ‚αž€αž…αžΆαž™αž–αžΈ Kafka Stream αž“αž·αž„αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž”αžΆαž“αž˜αž€αž–αžΈαžœαžΆαŸ”

αžšαžΌαž”αž—αžΆαž–αž‘αžΈ 4αŸ– αž™αžΎαž„αž”αžΎαž€αž€αžΆαžšαž…αžΌαž›αž‘αŸ…αž€αžΆαž“αŸ‹αžƒαŸ’αž›αžΆαŸ†αž„αžαž˜αŸ’αž›αŸƒαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžšαž”αžŸαŸ‹ processor (αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž“αŸαŸ‡ αžšαžΆαž›αŸ‹αžŸαŸ’αž‚αŸ’αžšαžΈαž”αžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αžΆαž˜αž½αž™αžšαžŠαŸ’αž‹αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αžαŸ’αžšαžΌαžœαžαŸ‚αž’αž“αž»αžœαžαŸ’αžαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžš doProcess)

αž‡αž˜αŸ’αžšαžΎαžŸαž‘αžΈ 2αŸ– αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž CRUD API αž“αŸ…αž›αžΎαž€αŸ†αž–αžΌαž›αž“αŸƒ Kafka Stream

αžŠαŸ„αž™αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž›αŸ†αž αžΌαžšαž€αžΆαžšαž„αžΆαžšαž‡αžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αžšαž”αžŸαŸ‹αž™αžΎαž„ αž™αžΎαž„αž”αžΆαž“αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž–αŸ’αž™αžΆαž™αžΆαž˜αžŸαžšαžŸαŸαžš RESTful CRUD API αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸαžœαžΆαž˜αžΈαž€αŸ’αžšαžΌαžšαžŠαŸ’αž‹αžŠαŸ‚αž›αž”αžΆαž“αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αžšαž”αžŸαŸ‹αž™αžΎαž„αŸ” αž™αžΎαž„β€‹αž…αž„αŸ‹β€‹αž’αžΆαž…β€‹αž‘αŸ…β€‹αž™αž€β€‹αžŸαŸ’αžαžΆαž“αž—αžΆαž–β€‹αžšαž”αžŸαŸ‹β€‹αžœαžαŸ’αžαž»β€‹αž˜αž½αž™β€‹αž…αŸ†αž“αž½αž“ αž¬β€‹αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αž–αŸ’αžšαž˜β€‹αž‘αžΆαŸ†αž„β€‹αž€αŸ†αžŽαžαŸ‹ αž¬β€‹αž›αž»αž”β€‹αžŸαŸ’αžαžΆαž“αž—αžΆαž–β€‹αžšαž”αžŸαŸ‹β€‹αžœαžαŸ’αžαž»β€‹αž…αŸαž‰ (αž˜αžΆαž“β€‹αž”αŸ’αžšαž™αŸ„αž‡αž“αŸβ€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αž€αžΆαžšβ€‹αž‚αžΆαŸ†αž‘αŸ’αžšβ€‹αž•αŸ’αž“αŸ‚αž€β€‹αžαžΆαž„αž€αŸ’αžšαŸ„αž™)αŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαž‚αžΆαŸ†αž‘αŸ’αžš Get State API αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αž“αŸ…αž–αŸαž›αžŽαžΆαžŠαŸ‚αž›αž™αžΎαž„αžαŸ’αžšαžΌαžœαž€αžΆαžšαžŠαžΎαž˜αŸ’αž”αžΈαž‚αžŽαž“αžΆαž‘αžΎαž„αžœαž·αž‰αž“αžΌαžœαžŸαŸ’αžαžΆαž“αž—αžΆαž–αž€αŸ†αž‘αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž™αžΎαž„αž”αžΆαž“αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αžƒαŸ’αž›αžΆαŸ†αž„αžαž˜αŸ’αž›αŸƒαžŸαŸ„αžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžšαžΆαž”αŸ‹αž€αŸ’αž“αž»αž„αžšαž™αŸˆαž–αŸαž›αž™αžΌαžšαŸ” αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž“αŸαŸ‡ αžœαžΆαž‚αžΊαžŸαžΆαž˜αž‰αŸ’αž‰αžŽαžΆαžŸαŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž API αž”αŸ‚αž”αž“αŸαŸ‡αžŠαŸ„αž™αž”αŸ’αžšαžΎαž§αž‘αžΆαž αžšαžŽαŸαžαŸ‚αž˜αž½αž™αž“αŸƒ Kafka Stream αžŠαžΌαž…αžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αž€αŸ’αž“αž»αž„αž”αž‰αŸ’αž‡αžΈαžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ–

αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ‚αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ– αžšαž”αŸ€αž”αžŠαŸ‚αž›αž™αžΎαž„αž”αž„αŸ’αž€αžΎαžαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž…αŸ‚αž€αž…αžΆαž™αž–αžΈ Kafka Stream αž“αž·αž„αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž”αžΆαž“αž˜αž€αž–αžΈαžœαžΆαŸ”

αžšαžΌαž”αž—αžΆαž–αž‘αžΈ 5: αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžƒαŸ’αž›αžΆαŸ†αž„αžαž˜αŸ’αž›αŸƒαžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž€αž‡αžΆαž˜αž½αž™ αžŠαžΎαž˜αŸ’αž”αžΈαž‘αž‘αž½αž›αž”αžΆαž“αžŸαŸ’αžαžΆαž“αž—αžΆαž–αžŠαŸ‚αž›αž”αžΆαž“αž‚αžŽαž“αžΆαž‡αžΆαž˜αž»αž“αž“αŸƒαžœαžαŸ’αžαž»

αž€αžΆαžšαž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž“αŸƒαžœαžαŸ’αžαž»αžαžΆαž˜αžšαž™αŸˆ API αž€αŸαž„αžΆαž™αžŸαŸ’αžšαž½αž›αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž•αž„αžŠαŸ‚αžšαŸ” αž‡αžΆαž‘αžΌαž‘αŸ…αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž’αŸ’αžœαžΎαž‚αžΊαž”αž„αŸ’αž€αžΎαžαž’αŸ’αž“αž€αž•αž›αž·αž Kafka αž αžΎαž™αž”αŸ’αžšαžΎαžœαžΆαžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαž€αŸ†αžŽαžαŸ‹αžαŸ’αžšαžΆαžŠαŸ‚αž›αž˜αžΆαž“αžšαžŠαŸ’αž‹αžαŸ’αž˜αžΈαŸ” αž“αŸαŸ‡αž’αžΆαž“αžΆαžαžΆαžŸαžΆαžšαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαžαžΆαž˜αžšαž™αŸˆ API αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžαžΆαž˜αžšαž”αŸ€αž”αžŠαžΌαž…αž‚αŸ’αž“αžΆαž“αžΉαž„αžŸαžΆαžšαžŠαŸ‚αž›αž‘αž‘αž½αž›αž”αžΆαž“αž–αžΈαž’αŸ’αž“αž€αž•αž›αž·αžαž•αŸ’αžŸαŸαž„αž‘αŸ€αž (αž§αž‘αžΆαž αžšαžŽαŸαž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžš)αŸ”

αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ‚αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ– αžšαž”αŸ€αž”αžŠαŸ‚αž›αž™αžΎαž„αž”αž„αŸ’αž€αžΎαžαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž…αŸ‚αž€αž…αžΆαž™αž–αžΈ Kafka Stream αž“αž·αž„αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž”αžΆαž“αž˜αž€αž–αžΈαžœαžΆαŸ”

αžšαžΌαž”αž—αžΆαž–αž‘αžΈ 6: αž’αŸ’αž“αž€αž’αžΆαž…αž€αŸ†αžŽαžαŸ‹αžŸαŸ’αžαžΆαž“αž—αžΆαž–αžšαž”αžŸαŸ‹αžœαžαŸ’αžαž»αžŠαŸ„αž™αž”αŸ’αžšαžΎαž’αŸ’αž“αž€αž•αž›αž·αž Kafka

αž—αžΆαž–αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αžαžΌαž…: Kafka αž˜αžΆαž“αž—αžΆαž‚αžαžΆαžŸαž‡αžΆαž…αŸ’αžšαžΎαž“αŸ”

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž‘αŸ€αž αž™αžΎαž„αž…αž„αŸ‹αž…αŸ‚αž€αž…αžΆαž™αž”αž“αŸ’αž‘αž»αž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž“αž·αž„αž€αŸ‚αž›αž˜αŸ’αž’αž—αžΆαž–αž’αžΆαž…αžšαž€αž”αžΆαž“αžŠαŸ„αž™αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž…αž„αŸ’αž€αŸ„αž˜αž“αŸƒαžŸαŸαžœαžΆαž˜αžΈαž€αŸ’αžšαžΌαžšαžŠαŸ’αž‹αžšαž½αž˜αž€αŸ’αž“αž»αž„αž˜αž½αž™αžŸαŸαžŽαžΆαžšαžΈαž™αŸ‰αžΌαŸ” αž€αžΆαžšβ€‹αžšαŸ€αž”αž…αŸ†β€‹αž‚αžΊβ€‹αž‡αžΆβ€‹αž€αžΆαžšβ€‹αž„αžΆαž™αžŸαŸ’αžšαž½αž›β€‹αž˜αž½αž™αŸ– αž–αŸαž›β€‹αžŠαŸ‚αž›β€‹αž™αžΎαž„β€‹αž€αŸ†αžŽαžαŸ‹β€‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’β€‹αžœαžαŸ’αžαž»β€‹αž‘αžΆαŸ†αž„αž’αžŸαŸ‹β€‹αž±αŸ’αž™β€‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšβ€‹αž€αŸ’αžšαŸ„αž˜β€‹αž›αŸαžβ€‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹β€‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈβ€‹αžŠαžΌαž…β€‹αž‚αŸ’αž“αžΆ (αž“αž·αž„β€‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“β€‹αž”αž˜αŸ’αžšαžΎβ€‹αž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜β€‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’β€‹αžŠαžΌαž…αž‚αŸ’αž“αžΆ) αžŸαŸ’αž‘αžΎαžšαžαŸ‚β€‹αž’αŸ’αžœαžΈαŸ—β€‹αž‘αžΆαŸ†αž„αž’αžŸαŸ‹β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž’αŸ’αžœαžΎβ€‹αžŠαŸ„αž™β€‹αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αŸ” αž™αžΎαž„αž€αŸαž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž•αž„αžŠαŸ‚αžšαžαžΆαž”αŸ’αžšαž’αžΆαž“αž”αž‘αž”αŸ’αžšαž—αž–αž“αžΈαž˜αž½αž™αŸ—αž“αžΉαž„αž˜αžΆαž“αž—αžΆαž‚αžαžΆαžŸαž‡αžΆαž…αŸ’αžšαžΎαž“ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž§αž‘αžΆαž αžšαžŽαŸαž“αžΈαž˜αž½αž™αŸ—αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αžΆαžαŸ‹αžαžΆαŸ†αž„αž‡αžΆαž•αŸ’αž“αŸ‚αž€αžšαž„αž“αŸƒαž—αžΆαž‚αžαžΆαžŸαž”αŸ‚αž”αž“αŸαŸ‡αŸ”

αžαŸ’αž‰αž»αŸ†αž€αŸαž“αžΉαž„αž›αžΎαž€αž‘αžΎαž„αž•αž„αžŠαŸ‚αžšαžαžΆ αžœαžΆαž‡αžΆαž‘αž˜αŸ’αž›αžΆαž”αŸ‹αž’αž˜αŸ’αž˜αžαžΆαž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αŸ’αžœαžΎαž…αŸ’αž”αžΆαž”αŸ‹αž…αž˜αŸ’αž›αž„αž”αž˜αŸ’αžšαž»αž„αž‘αž»αž€αžšαž”αžŸαŸ‹αž αžΆαž„αžšαžŠαŸ’αž‹ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž§αž‘αžΆαž αžšαžŽαŸ αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž˜αžΆαž“αž€αžΆαžšαžŸαŸ’αžŠαžΆαžšαž‘αžΎαž„αžœαž·αž‰αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž€αžΆαžšαž”αžšαžΆαž‡αŸαž™ αžŸαžΌαž˜αž•αŸ’αž‘αŸαžšαž…αŸ’αž”αžΆαž”αŸ‹αž…αž˜αŸ’αž›αž„αž“αŸαŸ‡αž‘αŸ…αžœαžαŸ’αžαž»αž˜αž½αž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž αžΆαž„αžšαžŠαŸ’αž‹αž“αžΈαž˜αž½αž™αŸ—αž“αŸ…αž€αŸ’αž“αž»αž„ Kafka Stream αž”αŸ’αžšαž’αžΆαž“αž”αž‘αžŠαŸ‚αž›αž”αžΆαž“αž…αž˜αŸ’αž›αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž“αŸƒαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžš (αžŠαŸ‚αž›αžαžΆαž˜αžŠαžΆαž“αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž€αŸ’αž“αž»αž„αžαŸ†αž”αž“αŸ‹)αŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡ Kafka αžαŸ‚αž„αžαŸ‚αž‚αžΆαŸ†αž‘αŸ’αžšαž αžΆαž„αžšαž”αžŸαŸ‹αžšαžŠαŸ’αž‹αŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž˜αžΆαž“αž€αžΆαžšαž”αžšαžΆαž‡αŸαž™αž“αŸƒαž§αž‘αžΆαž αžšαžŽαŸ Kafka Stream αž˜αž½αž™ αž¬αž˜αž½αž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αž αž αžΆαž„αžšαž”αžŸαŸ‹αžšαžŠαŸ’αž‹αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαŸ’αžŠαžΆαžšαž‘αžΎαž„αžœαž·αž‰αž™αŸ‰αžΆαž„αž†αžΆαž”αŸ‹αžšαž αŸαžŸαž›αžΎαž§αž‘αžΆαž αžšαžŽαŸαž˜αž½αž™αž‘αŸ€αž αžŠαŸ‚αž›αž—αžΆαž‚αžαžΆαžŸαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαž“αžΉαž„αž‘αŸ…αŸ” αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαžšαž”αžŸαŸ‹αž™αžΎαž„αž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αžαžΆαžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž€αŸ’αž“αž»αž„αžšαž™αŸˆαž–αŸαž›αžαŸ‚αž”αŸ‰αž»αž“αŸ’αž˜αžΆαž“αžœαž·αž“αžΆαž‘αžΈαž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡ αž”αžΎαž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž˜αžΆαž“αž€αŸ†αžŽαžαŸ‹αžαŸ’αžšαžΆαžšαžΆαž”αŸ‹αž›αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αž αžΆαž„αž€αŸαžŠαŸ„αž™αŸ”

αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž–αžΈαžŸαŸαžœαžΆαž˜αžΈαž€αŸ’αžšαžΌαžαŸ‚αž˜αž½αž™αž‡αžΆαž˜αž½αž™αžšαžŠαŸ’αž‹αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αž‘αŸ…αž€αžΆαž“αŸ‹αž…αž„αŸ’αž€αŸ„αž˜αž“αŸƒαžŸαŸαžœαžΆαž˜αžΈαž€αŸ’αžšαžΌ αžœαžΆαž€αŸ’αž›αžΆαž™αž‡αžΆαžšαžΏαž„αžαžΌαž…αžαžΆαž…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž Get State API αŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸ’αžαžΆαž“αž—αžΆαž–αžαŸ’αž˜αžΈ αž αžΆαž„αžšαžŠαŸ’αž‹αž“αŸƒαžŸαŸαžœαžΆαž˜αžΈαž€αŸ’αžšαžΌαž“αžΈαž˜αž½αž™αŸ—αž˜αžΆαž“αž•αŸ’αž“αŸ‚αž€αž“αŸƒαžšαžΌαž”αž—αžΆαž–αžšαž½αž˜ (αžœαžαŸ’αžαž»αž‘αžΆαŸ†αž„αž“αŸ„αŸ‡αžŠαŸ‚αž›αž‚αŸ’αžšαžΆαž”αŸ‹αž…αž»αž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžΌαžŸαžœαžΆαžŸαž‘αŸ…αž“αžΉαž„αž—αžΆαž‚αžαžΆαžŸαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹)αŸ” αž™αžΎαž„αžαŸ’αžšαžΌαžœαž€αŸ†αžŽαžαŸ‹αžαžΆαžαžΎαžœαžαŸ’αžαž»αž˜αž½αž™αžŽαžΆαžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž“αŸƒαžœαžαŸ’αžαž»αžŠαŸ‚αž›αž™αžΎαž„αžαŸ’αžšαžΌαžœαž€αžΆαžš αž αžΎαž™αž™αžΎαž„αž”αžΆαž“αž’αŸ’αžœαžΎαžœαžΆαžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž‘αž·αž“αŸ’αž“αž“αŸαž™αž˜αŸαžαžΆαž“αŸƒαžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™ αžŠαžΌαž…αž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ–

αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ‚αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ– αžšαž”αŸ€αž”αžŠαŸ‚αž›αž™αžΎαž„αž”αž„αŸ’αž€αžΎαžαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž…αŸ‚αž€αž…αžΆαž™αž–αžΈ Kafka Stream αž“αž·αž„αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž”αžΆαž“αž˜αž€αž–αžΈαžœαžΆαŸ”

αžšαžΌαž”αž—αžΆαž–αž‘αžΈ 7: αžŠαŸ„αž™αž”αŸ’αžšαžΎαž‘αž·αž“αŸ’αž“αž“αŸαž™αž˜αŸαžαžΆαžŸαŸ’αž‘αŸ’αžšαžΈαž˜ αž™αžΎαž„αž€αŸ†αžŽαžαŸ‹αž–αžΈαžœαžαŸ’αžαž»αžŽαžΆαž˜αž½αž™αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαžŸαž½αžšαžŸαŸ’αžαžΆαž“αž—αžΆαž–αž“αŸƒαžœαžαŸ’αžαž»αžŠαŸ‚αž›αž…αž„αŸ‹αž”αžΆαž“αŸ” αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž‡αžΆαž˜αž½αž™ GET ALL API

αž€αžΆαžšαžšαž€αžƒαžΎαž‰αžŸαŸ†αžαžΆαž“αŸ‹αŸ—

αž αžΆαž„αžšαž”αžŸαŸ‹αžšαžŠαŸ’αž‹αž“αŸ…αž€αŸ’αž“αž»αž„ Kafka Stream αž’αžΆαž…αž”αž˜αŸ’αžšαžΎαž‡αžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž…αŸ‚αž€αž…αžΆαž™αž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„αŸ”

  • αž…αž˜αŸ’αž›αž„αž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„ Kafka
  • CRUD API αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αž™αŸ‰αžΆαž„αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž“αŸ…αž›αžΎαž€αŸ†αž–αžΌαž›αž“αŸƒαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ‚αž”αž“αŸαŸ‡
  • αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž—αžΆαž‚αžαžΆαžŸαž…αŸ’αžšαžΎαž“αž‚αžΊαžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αž”αž“αŸ’αžαž·αž…
  • αžœαžΆαž€αŸαž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“αž•αž„αžŠαŸ‚αžšαž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž“αŸ’αžαŸ‚αž˜αž αžΆαž„αžšαžŠαŸ’αž‹αž˜αž½αž™ αž¬αž…αŸ’αžšαžΎαž“αž‘αŸ…αž€αŸ’αž“αž»αž„ topology αžŸαŸ’αž‘αŸ’αžšαžΈαž˜ αžŠαžΎαž˜αŸ’αž”αžΈαžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‡αŸ†αž“αž½αž™αŸ” αž‡αž˜αŸ’αžšαžΎαžŸαž“αŸαŸ‡αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αŸ–
  • αž€αžΆαžšαž•αŸ’αž‘αž»αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αžšαž™αŸˆαž–αŸαž›αžœαŸ‚αž„αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž‚αžŽαž“αžΆαž€αŸ†αž‘αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαŸ’αž‘αŸ’αžšαžΈαž˜
  • αž€αžΆαžšαž•αŸ’αž‘αž»αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αžšαž™αŸˆαž–αŸαž›αžœαŸ‚αž„αžŠαŸ‚αž›αž’αžΆαž…αž˜αžΆαž“αž”αŸ’αžšαž™αŸ„αž‡αž“αŸαž“αŸ…αž–αŸαž›αž€αŸ’αžšαŸ„αž™αžŠαŸ‚αž›αž€αžΆαžšαž•αŸ’αžŸαžΆαž™αž–αŸαžαŸŒαž˜αžΆαž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž‡αžΌαž“
  • αž‡αžΆβ€‹αž…αŸ’αžšαžΎαž“β€‹αž‘αŸ€αž...

αž‚αž»αžŽαžŸαž˜αŸ’αž”αžαŸ’αžαž·αž‘αžΆαŸ†αž„αž“αŸαŸ‡ αž“αž·αž„αž’αžαŸ’αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž’αŸ’αžœαžΎαž±αŸ’αž™αžŸαŸ’αž‘αŸ’αžšαžΈαž˜ Kafka αžŸαŸαž€αŸ’αžαž·αžŸαž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžαŸ‚αžšαž€αŸ’αžŸαžΆαžŸαŸ’αžαžΆαž“αž—αžΆαž–αžŸαž€αž›αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž…αŸ‚αž€αž…αžΆαž™αžŠαžΌαž…αž™αžΎαž„αžŠαŸ‚αžšαŸ” Kafka Stream αž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αžαžΆαž˜αžΆαž“αž—αžΆαž–αž‡αžΏαž‡αžΆαž€αŸ‹αžαŸ’αž›αžΆαŸ†αž„αž€αŸ’αž“αž»αž„αž•αž›αž·αžαž€αž˜αŸ’αž˜ (αž™αžΎαž„αžŸαŸ’αž‘αžΎαžšαžαŸ‚αž‚αŸ’αž˜αžΆαž“αž€αžΆαžšαž”αžΆαžαŸ‹αž”αž„αŸ‹αžŸαžΆαžšαž…αžΆαž”αŸ‹αžαžΆαŸ†αž„αž–αžΈαž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αžœαžΆ) αž αžΎαž™αž™αžΎαž„αž˜αžΆαž“αž‘αŸ†αž“αž»αž€αž…αž·αžαŸ’αžαžαžΆαžŸαž˜αžαŸ’αžαž—αžΆαž–αžšαž”αžŸαŸ‹αžœαžΆαž“αžΉαž„αž˜αž·αž“αžˆαž”αŸ‹αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡αž‘αŸ!

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹