áá±áž áá¬á!
áá»áœááºá¯ááºááá¯á·ááẠá¡á±á¬ááºáá«á
á¬á¡á¯ááºááᯠá¡ááŒá±á¬ááºážááŒá¯á ááááá±ážáá«áááºá
ááá¯á¡áá»áááºááœááºá á¡ááá¯ááºážá¡ááá¯ááºážááẠá€á¡á
áœááºážáááºáá±á¬áááááá¬á ááá·áºáááºáá»ááºáá»á¬ážááᯠáááºáá°áá±áá«áááºá ááá¯á·ááŒá±á¬áá·áº áááŒá¬áá±ážáá®á áá¯ááºáá±áá²á·áá±á¬ áá±á¬ááºážáá«ážáá
áºáá¯ááºááœáẠáá¬áá¬ááŒááºááá¯áá»ááºááŸáá·áº ááááºáááºáá±ážááá¯áá«áááºá áá°áááá¯ááºááá¯ááºá¡ááœá±á·á¡ááŒá¯á¶á¡áá á
á¬áá±ážáá°ááẠKafka Streams ááá¯ááŒáá·áºáá±áá±áá¬ááááºážáááºážááŸá¯á¡ááŒá
áºááá¯á·áááºááá¯á·ááŒá±á¬ááºážáá²ááááºááá¯ááŒá±á¬ááŒáááºá áááºááŸá¯áá¶á
á¬ážáá«á
Apache á
á¬ááŒáá·áºááá¯ááº
á€áá±á¬ááºážáá«ážááœááºá áá»áœááºá¯ááºááá¯á·ááá¯áá¹ááá®ááẠcloud á¡ááºááá®áá±ážááŸááºážáá¯á¶ááŒá¯á¶áá±ážá¡ááœáẠáá¯ááºáá¯ááºáá áºáá¯áááºáá®ážáá¬ááœáẠá€á¡ááœáá·áºá¡áá±ážááᯠá¡áá»áá¯ážá¡ááŒááºááŸáá¡á±á¬áẠáááºááá¯á·á¡áá¯á¶ážáá»ááá¯ááºáá¯á¶ááᯠááŒá±á¬ááŒáá«áááºá Kafka Streams ááᯠá¡áá¯á¶ážááŒá¯á áá»áœááºá¯ááºááá¯á·ááẠáá»áŸáá±áá¬ážáá±á¬ ááŒááºáááºá¡áá±ážá á¬ážáááºáá±á¬ááºááŸá¯áá»á¬ážááᯠáááºáá®ážáá²á·ááŒá®áž áááºážááá¯á·áá áºáá¯á á®ááẠá¡ááŸá¬ážá¡ááœááºážáá¶ááá¯ááºáááºááŸááᬠá áá áºá¡ááœááºážááŸá á¡áá¬ááá¹áá¯áá»á¬ážá á¡ááŒá±á¡áá±ááŸáá·áºáááºáááºáá±á¬ áá¯á¶ááŒááºá áááºáá»ááá±á¬ ááááºážá¡áá»ááºá¡áááºáááŸáááá¯ááºááá·áº á¡áááºážá¡ááŒá áºáá áºáá¯á¡ááŒá Ạáá¯ááºáá±á¬ááºáá±ážáá«áááºá áá»áœááºá¯ááºááá¯á·á¡ááœááºá á€áááºááŸá¬ áá¯á¶ááŒááºá áááºáá»áááŸá¯ááŸáá·áº áá¶á·ááá¯ážááŸá¯ááœááºáá°ááŸá¯ááá¯á·á ááŸá±á·ááá¯á·ááŒá±ááŸááºážáá áºáá¯ááŒá áºáááºá
ááá·áºá¡áá¬ááá¹áá¯áá»á¬ážáááá¬ážáááºá¡ááŒá±á¡áá±á¡á¬áž áá¶á·ááá¯ážáá±ážáááºá¡ááœáẠáááá¯áá±áá¬áá±á·á áºáá áºáá¯áááºážááᯠá¡áá¯á¶ážááŒá¯ááœáá·áºáá±ážááá·áº á¡ááŒá¬ážáááºážáááºážáá áºáá¯ááᯠáááºá áááºáááºá á¬ážáá«á áááºážááá¯áááºáá«á á áááºáááºá á¬ážá áá¬ááŒá áºáááá·áºáááº...
áá»áŸáá±áá¬ážáá±á¬ááá¯ááºáá¶ááŸáá·áº áá»áœááºá¯ááºááá¯á·áá¯ááºáá±á¬ááºááá·áºáá¯á¶á á¶ááᯠááŒá±á¬ááºážáá²ááẠá¡áá»áááºáááºááŒá®áᯠáá»áœááºá¯ááºááá¯á·á¡áááºááŒá±á¬áá·áºáááºááááºážá
á¡á±ážáá»áá·áºá¡á
á®áááºáá¶á
á¬áá»á¬ážááá¯á¡ááŒá±áá¶á á¡áá»áá¯ážáá»áá¯ážáá±á¬á¡áá¬ááá¹áá¯áá»á¬ážáá¡ááŒá±á¡áá±ááᯠááááºážááááºážáá¬ážááẠááá¯á¡ááºááẠ(á¥ááá¬- ááá¯ááºááẠááá¯ááºááá¯ááºáá¶áááŒááºážááŒá
áºáááº)á Kafka Stream ááá¯á·áááœáŸá±á·ááŒá±á¬ááºážáá®á áá»áœááºá¯ááºááá¯á·ááẠááŒááºáááºá
á®áá¶ááá·áºááœá²ááŸá¯á¡ááœáẠáááá¯áá±áá¬áá±á·á
Ạ(+ áááºáá±á¬ááºááŸá¯ API) ááᯠáááŒá¬áá ááŸá®ááá¯á¡á¬ážáá¬ážáá±á·ááŸááááºá á€áá»ááºážáááºááŸá¯ááœáẠáááºážáá¡á¬ážáááºážáá»ááºáá»á¬ážááŸááááºá
áá¯á¶ 1- ááá¯á·ááá°ážááŒá±á¬ááºážáá®ááœáẠááœá±á·áááá·áº áá¯á¶ááŸáẠááœá²ááœááºááá·áº á¡ááŒá±á¡áá±áá
áºáá¯
Kafka ááŸáá·áº Kafka Streams- á¡á±ážáá»áá·áºáá»á¬ážááẠAPI ááŸáá
áºááá·áº áááºážááá¯á·áá¡ááŒááºáá»á¬ážááᯠáááºááœááºáá¬á ááœááºážáá¶áá¬ážáá±á¬á¡ááŒá±á¡áá±ááᯠáááá¯áá±áá¬áá±á·á
áºááŸáá
áºááá·áº ááœááºáá»ááºáááº
áá»áŸáá±áá¬ážáá±á¬ ááŒááºáááºá¡áá±ážá á¬ážáááºáá±á¬ááºááŸá¯áá»á¬ážááᯠáááºáá®ážááẠááœááºáá°á á±ááẠKafka Streams áá»á¬ážááŸáá·áº ááœá±á·áá¯á¶áá«á
ááœááºáá²á·ááá·áºáá áºááŸá áºááá·áºá á€ááŒá¿áá¬áá»á¬ážááá¯ááŒá±ááŸááºážáááºá¡ááœáẠáá»áœááºá¯ááºááá¯á·ááá»áŸáá±áá¬ážáá±á¬ááŒááºáááºá¡ááŒá±á¡áá±áá»á¬ážááᯠá¡ááŒááºážá¡áááºááŒáá·áºááŸá¯ááẠáá¯á¶ážááŒááºáá²á·áááºá Kafka Streams áá»á¬ážááᯠá ááºážáá¯á¶ážááŒáá·áºááẠáá»ááºáá»ááºážáá¯á¶ážááŒááºáá²á·ááẠ- áááºážááẠáááºáá»áŸá¡ááá¯ááºážá¡áá¬á¡áá áááºááá¯ááºáááºá á¡ááœááºá¡áá»áœá¶áááŸáááá¯ááºááŒá®áž á¡ááŸá¬ážá¡ááœááºážáá¶ááá¯ááºáááºááŸáááŸá¯á áááºážá ááŒáœááºááá±á¬ streaming áá¯ááºáá±á¬ááºáá»ááºáá«ááŸáááẠ(á¡ááœááºááŒá±á¬ááºážááŸá¯áá»á¬ážá¡áá«á¡ááẠá¡ááœááºááŒá±á¬ááºážááŸá¯áá»á¬ážá¡áá«á¡áááº) ááᯠááááŸááá«áááºá Kafka ááœáẠáááºáá±á·áá»áºá áá Ạáááºáá»áŸ ááá·áºáá»ááºááŒá®áž áá¯á¶ááŒááºá áááºáá»áááŒá±á¬ááºáž áá±á¬áºááŒááŒááºážáááŒá¯áá² áá»áœááºá¯ááºááá¯á· ááá¯á¡ááºáááºáá»á¬ážááá¯áᬠáá±á¬áºááŒáá«á
áá»áœááºá¯ááºááá¯á·áááºáá®ážáá¬ážáá±á¬ ááá¯ááºáá¶ááá¯ááºá¡áá±ážá á¬ážáááºáá±á¬ááºááŸá¯áá áºáá¯á á®ááᯠááá¯ážááŸááºážáá±á¬ topology ááŒáá·áº Kafka Stream instance áááááºááœáẠáááºáá±á¬ááºáá¬ážáá«áááºá áááºážááœáẠ1) á¡áááºážá¡ááŒá áºáá áºáᯠ2) ááŒá²ááŒá¶áá±á¬áá±á¬á·áááºááá¯ážá ááá¯ážááá¯ááºáá áºáá¯áá«ááŸááá±á¬ áááá¯áááºáá¬áá áºáᯠ3) sink áá áºáᯠáá«áááºáááºá
áá¯á¶ 2- stateful microservices á¡ááœáẠáá»áœááºá¯ááºááá¯á·á streaming instances áá»á¬ážá áá°áááºáž topologyá á¡á
á®á¡á
ááºáá±ážááœá²ááŒááºáž áááºáá¬áá±áá¬áá«ááŸááá±á¬ á€áá±áá¬ááœáẠááá¯ááŸá±á¬ááºáá¬áááºáž ááŸáááŒá±á¬ááºáž áááááŒá¯áá«á
á€áá»ááºážáááºááŸá¯á¡áá áºááœáẠá¡á±ážáá»áá·áºáá»á¬ážááẠá¡áááºážá¡ááŒá áºá¡ááŒá±á¬ááºážá¡áá¬ááá¯á· áá±ážááá¯á·ááá·áº áááºáá±á·áá»áºáá»á¬ážááᯠáá±ážááœá²á·ááŒááŒá®áž á á¬ážáá¯á¶ážáá°áá»á¬ážâááá¯áá«áá áá±ážááºááááá±ážáá»áẠáááºáá±á¬ááºááŸá¯âááẠááœááºááŒá°áá¬á áá Ạ(á¡ááœááºá¡ááŒá±á¬ááºážá¡áá¬) ááŸáá áºááá·áº ááœááºáá»ááºáá¬ážáá±á¬ áá»áŸáá±ááŸá¯á¡ááŒá±á¡áá±ááᯠáááºáá¶áááŸááááºááŒá áºáááºá
áá¯á¶ 3- áá»áŸáá±áá¬ážáá±á¬ ááá¯ááºáááá¯áááºáá±á¬ááºááŸá¯áá»á¬ážáá«ááá·áº áá¬ááºáááºážá¡ááœáẠááá°áá¬á¡áá
Ạá¡áá¯ááºá
á®ážáááºážááŸá¯- 1) á¡á±ážáá»áá·áºááẠKafka á¡áááºážá¡ááŒá
áºá¡ááŒá±á¬ááºážá¡áá¬ááá¯á· áá±á¬ááºááŸáááá·áº áááºáá±á·áá»áºááᯠáá¯ááºáá±ážáá«áááºá 2) áá»áŸáá±áá¬ážáá±á¬ááŒááºááẠ(Kafka Streams ááᯠá¡áá¯á¶ážááŒá¯á) ááŸááá±á¬ microservice ááẠáááºážááᯠáá¯ááºáá±á¬ááºááŒá®áž áá±á¬ááºáá¯á¶áž Kafka áá±á«ááºážá
ááºááá¯á· ááœááºáá»ááºáá¬ážáá±á¬ á¡ááŒá±á¡áá±á¡á¬áž áá±ážáá±ážáááºá á) á
á¬ážáá¯á¶ážáá°áá»á¬ážá ááá¯ááºáá¶áá±á¬áºá¡áá
áºááᯠáááºáá¶áááºá
áá±ážá á€ááá·áºááœááºážáá¬ážáá±á¬ áá±á¬á·áááºááá¯ážá ááá¯ážááá¯ááºááẠá¡ááŸááºáááẠá¡ááœááºá¡áá¯á¶ážáááºáá«áááºá
á¡áááºááœááºáá±á¬áºááŒáá²á·ááá·áºá¡ááá¯ááºážá áá»áœááºá¯ááºááá¯á·ááá»áŸáá±áá¬ážáá±á¬ááŒááºáááºááá¯ááºáᬠtopology ááœáẠáá±á¬á·áááºááá¯ážá ááá¯ážááá¯ááºáá áºáá¯áá«ááŸááááºá áááºážááá¯á¡áá¯á¶ážááŒá¯áááºá¡ááœáẠááœá±ážáá»ááºá áá¬áá»á¬ážá áœá¬ááᯠáá»áœááºá¯ááºááá¯á·ááœá±á·ááŸááá²á·ááŒá®áž áááºážááá¯á·áá²á០ááŸá áºáá¯ááᯠá¡á±á¬ááºááœááºáá±á¬áºááŒáá¬ážáááºá
ááœá±ážáá»ááºááŸá¯ #1- ááœááºáá»ááºááŸá¯áá»á¬ážá¡ááœáẠáá±á¬á·áááºááá¯ážá ááá¯ážááá¯ááºááᯠá¡áá¯á¶ážááŒá¯áá«á
áá»áœááºá¯ááºááá¯á·á ááááá¯á¶ážáá±á¬á·áááºááá¯ážá
ááá¯ážááá¯ááºááœáẠááœááºáá»ááºááŸá¯áá»á¬ážá¡ááœáẠááá¯á¡ááºáá±á¬ á¡áááºáá±áá¬áá«ááŸááááºá á¥ááá¬á¡á¬ážááŒáá·áºá á¡áá»áá¯á·áá±á¬ááá
á¹á
áá»á¬ážááœáẠáá»áŸáá±áá±á¬ááŒááºáááºááᯠâá¡áá»á¬ážá
á¯áá²áá»á¬ážâ ááá°á¡á áá¯á¶ážááŒááºáááºá ááá¯ááŸá±á¬ááºááŸá¯ááœáẠá¡áá¬ááá¹áá¯á¡áá»áá¯á·á á¡ááŒá±á¡áá±ááŸáá·áºáááºáááºááá·áº áá±á¬ááºáá¯á¶ážá¡á±ážáá»áá·áºá¡á
á®áááºáá¶á
á¬á¡á¬ážáá¯á¶ážááᯠááááºážáááºážáá¬ážááá¯ááºáááºá ááá¯á·áá±á¬ááºá áá»áœááºá¯ááºááá¯á·ááẠá¡á±ážáá»áá·áºáá
áºáᯠááá¯á·ááá¯áẠá¡ááŒá¬ážáá
áºáŠážáá¶á០á¡á
á®áááºáá¶á
á¬á¡áá
áºáá
áºáá¯ááᯠáááºáá¶áááŸáááá·áºá¡áá« áááºážááᯠááááºážáááºážááá¯ááºáááºá á¡áá¬ážáá°á¡áá¬ááá¹áá¯áá¡ááŒá±á¡áá±ááŸáá·áºáááºáááºá á¡ááŒá¬ážá¡á±ážáá»áá·áºáá»á¬ážá¡á¬ážáá¯á¶ážáá¶á០á¡á
á®áááºáá¶á
á¬áá»á¬ážááᯠááááºážáááºážááŒá®áž ááœááºáá»ááºááŸá¯ááᯠáááºáá¯ááºááá¯ááºáááºá
á¡á±á¬ááºáá«áá¯á¶ 4 ááœáẠáá»áœááºá¯ááºááá¯á·ááẠáá±á¬á·/áááºááá¯áž ááá¯ááŸá±á¬ááºááŸá¯ááᯠáááá¯áááºáá¬á á
á®áá¶áá±á¬ááºááœááºááá·áºáááºážáááºážááá¯á· áááºáá²á·ááá¯á· áá¯ááºáá±á¬áºááŒááá¬ážááááºážá ááá¯á·ááŸáᬠáááºáá±á·ááºá»á¡áá
áºááᯠáá¯ááºáá±á¬ááºááá¯ááºáááºááŒá
áºáááºá
ááá¯ááºáá±á¬áºáá¯á¶ 4- áá»áœááºá¯ááºááá¯á·ááẠáááá¯áááºáá¬á áá¯ááºáá±á¬ááºááŒááºážáááºážáááºážá¡ááœáẠáá±á¬á·áááºááá¯ážá
ááá¯ážááá¯ááºááá¯á· áááºáá±á¬ááºááœáá·áºááᯠááœáá·áºáá¬ážáá«ááẠ(ááá¯á·áá±á¬ááºá áá»áŸáá±áá¬ážáá±á¬ á¡ááŒá±á¡áá±ááŸáá·áº áá¯ááºáá±á¬ááºááá·áº script ááá¯ááºážááẠá¡ááá¯áá«áááºážáááºážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááá«ááẠdoProcess
)
ááœá±ážáá»ááºááŸá¯ #2- Kafka Stream áááááºááœáẠCRUD API ááá¯áááºáá®ážááŒááºážá
áá»áœááºá¯ááºááá¯á·á á¡ááŒá±áá¶áá¯ááºáááºážáááºáááºá á®ážáááºážááŸá¯ááᯠáááºáá±á¬ááºááŒá®ážáá±á¬ááºá áá»áœááºá¯ááºááá¯á·ááẠáá»áœááºá¯ááºááá¯á·á áá»áŸáá±áá¬ážáá±á¬ ááŒááºáááºá¡áá±ážá á¬ážáááºáá±á¬ááºááŸá¯áá»á¬ážá¡ááœáẠRESTful CRUD API ááᯠáá±ážááẠááŒáá¯ážá á¬ážáá¬áá«áááºá á¡áá¬ááá¹áá¯á¡áá»áá¯á· ááá¯á·ááá¯áẠá¡á¬ážáá¯á¶ážáá¡ááŒá±á¡áá±ááᯠááŒááºáááºááá°ááá¯ááá·áºá¡ááŒáẠá¡áá¬ááá¹áá¯áá áºáá¯áá¡ááŒá±á¡áá±ááᯠáááºááŸááºááŒááºáž ááá¯á·ááá¯áẠáááºááŸá¬ážááŒááºáž (áá±á¬ááºáá¶áá¶á·ááá¯ážááŸá¯á¡ááœáẠá¡áá¯á¶ážáááºáááº)á
Get State APIs á¡á¬ážáá¯á¶ážááᯠáá¶á·ááá¯ážáááºá¡ááœááºá áá¯ááºáá±á¬ááºáá±á ááºá¡ááœááºáž á¡ááŒá±á¡áá±ááᯠááŒááºáááºááœááºáá»ááºááẠááá¯á¡ááºááá·áºá¡áá«ááá¯ááºážá áááºážááᯠbuilt-in áá±á¬á·áááºááá¯ážá ááá¯ážááá¯ááºááœáẠá¡áá»áááºá¡ááŒá¬ááŒá®áž ááááºážáááºážáá¬ážáá«áááºá á€ááá á¹á ááœááºá á¡á±á¬ááºááœááºáá±á¬áºááŒáá¬ážááá·áºá á¬áááºážááœááºáá±á¬áºááŒáá¬ážááá·áºá¡ááá¯ááºáž Kafka Stream ááá áºáá¯áááºážáá±á¬á¥ááá¬ááá¯á¡áá¯á¶ážááŒá¯ááŒá®ážááá¯áá²á·ááá¯á·áá±á¬ API ááá¯á¡áá±á¬ááºá¡áááºáá±á¬áºáááºá¡áá±á¬áºáá±ážááá¯ážááŸááºážáá«áááºá
áá¯á¶ 5- á¡áá¬ááá¹áá¯áá
áºáá¯á ááŒáá¯áááºááœááºáá»ááºáá¬ážáá±á¬ á¡ááŒá±á¡áá±áááŸáááẠbuilt-in áá±á¬á·áááºááá¯ážá
ááá¯ážááᯠá¡áá¯á¶ážááŒá¯ááŒááºážá
API ááŸáá áºááá·áº á¡áá¬ááá¹áá¯áá áºáá¯á á¡ááŒá±á¡áá±ááᯠá¡ááºááááºáá¯ááºááŒááºážáááºáááºáž á¡áá±á¬ááºá¡áááºáá±á¬áºááẠááœááºáá°áá«áááºá á¡ááŒá±áá¶á¡á¬ážááŒáá·áºá áááºáá¯ááºáááºááá¯á¡ááºáááºááŸá¬ Kafka áá¯ááºáá¯ááºáá°áááºáá®ážááŒá®áž ááŒááºáááºá¡áá áºáá«áááºáá±á¬ ááŸááºáááºážáá áºáá¯ááŒá¯áá¯ááºááẠáááºážááá¯á¡áá¯á¶ážááŒá¯áá«á áááºážááẠAPI ááŸáá¯ááºáá¯ááºááá¯ááºáá±á¬ á á¬á¡á¬ážáá¯á¶ážááᯠá¡ááŒá¬ážáá¯ááºáá¯ááºáá°áá»á¬áž (á¥ááá¬- á¡á±ážáá»áá·áºáá»á¬áž) áá¶á០áááºáá¶áááŸáááá·áºáááºážáááºážá¡ááá¯ááºáž áá¯ááºáá±á¬ááºáááºááŒá áºááŒá±á¬ááºáž áá±áá»á¬á á±áááºá
áá¯á¶ 6- Kafka áá¯ááºáá¯ááºáá°ááᯠá¡áá¯á¶ážááŒá¯á á¡áá¬ááá¹áá¯áá
áºáá¯áá¡ááŒá±á¡áá±ááᯠáááºáááºááŸááºááá¯ááºáááºá
áá±ážáááºáá±á¬ááŸá¯ááºááœá±ážááŸá¯- Kafka ááœáẠpartition áá»á¬ážá áœá¬ááŸááááºá
ááá¯á·áá±á¬ááºá áá»áœááºá¯ááºááá¯á·ááẠááŒá áºáááºáá áºáá¯á¡ááœáẠáá»áŸáá±áá¬ážáá±á¬ááá¯ááºáá¶áá±á¬áº ááá¯ááºáááá¯áááºáá±á¬ááºááŸá¯áá»á¬áž á¡á á¯á¡áá±ážááᯠáá¶á·ááá¯ážááŒááºážááŒáá·áº á á®áá¶áá±á¬ááºááœááºáá²áááºááᯠááŒáá·áºáá±ááŒá®áž áááŸáááá¯ááºááŸá¯ááᯠááŒáŸáá·áºáááºááá¯áá«áááºá á áá áºááá·áºááœááºážááŒááºážááẠááá¯ážááŸááºážáááº- áá»áœááºá¯ááºááá¯á·ááẠáá°áá®áá±á¬ á¡ááá®áá±ážááŸááºáž ID (ááŸáá·áº áá°áá®áá±á¬ bootstrap áá¬áá¬áá»á¬áž) á¡á±á¬ááºááœáẠáá¯ááºáá±á¬ááºááẠááŒá áºáááºá¡á¬ážáá¯á¶ážááᯠááŒááºáááºááŒá®ážáááºááŸáá·áºá á¡ááŒá¬ážá¡áá¬á¡á¬ážáá¯á¶ážáá®ážáá«ážááẠá¡ááá¯á¡áá»á±á¬áẠááŒá®ážááœá¬ážáá«áááºá áááºážááŒá áºáá±á«ááºážá ááºáá áºáá¯á á®ááœáẠá¡ááá¯ááºážááœá²áá»á¬ážá áœá¬áá«áááºááŒá±á¬ááºážááá¯áááºáž áá»áœááºá¯ááºááá¯á·áááºááŸááºáá¬ážááŒá®ážá ááá¯á·ááŒá±á¬áá·áº áá áºáá¯áá»ááºážá á®ááᯠááá¯áá²á·ááá¯á·áá±á¬ partitions á á¡ááá¯ááºážááœá²áá áºáá¯ááᯠáááºááŸááºááá¯ááºá á±áááºá
á¥ááá¬á¡á¬ážááŒáá·áºá áá»ááºááœááºááŒá®ážáá±á¬áẠááŒááºáááºááá°ááá·áºá¡áá«á á€áááá¹áá°ááᯠá¡ááŒá¬ážá¥ááá¬áá áºáá¯ááá¯á· ááœáŸá²ááŒá±á¬ááºážááẠááá¯ááºáá¶áá±á¬áºá ááá¯ážá á¡áááºáááá¹áá°ááᯠáá°ážáá°áá¬ážáááºáááºáž áá¯ááºááá¯ážáá¯ááºá ááºááŒá áºááŒá±á¬ááºážááá¯áááºáž áá»áœááºá¯ááºáá±á¬áºááŒáá«áááºá Kafka Streams ááŸá ááŒááºáááºá ááá¯ážáá áºáá¯á á®á¡ááœááºá áááºáá°ááŒá¯áá¬ážáá±á¬ á¡ááŒá±á¬ááºážá¡áá¬áá áºáá¯ááᯠááŒá±á¬ááºážáá²ááŸá¯ááŸááºáááºáž (ááŒááºááœááºážá¡ááºááááºáá»á¬ážááᯠááŒá±áá¬áá¶ááá·áº) ááŒá±á¬ááºážáá²ááŸá¯ááŸááºáááºážáá áºáá¯ááŒáá·áº áááºáá®ážáá¬ážáááºá ááá¯á·ááŒá±á¬áá·áº Kafka ááẠááá¯ááºáá¶áá±á¬áºá ááá¯ážááá¯ááºááᯠá¡áááºáááŒáẠáá»á±á¬áá±á¬ááºáá±á¬ááºáá¶áá±ážáááºá ááá¯á·ááŒá±á¬áá·áºá Kafka Stream á¥ááá¬áá áºáᯠááá¯á·ááá¯áẠá¡ááŒá¬ážáá áºáá¯á០áá»áá¯á·ááœááºážáá»ááºáá áºáá¯ááœááºá áááºááá¯ááºáᬠpartitions áá»á¬ážááœá¬ážááá·áº á¡ááŒá¬ážá¥ááá¬áá áºáá¯ááœáẠstate store ááᯠá¡ááŒááºááŒááºáááºááá°ááá¯ááºáááºá á ááá¯ážááá¯ááºááœáẠáááºážááŸáá·áºáá»á®áá±á¬ ááŸááºáááºážáá»á¬ážááŸááá±áá±á¬áºáááºáž áááºážááᯠá áá¹ááá·áºááá¯ááºážá¡ááœááºáž áá¯ááºáá±á¬ááºááŒá±á¬ááºáž áá»áœááºá¯ááºááá¯á·áá ááºážáááºááŸá¯áá»á¬ážá ááŒááá¬ážáááºá
áá áºáá¯áááºážáá±á¬ microservice á០shared state ááŸááá±á¬ microservices á¡á á¯á¡áá±ážáá áºáá¯ááá¯á· ááŒá±á¬ááºážááœáŸá±á·ááŒááºážááŒáá·áº Get State API ááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááẠá¡áá±ážá¡ááœá²ááŒá áºáá¬áá«áááºá á¡ááŒá±á¡áá±áá áºááœááºá microservice áá áºáá¯á á®á state store ááœáẠá¡áá¯á¶ážá á¯á¶áá¯á¶áá áºá áááºáá áºááá¯ááºážáᬠáá«áááºááẠ(áá±á¬á·áá»á¬ážááᯠáá®ážááŒá¬áž partition áá áºáá¯ááá¯á· áá¯á¶áá±á¬áºáá¬ážááá·áº á¡áá¬ááá¹áá¯áá»á¬áž)á áá»áœááºá¯ááºááá¯á· ááá¯á¡ááºáá±á¬ á¡áá¬ááá¹áá¯á á¡ááŒá±á¡áá±áá«ááŸáááá·áº áááºááá·áº instance ááᯠáá¯á¶ážááŒááºááááºááŒá áºááŒá®ážá á¡á±á¬ááºááœáẠááŒáá¬ážááá·áºá¡ááá¯ááºáž thread metadata ááᯠá¡ááŒá±áá¶á áááºážááᯠáá¯ááºáá±á¬ááºáá²á·áááº-
áá¯á¶ 7- stream áááºáá¬áá±áá¬ááᯠá¡áá¯á¶ážááŒá¯á á¡ááá¯ááŸááá±á¬ á¡áá¬ááá¹áá¯á á¡ááŒá±á¡áá±á¡á¬áž áá±ážááŒááºážááẠáááºááá·áº instance á០áá»áœááºá¯ááºááá¯á· áá¯á¶ážááŒááºáááºá á¡áá¬ážáá°áááºážáááºážááᯠGET ALL API ááŒáá·áº á¡áá¯á¶ážááŒá¯áá²á·áááºá
Key ááá¯ááœá±á·ááŸááá»ááº
Kafka Streams ááŸá ááŒááºáááºá ááá¯ážááá¯ááºáá»á¬ážááẠde facto ááŒáá·áºáá±ááá·áº áá±áá¬áá±á·á áºá¡ááŒá Ạáá±á¬ááºááœááºááá¯ááºáááºá
- Kafka ááœáẠá¡áááºáááŒáẠáá¯á¶áá°áá°ážáá¬ážáááºá
- CRUD API ááᯠááá¯ááá¯á·áá±á¬á áá áºáááááºááœáẠá¡ááœááºááá°áááºáá±á¬ááºááá¯ááºáááºá
- áá»á¬ážá áœá¬áá±á¬ partition áá»á¬ážááá¯ááá¯ááºááœááºááŒááºážáááºá¡áááºážáááºááá¯ááŸá¯ááºááœá±ážáááºá
- auxiliary data áá»á¬ážááá¯ááááºážáááºážááẠstreaming topology ááœáẠáá áºáᯠááá¯á·ááá¯áẠáá áºáá¯áááºááá¯áá±á¬ state store áá»á¬ážááᯠáá±á«ááºážááá·áºááá¯ááºáááºá á€ááœá±ážáá»ááºááŸá¯ááᯠá¡á±á¬ááºáá«ááá¯á·á¡ááœáẠá¡áá¯á¶ážááŒá¯ááá¯ááºáá«áááºá
- áá¯ááºááœáŸáá·áºááŸá¯áá¯ááºáá±á¬ááºáá±á ááºá¡ááœááºáž ááœááºáá»ááºááŸá¯áá»á¬ážá¡ááœáẠááá¯á¡ááºáá±á¬ áá±áá¬áá±ááŸááºááá¯ááŸá±á¬ááºááŸá¯
- streaming instance ááᯠáá±á¬ááºáá áºááŒááẠá á®á ááºáá±ážááá·áºá¡áá« á¡áá¯á¶ážáááºááá¯ááºá á±ááá·áº áá±ááŸááºááá¯ááŸá±á¬ááºááŸá¯
- á¡áá»á¬ážááŒá®ážááá¯...
á€á¡áá¬áá»á¬ážááŸáá·áº á¡ááŒá¬ážá¡á¬ážáá¬áá»ááºáá»á¬ážá áá»áœááºá¯ááºááá¯á·áá²á·ááá¯á· ááŒáá·áºáá±ááá·áºá
áá
áºááœáẠááá¹áá¬áá¯á¶ážááá¯ááºáá¬á¡ááŒá±á¡áá±ááᯠááááºážááááºážáááºá¡ááœáẠKafka Streams ááᯠáá±á¬ááºážááœááºá
áœá¬ ááá·áºáá»á±á¬áºá
á±áááºá Kafka Streams ááẠáá¯ááºáá¯ááºááŸá¯ááœáẠá¡ááœááºáá¯á¶ááŒááºá
áááºáá»áááŒá±á¬ááºáž áááºáá±ááŒáá²á·ááẠ(áááºážááá¯á¡áá¯á¶ážááŒá¯ááŒá®ážááááºážá áá»áœááºá¯ááºááá¯á·ááœáẠáááºáá±á·áá»áºáá¯á¶ážááŸá¯á¶ážááŸá¯áááŸáááá±á¬ááºááŒá
áºáááº) ááŸáá·áº áááºážáá
áœááºážáá±á¬ááºáááºáá»á¬ážááẠááá¯áá±áá¬ááœááºáááºááá·áºáááºááá¯ááºááŒá±á¬ááºáž áá»áœááºá¯ááºááá¯á·áá¯á¶ááŒááºáá«áááºá
source: www.habr.com