Hãy để lại email của bạn để nhận tin báo khi có bài viết mới:

Gửi

Hoặc bạn cũng có thể nhận tin có bài mới bằng cách tham gia nhóm trò chuyện sau đây:

Nhóm chat Zalo

Xây dựng website đáp ứng lượng truy cập lớn ngay từ đầu - Phần 1

Đây là video đầu tiên trong loạt các video trong chủ đề hướng dẫn cho DEV cách để xây dựng một hệ thống website có thể đáp ứng được một lượng truy cập lớn. Chủ đề này sẽ đi hướng dẫn và chỉ rõ chi tiết từng vấn đề cơ bản nhất tới phức tạp nhất của việc tăng tốc độ của hệ thống, tăng trải nghiệm của người dùng về tốc độ và bảo toàn dữ liệu trong cấu trúc lưu trữ cũng như xuất bản. Video đầu tiên này chỉ tập trung giới thiệu tổng quan các hạng mục mà các bạn sẽ được tiếp cận và xử lý.

Xây dựng website đáp ứng lượng truy cập lớn ngay từ đầu - Phần 2

Đây là video 2 trong loạt các video trong chủ đề hướng dẫn cho DEV cách để xây dựng một hệ thống website có thể đáp ứng được một lượng truy cập lớn. Video thứ 2 sẽ đi vào chi tiết việc tối ưu hóa ở trình duyệt của người dùng, làm sao để tăng trải nghiệm tốc độ cho người dùng.

Xây dựng website đáp ứng lượng truy cập lớn ngay từ đầu - Phần 3

video này sẽ đi giải quyết những vấn đề có thể tối ưu được khi phân giải tên miền (DNS). Giới thiệu các bạn làm quen với khái niệm về CDN hay Content Delivery Network. Đây là video 3 trong loạt các video trong chủ đề hướng dẫn cho DEV cách để xây dựng một hệ thống website có thể đáp ứng được một lượng truy cập lớn.

Xây dựng website đáp ứng lượng truy cập lớn ngay từ đầu - Phần 4

Video này sẽ đi vào vấn đề hạ tầng mạng INTERNET, tìm hiểu các vấn đề có thể xãy ra và điều gì sẽ làm trải nghiệm tốc độ của người dùng ở website của chúng ta trở nên chậm hoặc không đảm bảo. Bắt đầu làm quen khái niệm ISP và VNIX

Xây dựng website đáp ứng lượng truy cập lớn ngay từ đầu - Phần 5

Video này sẽ vạch ra cho các bạn những vấn đề cơ bản nhất của viết lãng phí tài nguyên và thời gian khi viết code. Và các bạn sẽ học cách code làm sao để cải thiện và tránh được sự lãng phí đó. Tận dụng được thêm khả năng phần cứng của máy chủ và đáp ứng được các lượt truy cập với tốc độ nhanh nhất có thể.

Xây dựng website đáp ứng lượng truy cập lớn ngay từ đầu - Phần 5

Video này sẽ vạch ra cho các bạn những vấn đề cơ bản nhất của viết lãng phí tài nguyên và thời gian khi viết code. Và các bạn sẽ học cách code làm sao để cải thiện và tránh được sự lãng phí đó. Tận dụng được thêm khả năng phần cứng của máy chủ và đáp ứng được các lượt truy cập với tốc độ nhanh nhất có thể.

Một quá trình xử lý đơn giản thường hay gặp

Ví dụ đây là một quá trình cơ bản nhất để tính toán hiển thị danh sách sản phẩm của một trang web bán hàng theo điều kiện đầu vào:

  1. Đọc danh sách sản phẩm cần hiển thị từ database theo điều kiện đầu vào.
  2. Duyệt qua danh sách sản phẩm và tạo các thẻ nội dung html cần thiết.
  3. Trả kết quả về client

Quá trình đơn giản này có vấn đề gì ?

Ở cùng một điều kiện và trong một khoảng thời gian nhất định thì kết quả trả về hoàn toàn giống nhau. Nhưng với nhiều người dùng khác nhau thì quá trình này sẽ được thực hiện lại nhiều lần. 

Điều này gây lãng phí tài nguyên cho quá trình đọc database và quá trình xử lý để ra kết quả. Điều này giống như bạn có một số quả cam, khi ai lại hỏi bạn có bao nhiêu quả cam thì bạn đếm số cam rồi trả lời. Vấn đề là lần nào bạn cũng đếm số quả cam cho dù bạn đã đếm rồi. Một sự lãng phí.

