Tôi nên chuẩn bị những câu hỏi phỏng vấn Kafka nào?
Bởi Aaron Cao · Cập nhật

Hãy chuẩn bị cho bốn lớp: khái niệm cốt lõi (chủ đề, phân vùng, độ lệch, nhóm người tiêu dùng), bảo đảm phân phối (ít nhất một lần, chính xác một lần, trình sản xuất có tính lũy đẳng), vận hành (sao chép, bản sao đồng bộ, lưu giữ, tái cân bằng) và các tình huống thiết kế yêu cầu bạn xác định số lượng phân vùng, chọn khóa và xử lý sự cố. Người phỏng vấn sẽ đào sâu lý do đằng sau mỗi câu trả lời.
Mọi người phỏng vấn sẽ kiểm tra những khái niệm Kafka cốt lõi nào trước?
Bạn đã biết Kafka là một nhật ký phân tán và đang lo rằng người phỏng vấn sẽ đi sâu hơn một cấp so với cách bạn dùng hằng ngày. Đó chính xác là hướng của những câu hỏi này, vì vậy phần này trình bày thuật ngữ theo thứ tự mà người phỏng vấn thường sử dụng và chỉ ra câu hỏi tiếp nối đằng sau mỗi thuật ngữ.
- Chủ đề và phân vùng. Một chủ đề được chia thành các phân vùng, mỗi phân vùng là một nhật ký có thứ tự và chỉ cho phép ghi nối tiếp. Câu hỏi tiếp nối: tại sao Kafka mở rộng khả năng ghi bằng cách thêm phân vùng thay vì làm cho một nhật ký duy nhất nhanh hơn?
- Độ lệch. Vị trí của một người tiêu dùng trong phân vùng. Câu hỏi tiếp nối: ai lưu trữ các độ lệch đã commit và điều gì xảy ra nếu người tiêu dùng gặp sự cố trước khi commit?
- Nhóm người tiêu dùng. Những người tiêu dùng trong một nhóm chia sẻ các phân vùng của chủ đề; tại một thời điểm, mỗi phân vùng được gán cho nhiều nhất một người tiêu dùng trong nhóm. Câu hỏi tiếp nối: thông lượng sẽ ra sao nếu nhóm có nhiều người tiêu dùng hơn số phân vùng?
- Broker và bộ điều khiển. Broker lưu trữ các phân vùng; bộ điều khiển xử lý việc bầu chọn leader và siêu dữ liệu. Câu hỏi tiếp nối: điều gì đã thay đổi khi Kafka chuyển siêu dữ liệu từ ZooKeeper sang KRaft?
- Trình sản xuất và khóa. Thông điệp có khóa được đưa vào phân vùng được chọn bằng cách băm khóa; thông điệp không có khóa được phân bổ trên nhiều phân vùng. Câu hỏi tiếp nối: cách nào trong hai cách này giữ nguyên thứ tự cho các sự kiện của một khách hàng?
Hãy trả lời bằng cơ chế, không phải khẩu hiệu. Nói rằng phân vùng tạo khả năng xử lý song song chỉ là yêu cầu cơ bản; giải thích rằng thứ tự chỉ tồn tại bên trong một phân vùng và vì thế khóa quyết định miền thứ tự mới là câu trả lời giúp bạn tiến vào vòng tiếp theo.
Các câu hỏi về bảo đảm phân phối và sao chép diễn ra như thế nào?
Đây là lớp mà phần lớn ứng viên mất điểm, vì thuật ngữ thì dễ nhưng những đánh đổi thì không. Hãy chuẩn bị cho việc người phỏng vấn nêu một mức bảo đảm và yêu cầu bạn xây dựng nó từ các thiết lập.
- Nhiều nhất một lần và ít nhất một lần. Commit độ lệch trước khi xử lý có thể khiến bạn mất thông điệp; xử lý trước rồi commit sau có thể khiến bạn xử lý thông điệp hai lần. Hãy nêu loại sự cố mà mỗi thứ tự có thể chịu được và hệ thống của bạn ưu tiên cách nào.
- Trình sản xuất lũy đẳng và chính xác một lần. Trình sản xuất lũy đẳng loại bỏ các lần thử lại trùng lặp trong một phân vùng; giao dịch mở rộng đặc tính đó sang nhiều phân vùng và cả độ lệch của người tiêu dùng trong một vòng lặp tiêu thụ-biến đổi-sản xuất. Hãy sẵn sàng nêu những gì cơ chế chính xác một lần không bao phủ: thao tác ghi vào cơ sở dữ liệu hạ nguồn nằm ngoài giao dịch vẫn là vấn đề bạn phải xử lý.
- acks, hệ số sao chép và bản sao đồng bộ.
acks=allchờ tập hợp bản sao đồng bộ;min.insync.replicasquy định tập hợp đó có thể thu hẹp đến mức nào trước khi thao tác ghi bị từ chối. Người phỏng vấn thường hỏi bạn phải đánh đổi điều gì để có độ bền ở đây: độ trễ và tính sẵn sàng khi mất broker. - Lưu giữ và nén nhật ký. Chính sách lưu giữ dựa trên thời gian hoặc kích thước sẽ xóa các phân đoạn cũ; nén nhật ký giữ lại bản ghi mới nhất cho mỗi khóa. Câu hỏi tiếp nối: cơ chế nào hỗ trợ nhật ký thay đổi cho kho khóa-giá trị và tại sao?
- Tái cân bằng. Khi một người tiêu dùng tham gia hoặc rời đi, các phân vùng được phân bổ lại. Câu hỏi tiếp nối: một lần tái cân bằng kéo dài ảnh hưởng thế nào đến dịch vụ nhạy cảm với độ trễ, và tái cân bằng hợp tác cùng tư cách thành viên tĩnh giảm bớt vấn đề đó ra sao?
Một thói quen hữu ích: với mỗi thiết lập bạn nhắc đến, hãy nói nó ngăn chặn sự cố nào và làm phát sinh chi phí gì. Cấu trúc đó giúp bạn trả lời cả câu hỏi chính lẫn câu hỏi tiếp nối trong cùng một mạch.
Các câu hỏi thiết kế và tình huống có dạng như thế nào?
Trong các vòng phỏng vấn cấp cao, định nghĩa được thay bằng tình huống để quan sát cách bạn suy luận. Một đề bài điển hình: một kỹ sư backend phỏng vấn cho vị trí nền tảng tại công ty thanh toán được yêu cầu thiết kế đường ống sự kiện, trong đó mọi giao dịch của cùng một tài khoản phải được xử lý theo thứ tự, thông lượng phải tăng theo lưu lượng và sự cố broker không được làm mất dữ liệu. Câu trả lời tốt sẽ dùng id tài khoản làm khóa thông điệp để các sự kiện của cùng một tài khoản nằm chung phân vùng, xác định số lượng phân vùng theo mức tải đỉnh dự kiến và chừa dư địa tăng trưởng, thiết lập sao chép cùng acks=all để bảo đảm độ bền, đồng thời giải thích cách người tiêu dùng commit độ lệch để khi gặp sự cố, dữ liệu được phát lại thay vì bị bỏ qua.
Các tình huống khác thường lặp lại: người tiêu dùng bị tụt lại và cách bạn phát hiện độ trễ rồi bắt kịp; một chủ đề có số lượng phân vùng khiến bạn hối tiếc và lý do tái phân vùng phá vỡ thứ tự theo khóa; một thông điệp độc hại làm người tiêu dùng gặp sự cố và mẫu hàng đợi thư lỗi dùng để cô lập nó; thay đổi lược đồ giữa các trình sản xuất và người tiêu dùng cùng lợi ích của sổ đăng ký lược đồ. Người phỏng vấn không tìm kiếm một kiến trúc đúng duy nhất. Họ muốn bạn nêu ràng buộc, chọn cơ chế và trình bày rõ sự đánh đổi.
Hãy luyện nói thành tiếng trước buổi phỏng vấn thay vì chỉ đọc. Chế độ luyện tập trên trang phỏng vấn thử được thiết kế để bạn diễn tập các câu hỏi tình huống với người phỏng vấn AI có thể đào sâu bằng câu hỏi tiếp nối, còn bộ câu hỏi rộng hơn theo vai trò và chủ đề nằm tại câu hỏi phỏng vấn theo vai trò và chủ đề.
Trợ lý phỏng vấn AI có thể hỗ trợ các câu hỏi Kafka không?
Trong vòng phỏng vấn hội thoại thì có, nhưng trong giới hạn trung thực. Ứng dụng desktop gốc dành cho macOS và Windows của SubcueAI thu âm âm thanh của người phỏng vấn cùng micrô của bạn, rồi hiển thị các gợi ý trả lời ngắn trong một lớp phủ cục bộ. Vì vậy, khi người phỏng vấn hỏi min.insync.replicas bảo vệ khỏi điều gì, cơ chế liên quan sẽ xuất hiện trên màn hình để bạn giải thích bằng lời của mình. Tiện ích trình duyệt cũng làm điều tương tự cho các cuộc gọi trong tab trình duyệt và chỉ thu âm thanh của tab cuộc họp. Cả hai đều không thêm bot vào cuộc gọi hay chèn bất kỳ nội dung nào vào trang cuộc họp; hướng dẫn thiết lập nằm trên trang hướng dẫn.
Giới hạn quan trọng hơn lời quảng bá. Bài kiểm tra lập trình có giám sát, màn hình bị ghi lại hoặc máy tính xách tay do công ty quản lý đều nằm ngoài phạm vi hỗ trợ; còn bài tập lập trình trực tiếp yêu cầu bạn triển khai một người tiêu dùng dưới sự quan sát phải do chính bạn thực hiện. Trợ lý hữu ích nhất với các câu hỏi về thuật ngữ và sự đánh đổi ở trên, nhưng kém phù hợp nhất với mọi nội dung phải nhập vào nền tảng đánh giá. Trước khi dựa vào trợ lý, hãy cung cấp sơ yếu lý lịch để các gợi ý phản ánh công việc Kafka mà bạn thực sự đã làm; hồ sơ đó nằm trong trình tạo sơ yếu lý lịch.
Câu hỏi thường gặp
Tại sao Kafka chỉ có thể bảo đảm thứ tự trong một phân vùng?
Sự khác biệt giữa cơ chế ít nhất một lần và chính xác một lần trong Kafka là gì?
Một nhóm người tiêu dùng nên có bao nhiêu người tiêu dùng?
Điều gì xảy ra khi một broker Kafka gặp sự cố?
SubcueAI có thể hỗ trợ trong bài đánh giá lập trình Kafka không?
Câu hỏi liên quan
- Tôi nên chuẩn bị những câu hỏi phỏng vấn Databricks nào?
- Tôi nên chuẩn bị những câu hỏi phỏng vấn .NET nào?
- Tôi nên chuẩn bị những câu hỏi phỏng vấn kỹ sư chất lượng nào?
- Tôi nên dự kiến những câu hỏi nào trong phỏng vấn định lượng?
- Tôi nên chuẩn bị những câu hỏi phỏng vấn Snowflake nào?
- Tôi nên chuẩn bị cho những câu hỏi phỏng vấn giáo viên nào?