O Kafce jsem viděl spoustu videí, ale nikde moc nezmiňují, jak je vlastně zařízeno, že konzument nezačíná vybírat zprávy od začátku, ale od tama, kde minule skončil. Přece konzument je obecně immutable a pamatovat si to nemůže (prostě může spadnout). To si Kafka nějak pamatuje podle ID konzumenta nebo jak je to prosím uděláno?
Aha takze je to ulozeno primo v kafce pro cons. skupinu. To dava smysl, vlastne je to i prikladech. Diky!
jinak si s tim zatim lokalne hraju a vypada to dobre - rychly start atd. Jediny problem je, ze ten konzument v Pythonu nekdy jakoby na zacatku treba 10 vterin ceka, i kdyz zpravy do topicu chodi. Ale to asi bude na me strane ;)
Jsou dvě základní možnosti: buď si to consumer vede sám někde jinde bokem ve své režii (třeba v Redis clusteru :-) ) nebo to svěří Kafce (to pokud se používá hlavně autocommit). Fakticky to ta Kafka teda ukládá do toho zmíněného Zookeeperu, který tam běží jako povinná součást, v tom si Kafla vede svůj stav.
Defaultně je použit ten autocommit režim a navíc, že zpráva se commitne v okamžiku předání aplikaci. A Kafka to v určitých intervalech pak ukládá do offset storu (ten je v tom zookeeperu). Pokud chce aplikace potvrzovat manuálně zpracování s využitím toho offset storu, tak se vypne commit na předaní dat a klient musí volat po zpracování přijaté zprávy rd_kafka_offset_store().
Danu kniznicu pre node.js by som neodporucal, node-rdkafka a rovnako aj kafka-node nie su az tak aktivne udrziavane a bol to s nimi celkom boj ked clovek chcel nieco debugovat. Celkom zaujimava alternativa ktoru momentalne testujem je https://kafka.js.org/ kde sa zda by aktivny vyvoj a maju aj sponzora DigitalOcean...