Junior — Middle
Kafkaда билдирүүнүн окулгандыгын кантип аныктоого болот?
sobes.tech AI
AIден жооп
Kafkaда билдирүүнү окугандыгынын факты бөлүмдөрдөгү (offsets) аркылуу аныкталат. Ар бир керектүүчү (consumer) бөлүмдөрдөгү окуган offsetти көзөмөлдөйт.
Билдирүүнү окугандыгын аныктоо үчүн:
- Керектүүчү билдирүүнү ийгиликтүү иштеткенине ишенимдүү болуу.
- Бул билдирүүнүн offsetин Kafkaда ырастоо (commit), башкача айтканда, брокерге бардык билдирүүлөр ушул offsetке чейин иштелип бүттү деп кабарлоо.
Goда, Kafka кардарынан (мисалы, sarama же confluent-kafka-go) пайдаланып, билдирүүлөр иштетилгени кийин offsetтерди ачык түрдө ырастоого болот. Эгер offset ырасталса, ал окулган деп саналат жана кайра бул керектүүчүгө жеткирилбейт.
Мисал sarama менен (жөнөкөйлөштүрүлгөн):
consumer.MarkMessage(msg, "") // билдирүүнү окулган деп белгилөө
consumer.CommitOffsets() // offsetтерди ырастоо
Ушул жол менен, билдирүүнүн окулгандыгы фактысы, Kafkaда ийгиликтүү offsetти ырастоо менен аныкталат.