Database

Database Scaling – Kỹ thuật thường xuyên được triển khai trong các dự án lớn

Khi số lượng người dùng ứng dụng của bạn ngày càng tăng lên, dữ liệu từ đó sẽ tăng trưởng ngày càng nhiều hơn mỗi ngày, database của dự án sẽ dần trở nên quá tải. Và đây chính là lúc chúng ta cần thực hiện scale database. Hai chiến lược chính để scale database thường được sử dụng đó là: Mở rộng theo chiều dọc (Vertical Scaling) và Mở rộng theo chiều ngang (Horizontal Scaling) Cùng mình tìm hiểu về chúng trong bài viết...

Continue reading...

Hiểu về Data Center: Cơ chế hoạt động, Xử lý khi có sự cố và các thách thức có thể gặp phải

🔑 Định nghĩa Hình minh họa dưới đây là một ví dụ với hệ thống sử dụng hai Trung tâm Dữ liệu, thuật ngữ tiếng Anh là Data Center (viết tắt là DC) Thông thường, người dùng sẽ được định tuyến theo vị trí địa lý (thuật ngữ tiếng Anh là GeoDNS-routed hoặc Geo-routed) đến Data Center gần với họ nhất. Lưu lượng truy cập phân chia theo tỉ lệ: GeoDNS là một dịch vụ DNS cho phép phân giải...

Continue reading...

Một số lưu ý khi sử dụng Cache

Nhiều bạn thấy tác dụng của cache hay quá, nhanh quá, thế là nảy ra suy nghĩ: “Cứ muốn tăng hiệu năng là sẽ lưu dữ liệu vào cache” ❌ Đây là một suy nghĩ sai lầm. Dưới đây là một số lưu ý khi sử dụng Cache: 🔶 1. Sử dụng cache khi: dữ liệu của một hoặc nhiều bảng kết hợp với nhau ĐƯỢC LẤY RA THƯỜNG XUYÊN, nhưng ÍT BỊ SỬA ĐỔI. 🔶 2. Để tăng tốc độ truy xuất dữ...

Continue reading...

Giới thiệu cơ bản về Cache

🔑 Định nghĩa Cache là một bộ nhớ tạm thời tốc độ cao được sử dụng để lưu trữ dữ liệu mà hệ thống có khả năng sẽ sử dụng lại trong tương lai gần. Mục đích chính của cache là cải thiện hiệu suất hệ thống bằng cách giảm thời gian truy cập dữ liệu và giảm tải cho các nguồn dữ liệu chính (ví dụ: main memory, ổ cứng). 😍 Ví dụ Ví dụ như bạn có một...

Continue reading...

Kết hợp Load Balancer và Database Replication trong cùng một hệ thống

Như đã chia sẻ trong những bài viết trước, chúng ta đã biết Load Balancer và Database Replication sẽ giúp cải thiện tính khả dụng (High Availability) của hệ thống. Vậy nếu kết hợp chúng trong cùng một hệ thống thì sẽ như thế nào? ⚙️ Luồng hoạt động Nhìn vào hình minh họa ở trên, các bạn sẽ thấy được luồng hoạt động như sau: (1)+(2) Ban đầu người dùng muốn truy cập trang web thì sẽ vẫn thông qua DNS để phân giải tên miền...

Continue reading...

Database Replication

Trong bài viết về “LUỒNG HOẠT ĐỘNG CỦA MỘT ỨNG DỤNG WEB CƠ BẢN”, mình đã chia sẻ cho các bạn thấy một sơ đồ cơ bản bao gồm 1 Web Server và 1 Database để giúp các bạn dễ hiểu và tiếp cận. Tuy nhiên, trong thực tế mọi chuyện sẽ không đơn giản như vậy. Giả sử trường hợp Database duy nhất đó bị sập thì sao? Lúc ấy chúng ta sẽ không thể kết nối tới Database để thêm,...

Continue reading...

Sập Server và Load Balancer

🤯 Cụm từ “sập server” chắc anh em đã nghe tới nhiều rồi. Kể cả những anh em mới đang là học sinh, sinh viên, chưa đi làm dự án thực tế bao giờ, cũng có thể đã từng đọc được trên các blog, hoặc xem video Youtube, TikTok nói đến cụm từ này. Mới đây nhất, chắc đâu đó 1 hay 2 tháng trước, cộng đồng mạng được một phen nháo nhào vì Facebook bị sập. Zalo khi ấy kiểu: Thế...

Continue reading...

Luồng hoạt động của một ứng dụng Web cơ bản

Trước khi tìm hiểu về những hệ thống Web phức tạp, với nhiều server kết nối và làm việc với nhau, chúng ta hãy cùng nhau tìm hiểu về một hệ thống cơ bản, sử dụng 1 hoặc 2 server để xử lý. 🔑 Hiểu đơn giản về “Server” Nói server nghe hầm hố vậy thôi, chứ bản chất server cũng là máy tính, nhận các yêu cầu, xử lý dữ liệu và trả về kết quả mong muốn. Khi...

Continue reading...