cuốn sách gpt4 ai đã làm

bộ nhớ đệm - Bộ nhớ đệm đặt đồng thời và thông lượng mục

In lại Tác giả: Hồ Xil Thời gian cập nhật: 2023-11-01 10:53:59 29 4
mua khóa gpt4 Nike

Hầu hết các máy chủ CDN đều sử dụng bộ nhớ đệm cho nội dung được truy cập thường xuyên.

场景:Giả sử ai đó tải lên một hình ảnh rất phổ biến và nhiều người dùng (1000) từ cùng một vị trí cố gắng truy cập nó.

câu hỏi:Giả sử máy chủ web nhận được yêu cầu và trước tiên kiểm tra bộ đệm của nó, nó phát hiện ra rằng nội dung của hình ảnh bị thiếu và tìm nạp nội dung từ CDN. Nếu quá trình kéo mất x giây, máy chủ sẽ nhận được 999 yêu cầu đồng thời cho cùng một nội dung.

Liệu máy chủ có tìm nạp nội dung từ máy chủ 999 lần (vì máy chủ vẫn đang lấy dữ liệu và không có dữ liệu trong bộ nhớ đệm) và cập nhật bộ nhớ đệm không?

Nếu không, máy chủ sẽ triển khai sơ đồ nào để tránh tình trạng này.

câu trả lời hay nhất

Bạn có thể khóa nó ở phía máy chủ để tránh có quá nhiều yêu cầu tới CDN.

Khi máy chủ nhận được yêu cầu:

  1. Chuỗi công việc kiểm tra xem khóa có tồn tại hay không. Nếu khóa tồn tại, giá trị sẽ được trả về.
  2. Nếu khóa không tồn tại, tức là thiếu bộ đệm, luồng công việc sẽ cố gắng khóa mutex.
  3. Nếu khóa thành công, luồng công việc này sẽ tìm nạp dữ liệu từ CDN, cập nhật bộ đệm và mở khóa mutex.
  4. Nếu luồng này không thể khóa mutex, tức là các luồng khác đang gửi yêu cầu tới CDN, thì luồng này sẽ ngủ trong một khoảng thời gian, chẳng hạn như 1 giây, sau đó chuyển sang bước 1 để thử lại toàn bộ quá trình.

Nếu bạn có nhiều máy chủ và bộ đệm được chia sẻ giữa các máy chủ này, tức là nhiều quy trình. Bạn có thể sử dụng các khóa phân tán như Redis's SETNX.

Tuy nhiên trong trường hợp này bạn cần lưu ýBước 3:Nếu máy chủ khóa thành công nhưng gặp sự cố trước khi mở khóa. Các máy chủ khác sẽ chờ đợi mãi mãi. Vì vậy bạn cũng cần phải đặt thời gian hết hạn cho khóa.

Về bộ nhớ đệm - Bộ nhớ đệm đặt đồng thời và thông lượng của mục, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/47905718/

29 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress