Sobes.tech
Junior

Apache Kafka'da ishlab chiqaruvchi nima?

sobes.tech AI

AIdan javob

Apache Kafka-da ishlab chiqaruvchi — bu Kafka brokerlariga xabarlar joylashtiradigan mijoz ilovasi.

Asosiy funksiyalar:

  1. Xabarlarni yuborish: Ma'lumotlarni oladi va belgilangan mavzuga yuboradi.
  2. Serializatsiya: Xabar ma'lumotlarini yuborishdan oldin baytlarga aylantiradi.
  3. Partitsiyalash: Xabar qaysi partitsiyaga yuborilishini belgilaydi. Standart ravishda, xabar kalitining xash qiymati ishlatiladi. Agar kalit bo'lmasa, round-robin yoki sticky partitsiyalash ishlatiladi.
  4. Bufferlash: Xabarlar vaqtinchalik bufferdan saqlanadi va partiyalarda yuboriladi, bu o'tkazuvchanlikni oshiradi.
  5. Xatoliklarni boshqarish: Vaqtinchalik xatoliklar yoki broker xatoliklari yuzaga kelganda, takroriy urinishlarni amalga oshiradi.

Muhim sozlamalar:

  • bootstrap.servers: Boshlang'ich ulanish uchun brokerlarning hostlari va portlari ro'yxati.
  • key.serializer: Xabar kalitini serializatsiya qilish uchun sinf.
  • value.serializer: Xabar qiymatini serializatsiya qilish uchun sinf.
  • acks: Brokerlar tomonidan xabarlarni qabul qilish tasdiqlash darajasi (0, 1, all).
  • retries: Xabarni qayta yuborish urinishlari soni.
// Java Producer API yordamida Kafka-ga xabar yuborish misoli
Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092"); // Broker manzili
props.put("acks", "all"); // Barcha replikalardan tasdiqlash talab qilish
props.put("retries", 0); // Takroriy urinishlar yo'q
props.put("linger.ms", 1); // Xabarlarni darhol yuborish
props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer"); // Kalit serializatori
props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer"); // Qiymat serializatori

Producer<String, String> producer = new KafkaProducer<>(props);
for (int i = 0; i < 100; i++) {
    producer.send(new ProducerRecord<String, String>("my-topic", Integer.toString(i), Integer.toString(i))); // Xabar yuborish
}

producer.close(); // Ishlab chiqaruvchini yopish