Kafkaда жеткирүү кепилдиктери эмне?
sobes.tech AI
AIден жооп
Kafkaда жеткирүү кепилдиктери билдирет, билдирүүлөрдүн так эле кандайча жеткирилери жөнүндө, яғни өндүрүүчөдөн брокерге жана брокерден керектөөчүнө кандай жеткирилет. Негизги кепилдик деңгээлдери:
-
Эң көп бир жолу (at most once) — билдирүү жоголушу мүмкүн, бирок дублдалбайт. Бул ылдамдык маанилүү болгондо жана маалымат жоготуусу кабыл алынат.
-
Кеминде бир жолу (at least once) — билдирүү кепилденген түрдө жеткирилет, бирок дублдалышы мүмкүн. Бул Kafkaнын стандарттык режими.
-
Так бир жолу (exactly once) — билдирүү так бир жолу жеткирилет жана иштетилет, дублдалбастан. Kafkaда бул идемпотенттүү өндүрүүчүлөр жана транзакциялар аркылуу жетишилет.
Go клиенттеринде exactly once ишке ашыруу үчүн, эгер китепкана мүмкүнчүлүк берсе, идемпотенттик жана транзакциялар колдоосун колдонуу керек.
Идемпотенттик менен өндүрүүчүнү конфигурациялоо мисалы (псеудо-код):
producer, _ := kafka.NewProducer(&kafka.ConfigMap{
"bootstrap.servers": "localhost",
"enable.idempotence": true, // кепилдик берет, бир гана жолу жеткирилет
})