Mở đăng ký khóa học Fullstack qua Zoom. Tham khảo tại đây

Thư Viện Câu Hỏi Phỏng Vấn

Tổng hợp các câu hỏi tuyển dụng thực tế theo nhiều cấp độ từ Entry đến Expert để bạn tự tin chinh phục nhà tuyển dụng.

Interactive Practice Tổng cộng 4,442 câu hỏi độc bản

Luyện Tập Phỏng Vấn Thử

Mô phỏng áp lực phỏng vấn thật với đồng hồ đếm ngược từng câu, tự đánh giá phản xạ và đo lường độ sẵn sàng của bạn.

Vui lòng đăng nhập để tham gia luyện tập và lưu tiến độ phỏng vấn.
Tất cả công nghệ .Net (39) ADO.NET (44) Agile scrum (33) Android (40) Angular (40) API Design (40) Arrays (40) ASP.NET (42) ASP.NET MVC (40) ASP.NET Web API (49) Availability & Reliability (40) Azure (49) Backtracking (40) Big-O Notation (35) Binary Tree (40) Bit Manipulation (40) Blockchain (45) C# (45) Caching (50) CAP Theorem (45) CDN (45) Concurrency (49) Cosmos DB (44) Cryptography (40) CSS (40) Data Structures (40) Databases (35) DDD (42) Dependency Injection (50) Design pattern (45) Devops (50) Divide & Conquer (40) Docker (43) Dynamic Programming (40) Entity Framework (40) Fibonacci Series (35) Flutter (40) Git (40) Go lang (40) Graph Theory (40) GraphQL (40) Greedy Algorithms (40) Hash Tables (40) Heaps and Maps (35) HTML (40) Ionic (45) IOS (45) Java (73) Javascript (81) jQuery (40) Kotlin (50) Kubernetes (11) Laravel (41) Layering & Middleware (44) Linked Lists (45) LINQ (40) Load Balancing (45) Microservices (44) Mongodb (45) MySQL (44) Net core (44) next.js (52) Node.js (40) NoSQL (48) Objective-C (40) OOP (44) Package Managerment (50) PHP (40) PostgreSQL (44) PWA (40) Python (41) Queues (44) React Native (48) React.js (45) Reactive Programming (50) Recursion (45) Redis (40) Ruby (44) Ruby on Rails (48) Rust (40) Searching (45) SOA (42) Software Architecture (44) Software Testing (40) Sorting (48) Spring (45) SQL (37) SQL Server (45) Stacks (44) Strings (50) Swift (45) System Design (56) Systems Design (7) T-SQL (39) Trees (49) Trie (35) Typescript (44) Unit testing (49) UX Design (50) Vue.js (50) Web security (40) WebSockets (49) Xamarin (40)
Khóa học Chuyên sâu System Design

Khóa học System Design & High Scalability

Hệ thống khóa học thực chiến chuẩn Enterprise giúp bạn tự tin chinh phục mọi kỳ phỏng vấn kỹ thuật và thăng tiến thu nhập.

01

Tại sao việc sử dụng Database Sharding lại là giải pháp cuối cùng để mở rộng cơ sở dữ liệu và những thách thức lớn nhất khi triển khai Sharding là gì?

Middle

Database Sharding là kỹ thuật chia nhỏ dữ liệu vào nhiều Database instance khác nhau dựa trên một Shard Key. Đây là giải pháp cuối cùng vì nó làm tăng độ phức tạp của hệ thống lên mức rất cao.

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
02

Trong thiết kế hệ thống, khái niệm Database Deadlock là gì và làm thế nào để giảm thiểu rủi ro này trong các ứng dụng có lưu lượng ghi cao?

Middle

Database Deadlock xảy ra khi hai hoặc nhiều transaction cùng chờ đợi tài nguyên (row/table lock) mà đối phương đang nắm giữ, dẫn đến việc hệ thống bị treo hoặc transaction bị hủy.

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
03

