คำถามและคำตอบสัมภาษณ์คาฟคา 14 อันดับแรก (2024)
ต่อไปนี้เป็นคำถามและคำตอบในการสัมภาษณ์ของ Kafka สำหรับนักศึกษาใหม่และผู้สมัครที่มีประสบการณ์เพื่อให้ได้งานในฝัน
1) พูดถึง Apache Kafka คืออะไร?
Apache Kafka เป็นระบบส่งข้อความแบบสมัครสมาชิกเผยแพร่ที่พัฒนาโดย Apache ที่เขียนด้วย Scala เป็นบริการบันทึกแบบกระจาย แบ่งพาร์ติชัน และจำลองแบบ
ดาวน์โหลด PDF ฟรี: คำถามและคำตอบสัมภาษณ์ Kafka
2) พูดถึงวิธีการถ่ายโอนข้อความแบบดั้งเดิมคืออะไร?
วิธีการถ่ายโอนข้อความแบบดั้งเดิมมีสองวิธี
- การเข้าคิว: ในการเข้าคิว กลุ่มผู้บริโภคอาจอ่านข้อความจากเซิร์ฟเวอร์ และแต่ละข้อความจะไปที่ข้อความใดข้อความหนึ่ง
- เผยแพร่-สมัครสมาชิก: ในรูปแบบนี้ข้อความจะถูกถ่ายทอดไปยังผู้บริโภคทุกคน
คาฟคาให้ความสำคัญกับผู้บริโภคเพียงกลุ่มเดียวซึ่งครอบคลุมทั้งกลุ่มผู้บริโภคที่กล่าวมาข้างต้น
3) พูดถึงประโยชน์ของ Apache Kafka เหนือเทคนิคแบบดั้งเดิมคืออะไร?
Apache Kafka มีประโยชน์เหนือกว่าเทคนิคการส่งข้อความแบบเดิมดังต่อไปนี้
- อย่างรวดเร็ว: โบรกเกอร์ Kafka เดียวสามารถให้บริการลูกค้าได้หลายพันรายโดยจัดการการอ่านและเขียนเมกะไบต์ต่อวินาที
- ขยายขีดความสามารถ: ข้อมูลจะถูกแบ่งพาร์ติชันและปรับปรุงประสิทธิภาพบนคลัสเตอร์ของเครื่องเพื่อให้ข้อมูลมีขนาดใหญ่ขึ้น
- Durable: ข้อความเป็นแบบถาวรและจำลองแบบภายในคลัสเตอร์เพื่อป้องกันข้อมูลสูญหาย
- จัดจำหน่ายโดยการออกแบบ: ให้การรับประกันและความทนทานต่อความผิดพลาด
4) พูดถึงความหมายของนายหน้าใน Kafka คืออะไร?
ในคลัสเตอร์ Kafka จะใช้คำนายหน้าเพื่ออ้างอิงเซิร์ฟเวอร์
5) พูดถึงขนาดสูงสุดของข้อความที่เซิร์ฟเวอร์ Kafka สามารถรับได้คือเท่าใด
ขนาดสูงสุดของข้อความที่เซิร์ฟเวอร์ Kafka สามารถรับได้คือ 1000000 ไบต์
6) อธิบายว่า Zookeeper ใน Kafka คืออะไร? เราสามารถใช้ Kafka โดยไม่มี Zookeeper ได้หรือไม่?
Zookeeper เป็นบริการประสานงานแบบโอเพ่นซอร์สที่มีประสิทธิภาพสูง ซึ่งใช้สำหรับแอปพลิเคชันแบบกระจายที่ดัดแปลงโดย Kafka ไม่ เป็นไปไม่ได้ที่จะบายพาส Zookeeper และเชื่อมต่อโดยตรงกับนายหน้าคาฟคา เมื่อ Zookeeper หยุดทำงาน จะไม่สามารถให้บริการตามคำขอของลูกค้าได้
- โดยทั่วไป Zookeeper ใช้เพื่อสื่อสารระหว่างโหนดต่างๆ ในคลัสเตอร์
- ใน Kafka มันถูกใช้เพื่อคอมมิตออฟเซ็ต ดังนั้นหากโหนดล้มเหลวไม่ว่าในกรณีใด ก็สามารถดึงข้อมูลจากออฟเซ็ตที่คอมมิตก่อนหน้านี้ได้
- นอกจากนี้ มันยังทำกิจกรรมอื่นๆ เช่น การตรวจจับผู้นำ การซิงโครไนซ์แบบกระจาย การจัดการการกำหนดค่า ระบุว่าโหนดใหม่ออกหรือเข้าร่วมเมื่อใด คลัสเตอร์ สถานะของโหนดแบบเรียลไทม์ ฯลฯ
7) อธิบายว่าผู้บริโภคใช้ข้อความในคาฟคาอย่างไร
การถ่ายโอนข้อความใน Kafka ทำได้โดยใช้ sendfile API- ช่วยให้สามารถถ่ายโอนไบต์จากซ็อกเก็ตไปยังดิสก์ผ่านสำเนาประหยัดพื้นที่เคอร์เนล และเรียกระหว่างผู้ใช้เคอร์เนลกลับไปยังเคอร์เนล
8) อธิบายว่าคุณสามารถปรับปรุงปริมาณงานของผู้บริโภคระยะไกลได้อย่างไร?
หากผู้บริโภคอยู่ในศูนย์ข้อมูลที่แตกต่างจากนายหน้า คุณอาจต้องปรับขนาดบัฟเฟอร์ของซ็อกเก็ตเพื่อตัดทอนเวลาแฝงของเครือข่ายที่ยาวนาน
9) อธิบายว่าคุณจะได้รับข้อความจาก Kafka เพียงครั้งเดียวในระหว่างการผลิตข้อมูลได้อย่างไร
ในระหว่างข้อมูล การผลิตเพื่อรับข้อความจาก Kafka ทันที คุณต้องปฏิบัติตามสองสิ่ง หลีกเลี่ยงการซ้ำซ้อนระหว่างการใช้ข้อมูล และ หลีกเลี่ยงความซ้ำซ้อนระหว่างการผลิตข้อมูล ต่อไปนี้เป็นสองวิธีในการรับความหมายเดียวในขณะที่การผลิตข้อมูล:
- ใช้ตัวเขียนเพียงตัวเดียวต่อพาร์ติชั่น ทุกครั้งที่คุณได้รับข้อผิดพลาดของเครือข่าย ให้ตรวจสอบข้อความสุดท้ายในพาร์ติชั่นนั้นเพื่อดูว่าการเขียนครั้งล่าสุดของคุณสำเร็จหรือไม่
- ในข้อความจะมีคีย์หลัก (UUID หรือบางอย่าง) และยกเลิกการซ้ำซ้อนกับผู้บริโภค
10) อธิบายว่าคุณสามารถลดการปั่นป่วนใน ISR ได้อย่างไร โบรกเกอร์จะออกจาก ISR เมื่อใด?
ISR คือชุดของการจำลองข้อความที่ซิงค์กับผู้นำโดยสมบูรณ์ หรืออีกนัยหนึ่งคือ ISR มีข้อความทั้งหมดที่คอมมิต ISR ควรรวมแบบจำลองทั้งหมดไว้เสมอจนกว่าจะเกิดความล้มเหลวจริง แบบจำลองจะถูกละทิ้งจาก ISR หากเบี่ยงเบนไปจากผู้นำ
11) เหตุใดจึงต้องมีการจำลองแบบใน Kafka
การจำลองข้อความใน Kafka ช่วยให้มั่นใจได้ว่าข้อความที่เผยแพร่จะไม่สูญหาย และสามารถใช้ได้ในกรณีที่เครื่องเกิดข้อผิดพลาด ข้อผิดพลาดของโปรแกรม หรือการอัปเกรดซอฟต์แวร์ทั่วไป
12) มันบ่งบอกอะไรถ้าแบบจำลองอยู่นอก ISR เป็นเวลานาน?
หากแบบจำลองยังคงอยู่นอก ISR เป็นเวลานาน แสดงว่าผู้ติดตามไม่สามารถดึงข้อมูลได้เร็วเท่ากับข้อมูลที่สะสมไว้ที่ผู้นำ
13) พูดถึงจะเกิดอะไรขึ้นหากแบบจำลองที่ต้องการไม่อยู่ใน ISR
หากเรพลิกาที่ต้องการไม่อยู่ใน ISR คอนโทรลเลอร์จะไม่สามารถย้ายได้ ความเป็นผู้นำ ไปยังแบบจำลองที่ต้องการ
14) เป็นไปได้ไหมที่จะรับข้อความชดเชยหลังจากผลิตแล้ว?
คุณไม่สามารถทำเช่นนั้นได้จากคลาสที่ทำงานเหมือนโปรดิวเซอร์เหมือนกับในระบบคิวส่วนใหญ่ บทบาทของคลาสคือการเริ่มการทำงานและลืมข้อความ นายหน้าจะดำเนินการส่วนที่เหลือ เช่น การจัดการข้อมูลเมตาที่เหมาะสมด้วยรหัส ออฟเซ็ต ฯลฯ ในฐานะผู้บริโภคข้อความ คุณสามารถรับออฟเซ็ตจากนายหน้าคาฟคาได้ หากมองเข้าไป. ผู้บริโภคที่เรียบง่าย คุณจะสังเกตเห็นว่ามันดึงข้อมูลมา MultiFetchResponse ออบเจ็กต์ที่มีออฟเซ็ตเป็นรายการ นอกจากนั้น เมื่อคุณทำซ้ำข้อความคาฟคา คุณจะมี ข้อความและออฟเซ็ต ออบเจ็กต์ที่มีทั้งออฟเซ็ตและข้อความที่ส่ง
คำถามสัมภาษณ์เหล่านี้จะช่วยในวีว่าของคุณ (วาจา)