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:
- Xabarlarni yuborish: Ma'lumotlarni oladi va belgilangan mavzuga yuboradi.
- Serializatsiya: Xabar ma'lumotlarini yuborishdan oldin baytlarga aylantiradi.
- Partitsiyalash: Xabar qaysi partitsiyaga yuborilishini belgilaydi. Standart ravishda, xabar kalitining xash qiymati ishlatiladi. Agar kalit bo'lmasa, round-robin yoki sticky partitsiyalash ishlatiladi.
- Bufferlash: Xabarlar vaqtinchalik bufferdan saqlanadi va partiyalarda yuboriladi, bu o'tkazuvchanlikni oshiradi.
- 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