Khi xây dựng hệ thống với kiến trúc Event-Driven, làm thế nào để đảm bảo tính thứ tự của các sự kiện (Event Ordering) khi hệ thống có nhiều Consumer xử lý song song?

Middle

Trong các hệ thống phân tán, việc đảm bảo thứ tự sự kiện là một bài toán khó do tính chất bất đồng bộ của mạng và xử lý song song.

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
04

Tại sao việc sử dụng Connection Pooling lại quan trọng trong các ứng dụng Enterprise và những thông số nào cần được cấu hình tối ưu?

Middle

Việc tạo mới một kết nối Database (TCP handshake, authentication) tốn rất nhiều tài nguyên và thời gian. Connection Pooling giúp tái sử dụng các kết nối đã mở, giúp giảm latency và tránh quá tải Database.

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
05

Khi thiết kế hệ thống có lưu lượng truy cập lớn, tại sao việc sử dụng Database Read Replica lại giúp tăng hiệu năng và những thách thức nào về tính nhất quán dữ liệu (Data Consistency) cần phải đối mặt?

Middle

Database Read Replica là kỹ thuật tách biệt luồng đọc (Read) và luồng ghi (Write) để giảm tải cho Primary Database.

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
06

Trong hệ thống phân tán, khái niệm Circuit Breaker là gì và tại sao nó lại là thành phần không thể thiếu để ngăn chặn hiệu ứng Domino (Cascading Failure)?

Middle

Circuit Breaker là một mẫu thiết kế (Design Pattern) dùng để phát hiện lỗi và đóng gói logic ngăn chặn việc gọi liên tục vào một dịch vụ đang bị lỗi.

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
07

Tại sao việc sử dụng API Gateway lại được coi là tiêu chuẩn trong kiến trúc Microservices và nó giải quyết các vấn đề gì về Cross-cutting Concerns?

Middle

API Gateway đóng vai trò là điểm truy cập duy nhất (Single Entry Point) cho toàn bộ hệ thống phía sau.

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
08

Khi hệ thống yêu cầu xử lý các tác vụ nặng (như tạo báo cáo, gửi email hàng loạt) mà không muốn làm ảnh hưởng đến trải nghiệm người dùng, anh chị sẽ thiết kế kiến trúc xử lý bất đồng bộ (Asynchronous Processing) như thế nào?

Middle

Việc xử lý bất đồng bộ giúp tách biệt luồng xử lý chính (Main Thread) khỏi các tác vụ tiêu tốn tài nguyên.

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
09

Khi hệ thống gặp sự cố Database Connection Pool Exhaustion trong môi trường tải cao, anh chị sẽ thực hiện các bước phân tích và tối ưu hóa như thế nào?

Middle

Khi xảy ra hiện tượng cạn kiệt Connection Pool, cần thực hiện các bước: 1. Giám sát: Kiểm tra metrics của Connection Pool (Active connections, Idle connections, Wait time). 2. Phân tích nguyên nhân: Kiểm tra các truy vấn chậm (Slow Queries) gây chiếm dụng kết nối lâu, hoặc lỗi rò rỉ kết nối (Connection Leak) do không đóng kết nối sau khi sử dụng. 3. Tối ưu hóa: Tối ưu hóa các câu lệnh SQL bằng cách đánh Index, sử dụng Read Replica để giảm tải cho Master, hoặc áp dụng Caching (Redis) để giảm số lượng truy vấn xuống Database. 4. Cấu hình: Điều chỉnh tham số pool size phù hợp với khả năng chịu tải của Database server và sử dụng cơ chế Timeout hợp lý để giải phóng kết nối bị treo.

10

Trong thiết kế hệ thống chịu tải cao, khái niệm Database Sharding là gì và làm thế nào để giải quyết vấn đề Rebalancing dữ liệu khi thêm các Shard mới?

Middle

