Sobes.tech
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ти ырастоо менен аныкталат.