Làm sao cải thiện và khắc phục vấn đề này?

Ví dụ vấn đề đếm cam, rõ ràng để không lãng phí ta chỉ cần nhớ kết quả đã đếm lần đầu và không cần đếm lại và nói ngay kết quả cho người hỏi.

Còn vấn đề trong việc tạo kết quả trả về danh sách sản phẩm cũng vậy, chỉ cần ghi nhớ lại kết quả đã xử lý theo điều kiện đó. Khi có một yêu cầu khác mà có cùng điều kiện như vậy thì không cần xử lý nữa mà trả về kết quả trước đó luôn.

Việc ghi nhớ này là một loại CACHE và do đặc tính của nó, ta có thể gọi là Cache Logic hay Cache Business

Lưu CACHE như thế nào?

Thông thường thì có 2 phương pháp lưu giữ CACHE để sử dụng nhiều lần:

  1. Lưu thành file: kết quả tổng hợp được lưu vào file trên ổ cứng, khi cần thì đọc file rồi trả về client. 
  2. Lưu trong bộ nhớ (RAM): kết quả được lưu giữ trong RAM và khi cần thì lấy ra trả về client. 

Ưu điểm và nhược điểm của việc sử dụng CACHE dạng FILE?

Ưu điểm:

  • Đảm bảo vẹn toàn dữ liệu do có thể lưu được thời gian dài
  • Có thể lưu được nhiều dữ liệu do dung lượng ổ cứng là khá lớn với giá cả rẻ

Nhược điểm:

  • Phụ thuộc vào tốc độ đọc file của ổ cứng
  • Phải suy nghĩ và tính toán trước cách thức tổ chức thư mục và files
  • Nếu không quản lý hiệu quả sẽ dẫn tới rất nhiều files rác

Ưu điểm và nhược điểm của việc sử dụng CACHE dạng RAM?

Ưu điểm:

  • Tốc độ truy xuất dữ liệu của RAM là cực nhanh. Việc ghi và đọc CACHE diễn ra gần như ngay lập tức. 

Nhược điểm:

  • Không đảm bảo vẹn toàn dữ liệu, RAM mất dữ liệu khi máy khởi động lại
  • Dung lượng của RAM là khá hạn chế do giá không hề rẻ như ổ cứng
  • Nếu lạm dụng có thể dẫn tới làm ảnh hưởng toàn server

Thuật toán đề xuất giải pháp cơ bản tối ưu việc sử dụng CACHE LOGIC

Phương pháp triển khai CACHE

Có 2 cách để điều khiển và triển khai việc vận dụng hệ thống cache để tăng tốc độ xử lý và tiết kiệm tài nguyên:

  1. Bị động: request đầu tiên sẽ chịu trách nhiệm chạy xử lý thông thường rồi tạo cache cần thiết. Những request sau chỉ việc sử dụng cache mà không xử lý lại.
  2. Chủ động: có một hệ thống riêng chịu trách nhiệm tạo và quản lý cache. Tất cả request đều sẽ được sử dụng cache, bởi vì cache luôn luôn có sẵn.

Có thể chỉ cần sử dụng bị động không kèm theo chủ động, nhưng nếu có chủ động thì phải có bị động ở dạng kiểm tra. Tại sao?

  • Chủ động là một tiến trình khác tác động vào cache nhầm điều khiển cache (tạo, cập nhật, xóa). Quá trình này không thể đảm bảo tại mọi thời điểm có request thì đều có cache. 
  • Bị động dạng kiểm tra là: nếu có cache thì đọc cache, không có cache thì chạy xử lý bình thường nhưng không được tạo cache.

...

HẾT PHẦN 5

ỦNG HỘ TÁC GIẢ (DONATE) Nếu bạn muốn ủng hộ tài chính cho tác giả, bất kể bao nhiêu, bạn có thể chuyển khoản qua:

TECHCOMBANK, NGUYÊN KIỆM, TP HỒ CHÍ MINH
Chủ tài khoản___ : ĐẶNG VĂN LEL
Số tài khoản____ : 19027982455010

Website nhằm mục đích giúp cho các bạn có thể theo dõi các bài viết và video mới dễ dàng và thuận tiện hơn. Giao diện và các tính năng sẽ dần hoàn thiện, mọi ý kiến đóng góp xin liên hệ thông qua Facebook Page "Thư Viện Lập Trình"

THEO DÕI TRÊN

ĐĂNG KÝ NGAY