คำถามติดแท็ก kafka-consumer-api

3
การทำความเข้าใจหัวข้อและพาร์ทิชันของคาฟคา
ฉันเริ่มเรียนรู้คาฟคาเพื่อจุดประสงค์ในการแก้ปัญหาขององค์กร ในระหว่างที่ฉันอ่านคำถามบางอย่างอยู่ในใจของฉัน: เมื่อผู้ผลิตสร้างข้อความ - มันจะระบุหัวข้อที่ต้องการส่งข้อความไปใช่ไหม? มันสนใจพาร์ติชั่นไหม? เมื่อสมาชิกกำลังทำงาน - มันระบุรหัสกลุ่มเพื่อให้สามารถเป็นส่วนหนึ่งของกลุ่มผู้บริโภคในหัวข้อเดียวกันหรือหลายหัวข้อที่ผู้บริโภคกลุ่มนี้สนใจ กลุ่มผู้บริโภคแต่ละกลุ่มมีพาร์ติชันที่สอดคล้องกันในนายหน้าหรือไม่หรือผู้บริโภคแต่ละรายมีกลุ่มเดียวหรือไม่? พาร์ติชั่นสร้างขึ้นโดยนายหน้าหรือไม่และไม่ใช่เรื่องที่น่ากังวลสำหรับผู้บริโภคหรือไม่? เนื่องจากนี่เป็นคิวที่มีออฟเซ็ตสำหรับแต่ละพาร์ติชันมันเป็นความรับผิดชอบของผู้บริโภคที่จะระบุข้อความที่ต้องการอ่านหรือไม่? มันจำเป็นต้องบันทึกสถานะของมันหรือไม่? จะเกิดอะไรขึ้นเมื่อข้อความถูกลบออกจากคิว - ตัวอย่างเช่น: การเก็บรักษาเป็นเวลา 3 ชั่วโมงจากนั้นเวลาผ่านไปจะจัดการกับทั้งสองด้านได้อย่างไร

3
จำเป็นต้องมีคีย์เป็นส่วนหนึ่งของการส่งข้อความถึงคาฟคาหรือไม่
KeyedMessage<String, byte[]> keyedMessage = new KeyedMessage<String, byte[]>(request.getRequestTopicName(), SerializationUtils.serialize(message)); producer.send(keyedMessage); ขณะนี้ฉันกำลังส่งข้อความโดยไม่มีคีย์ใด ๆ เป็นส่วนหนึ่งของข้อความที่ถูกคีย์จะยังใช้งานได้delete.retention.msหรือไม่ ฉันต้องส่งคีย์เป็นส่วนหนึ่งของข้อความหรือไม่? การสร้างคีย์เป็นส่วนหนึ่งของข้อความนี้ดีหรือไม่

2
Kafka: Consumer API เทียบกับ Streams API
ฉันเพิ่งเริ่มเรียนรู้คาฟคาและจบลงด้วยคำถามเหล่านี้ อะไรคือความแตกต่างระหว่าง Consumer และ Stream? สำหรับฉันหากเครื่องมือ / แอปพลิเคชันใด ๆ ใช้ข้อความจาก Kafka เป็นผู้บริโภคในโลก Kafka สตรีมแตกต่างกันอย่างไรเนื่องจากใช้หรือสร้างข้อความไปยังคาฟคา และเหตุใดจึงจำเป็นเนื่องจากเราสามารถเขียนแอปพลิเคชันสำหรับผู้บริโภคของเราเองโดยใช้ Consumer API และประมวลผลได้ตามต้องการหรือส่งไปยัง Spark จากแอปพลิเคชันสำหรับผู้บริโภค ฉันใช้ Google ในเรื่องนี้ แต่ไม่ได้รับคำตอบที่ดีสำหรับเรื่องนี้ ขออภัยหากคำถามนี้ไม่สำคัญเกินไป

2
กินข้อความเดิมอีกครั้งหากการประมวลผลข้อความล้มเหลว
ฉันใช้ Confluent.Kafka .NET ไคลเอ็นต์เวอร์ชัน 1.3.0 ฉันกำลังติดตามเอกสาร : var consumerConfig = new ConsumerConfig { BootstrapServers = "server1, server2", AutoOffsetReset = AutoOffsetReset.Earliest, EnableAutoCommit = true, EnableAutoOffsetStore = false, GroupId = this.groupId, SecurityProtocol = SecurityProtocol.SaslPlaintext, SaslMechanism = SaslMechanism.Plain, SaslUsername = this.kafkaUsername, SaslPassword = this.kafkaPassword, }; using (var consumer = new ConsumerBuilder<Ignore, string>(consumerConfig).Build()) { …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.