14 câu hỏi phỏng vấn Kafka và câu trả lời hàng đầu (2025)
Dưới đây là những câu hỏi phỏng vấn Kafka và câu trả lời dành cho cả ứng viên mới và ứng viên có kinh nghiệm để có được công việc mơ ước của mình.
1) Apache Kafka là gì?
Apache Kafka là một hệ thống nhắn tin đăng ký-xuất bản được Apache phát triển, được viết bằng Scala. Đây là một dịch vụ nhật ký phân tán, phân vùng và sao chép.
Tải xuống PDF miễn phí: Câu hỏi và câu trả lời phỏng vấn Kafka
2) Hãy cho biết phương pháp truyền tải thông điệp truyền thống là gì?
Phương pháp truyền tải thông điệp truyền thống bao gồm hai phương pháp
- Xếp hàng: Trong hàng đợi, một nhóm người tiêu dùng có thể đọc tin nhắn từ máy chủ và mỗi tin nhắn sẽ được chuyển đến một trong số họ
- Đăng ký-Xuất bản: Trong mô hình này, tin nhắn được phát tới tất cả người tiêu dùng
Kafka cung cấp khái niệm trừu tượng về người tiêu dùng duy nhất, khái quát cả hai khái niệm trên - nhóm người tiêu dùng.
3) Hãy nêu những lợi ích của Apache Kafka so với kỹ thuật truyền thống?
Apache Kafka có những lợi ích sau so với kỹ thuật nhắn tin truyền thống
- Nhanh: Một nhà môi giới Kafka duy nhất có thể phục vụ hàng nghìn khách hàng bằng cách xử lý hàng megabyte đọc và ghi mỗi giây
- Có thể mở rộng: Dữ liệu được phân vùng và sắp xếp hợp lý trên một cụm máy để cho phép dữ liệu lớn hơn
- Trường tồn: Tin nhắn được lưu trữ liên tục và được sao chép trong cụm để ngăn ngừa mất dữ liệu
- Phân phối theo Thiết kế: Nó cung cấp khả năng chịu lỗi và độ bền
4) Hãy cho biết ý nghĩa của từ broker trong Kafka là gì?
Trong cụm Kafka, thuật ngữ môi giới được sử dụng để chỉ Máy chủ.
5) Hãy cho biết kích thước tối đa của tin nhắn mà máy chủ Kafka có thể nhận được là bao nhiêu?
Kích thước tối đa của tin nhắn mà máy chủ Kafka có thể nhận được là 1000000 byte.
6) Giải thích Zookeeper trong Kafka là gì? Chúng ta có thể sử dụng Kafka mà không cần Zookeeper không?
Zookeeper là một dịch vụ phối hợp mã nguồn mở, hiệu suất cao được sử dụng cho các ứng dụng phân tán được Kafka điều chỉnh. Không, không thể bỏ qua Zookeeper và kết nối trực tiếp đến môi giới Kafka. Khi Zookeeper ngừng hoạt động, nó không thể phục vụ yêu cầu của khách hàng.
- Zookeeper về cơ bản được sử dụng để giao tiếp giữa các nút khác nhau trong một cụm
- Trong Kafka, nó được sử dụng để cam kết bù trừ, do đó nếu nút bị lỗi trong bất kỳ trường hợp nào, nó có thể được truy xuất từ bù trừ đã cam kết trước đó
- Ngoài ra, nó còn thực hiện các hoạt động khác như phát hiện nút dẫn đầu, đồng bộ hóa phân tán, quản lý cấu hình, xác định thời điểm một nút mới rời khỏi hoặc tham gia, cụm, trạng thái nút theo thời gian thực, v.v.
7) Giải thích cách người dùng tiếp nhận thông điệp trong Kafka?
Việc chuyển tin nhắn trong Kafka được thực hiện bằng cách sử dụng sendfile API. Nó cho phép chuyển các byte từ socket sang đĩa thông qua việc sao chép và gọi lại giữa người dùng kernel và kernel để tiết kiệm không gian.
8) Giải thích cách bạn có thể cải thiện thông lượng của người dùng từ xa?
Nếu người dùng ở một trung tâm dữ liệu khác với nhà môi giới, bạn có thể cần điều chỉnh kích thước bộ đệm ổ cắm để khấu hao độ trễ mạng dài.
9) Giải thích cách bạn có thể nhận được chính xác một tin nhắn từ Kafka trong quá trình sản xuất dữ liệu?
Trong quá trình dữ liệu, sản xuất để nhận được chính xác một tin nhắn từ Kafka, bạn phải làm theo hai điều tránh trùng lặp trong quá trình sử dụng dữ liệu và tránh trùng lặp trong quá trình sản xuất dữ liệu. Sau đây là hai cách để có được chính xác một ngữ nghĩa trong khi sản xuất dữ liệu:
- Sử dụng một trình ghi duy nhất cho mỗi phân vùng, mỗi khi bạn gặp lỗi mạng, hãy kiểm tra tin nhắn cuối cùng trong phân vùng đó để xem lần ghi cuối cùng của bạn có thành công không
- Trong tin nhắn bao gồm khóa chính (UUID hoặc thứ gì đó) và loại bỏ trùng lặp trên người tiêu dùng
10) Giải thích cách bạn có thể giảm tỷ lệ churn trong ISR? Khi nào thì broker rời khỏi ISR?
ISR là một tập hợp các bản sao tin nhắn được đồng bộ hoàn toàn với các leader, nói cách khác, ISR có tất cả các tin nhắn đã được cam kết. ISR phải luôn bao gồm tất cả các bản sao cho đến khi có lỗi thực sự. Một bản sao sẽ bị loại khỏi ISR nếu nó lệch khỏi leader.
11) Tại sao cần phải sao chép trong Kafka?
Việc sao chép tin nhắn trong Kafka đảm bảo rằng bất kỳ tin nhắn nào được xuất bản đều không bị mất và có thể được sử dụng trong trường hợp máy tính gặp lỗi, lỗi chương trình hoặc các bản nâng cấp phần mềm phổ biến hơn.
12) Việc bản sao không tham gia ISR trong thời gian dài có nghĩa là gì?
Nếu một bản sao nằm ngoài ISR trong một thời gian dài, điều đó cho thấy rằng thiết bị theo sau không thể truy xuất dữ liệu nhanh như dữ liệu được tích lũy ở thiết bị dẫn đầu.
13) Hãy cho biết điều gì sẽ xảy ra nếu bản sao được ưu tiên không có trong ISR?
Nếu bản sao được ưu tiên không có trong ISR, bộ điều khiển sẽ không di chuyển được khả năng lãnh đạo đến bản sao được ưa thích.
14) Có thể lấy được độ lệch của tin nhắn sau khi tạo không?
Bạn không thể làm điều đó từ một lớp hoạt động như một nhà sản xuất như trong hầu hết các hệ thống hàng đợi, vai trò của nó là kích hoạt và quên các thông báo. Broker sẽ thực hiện phần còn lại của công việc như xử lý siêu dữ liệu phù hợp với id, offset, v.v. Với tư cách là người tiêu dùng của thông báo, bạn có thể lấy offset từ một broker Kafka. Nếu bạn nhìn vào Người tiêu dùng đơn giản lớp, bạn sẽ nhận thấy nó lấy Phản hồi MultiFetch các đối tượng bao gồm các offset dưới dạng danh sách. Ngoài ra, khi bạn lặp lại Kafka Message, bạn sẽ có Tin nhắn và Offset các đối tượng bao gồm cả độ lệch và thông điệp được gửi.
Những câu hỏi phỏng vấn này cũng sẽ giúp ích cho bài thi viva(orals) của bạn