Database Sharding là kỹ thuật phân mảnh cơ sở dữ liệu thành các phần nhỏ hơn và lưu trữ trên các server khác nhau để tăng khả năng mở rộng ngang (Horizontal Scaling). Vấn đề lớn nhất là Rebalancing dữ liệu khi thêm Shard mới. Để giải quyết, chúng ta nên sử dụng Consistent Hashing thay vì thuật toán Modulo truyền thống. Với Consistent Hashing, khi thêm một node mới, chỉ một phần nhỏ dữ liệu cần phải di chuyển thay vì toàn bộ dữ liệu. Ngoài ra, có thể sử dụng Virtual Nodes để phân bổ dữ liệu đồng đều hơn trên các vật lý server, tránh hiện tượng Hotspot.

11

Làm thế nào để thiết kế một hệ thống Notification Service có khả năng gửi hàng triệu thông báo mỗi ngày mà không làm ảnh hưởng đến hiệu năng của các dịch vụ chính?

Middle

Để thiết kế hệ thống Notification hiệu quả, cần áp dụng kiến trúc bất đồng bộ (Asynchronous Architecture): 1. Sử dụng Message Queue (như Kafka hoặc RabbitMQ) để tách biệt giữa dịch vụ phát sinh sự kiện và dịch vụ gửi thông báo. 2. Notification Worker: Xây dựng các worker chuyên biệt để tiêu thụ message từ queue và thực hiện gửi thông báo qua các Provider (Email, SMS, Push). 3. Throttling: Áp dụng cơ chế giới hạn tốc độ gửi để tránh bị các nhà cung cấp dịch vụ chặn do spam. 4. Retry Mechanism: Thiết kế cơ chế thử lại với chiến lược Exponential Backoff cho các thông báo gửi thất bại. Cách tiếp cận này đảm bảo hệ thống chính không bị block khi quá trình gửi thông báo gặp sự cố.

12

Trong bối cảnh bảo mật hệ thống Enterprise, anh chị sẽ thiết kế cơ chế xác thực và phân quyền giữa các Microservices như thế nào để đảm bảo tính an toàn?

Middle

Để đảm bảo an toàn trong giao tiếp giữa các Microservices, nên áp dụng mô hình Zero Trust: 1. Sử dụng JWT (JSON Web Token) để truyền tải thông tin định danh người dùng và quyền hạn giữa các dịch vụ. 2. API Gateway: Đóng vai trò là điểm truy cập duy nhất, thực hiện xác thực token trước khi chuyển tiếp request vào hệ thống nội bộ. 3. Mutual TLS (mTLS): Thiết lập kết nối được mã hóa hai chiều giữa các dịch vụ để đảm bảo chỉ các dịch vụ được tin tưởng mới có thể giao tiếp với nhau. 4. Service Mesh: Sử dụng công cụ như Istio để quản lý chính sách bảo mật, kiểm soát truy cập (RBAC) và giám sát lưu lượng mạng một cách tập trung mà không cần thay đổi code của từng service.

13

Thiết kế một hệ thống tạo ID ngẫu nhiên phân tán

Middle

Tham khảo bài viết công bố Snowflake của Twitter (https://blog.twitter.com/2010/announcing-snowflake) và mã nguồn dự án Snowflake (https://github.com/twitter/snowflake/)

High-Ticket Mentoring
Cần Mentor Phỏng Vấn Thử 1-1 & Tối Ưu CV?

Mô phỏng phỏng vấn kỹ thuật thực tế 1-1 qua Google Meet, nhận xét chi tiết điểm mạnh/yếu và sửa CV trực tiếp cùng giảng viên Unicode.

AI Resume Scanner
Kiểm Tra CV Chuẩn ATS Miễn Phí

Tải CV của bạn lên để hệ thống AI rà soát từ khóa kỹ năng, định dạng và tính điểm chuẩn nhà tuyển dụng.

vừa nâng cấp PRO khóa 1 phút trước   Tìm hiểu khóa học