Bộ nhớ đệm nội bộ

Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến tài liệu về Apigee X.
thông tin

Chủ đề này mô tả cách hoạt động của bộ nhớ đệm trong các chính sách như chính sách Điền bộ nhớ đệm, chính sách LookupCache, chính sách InvalidateCachechính sách Response Cache.

Bộ nhớ đệm dùng chung và bộ nhớ đệm môi trường

Mỗi chính sách lưu vào bộ nhớ đệm mà bạn định cấu hình có thể sử dụng một trong hai loại bộ nhớ đệm: bộ nhớ đệm dùng chung được đưa vào mà ứng dụng của bạn có quyền truy cập và một hoặc nhiều bộ nhớ đệm trong phạm vi môi trường mà bạn tạo.

  • Bộ nhớ đệm dùng chung: Theo mặc định, proxy của bạn có quyền truy cập vào một bộ nhớ đệm dùng chung trong mỗi môi trường. Bộ nhớ đệm dùng chung hoạt động hiệu quả đối với các trường hợp sử dụng cơ bản.

    Bạn chỉ có thể làm việc với bộ nhớ đệm dùng chung bằng cách sử dụng các chính sách lưu vào bộ nhớ đệm, chứ không phải API quản lý. Để chính sách lưu vào bộ nhớ đệm sử dụng bộ nhớ đệm dùng chung, bạn chỉ cần bỏ qua phần tử <CacheResource> của chính sách.

  • Bộ nhớ đệm môi trường: Khi muốn định cấu hình các thuộc tính bộ nhớ đệm bằng các giá trị mà bạn chọn, bạn có thể tạo bộ nhớ đệm trong phạm vi môi trường. Để biết thêm về cách tạo bộ nhớ đệm, hãy xem phần Tạo và chỉnh sửa bộ nhớ đệm môi trường.

    Khi tạo bộ nhớ đệm môi trường, bạn sẽ định cấu hình các thuộc tính mặc định của bộ nhớ đệm đó. Bạn có thể yêu cầu chính sách lưu vào bộ nhớ đệm sử dụng bộ nhớ đệm môi trường bằng cách chỉ định tên bộ nhớ đệm trong phần tử <CacheResource> của chính sách.

Giới thiệu về tính năng mã hoá bộ nhớ đệm

Edge cho đám mây công cộng: Bộ nhớ đệm chỉ được mã hoá trong các tổ chức tuân thủ PCIHIPAA. Tính năng mã hoá cho các tổ chức đó được định cấu hình trong quá trình cấp phép tổ chức.

Mức bộ nhớ đệm trong bộ nhớ và bộ nhớ đệm cố định

Cả bộ nhớ đệm dùng chung và môi trường đều được xây dựng trên một hệ thống hai cấp bao gồm một cấp trong bộ nhớ và một cấp ổn định. Các chính sách tương tác với cả hai cấp dưới dạng một khung kết hợp. Edge quản lý mối quan hệ giữa các cấp.

  • Cấp 1 là bộ nhớ đệm trong bộ nhớ (L1) để truy cập nhanh. Mỗi nút xử lý thông báo (MP) có bộ nhớ đệm riêng trong bộ nhớ (được triển khai từ Ehcache) để phản hồi nhanh nhất các yêu cầu.
    • Trên mỗi nút, một tỷ lệ phần trăm bộ nhớ nhất định được dành riêng cho bộ nhớ đệm.
    • Khi đạt đến giới hạn bộ nhớ, Apigee Edge sẽ xoá các mục nhập bộ nhớ đệm khỏi bộ nhớ (mặc dù các mục này vẫn được lưu giữ trong bộ nhớ đệm L2 ổn định) để đảm bảo bộ nhớ vẫn còn cho các quy trình khác.
    • Các mục nhập sẽ bị xoá theo thứ tự thời gian kể từ lần truy cập gần đây nhất, trong đó các mục nhập cũ nhất sẽ bị xoá trước.
    • Các bộ nhớ đệm này cũng bị giới hạn bởi số mục nhập trong bộ nhớ đệm.
  • Cấp 2 là bộ nhớ đệm cố định (L2) bên dưới bộ nhớ đệm trong bộ nhớ. Tất cả các nút xử lý thông báo đều chia sẻ một kho dữ liệu bộ nhớ đệm (Cassandra) để lưu giữ các mục trong bộ nhớ đệm.
    • Các mục nhập bộ nhớ đệm vẫn tồn tại ở đây ngay cả sau khi bị xoá khỏi bộ nhớ đệm L1, chẳng hạn như khi đạt đến giới hạn bộ nhớ.
    • Vì bộ nhớ đệm cố định được chia sẻ trên các trình xử lý thông báo (ngay cả ở các khu vực khác nhau), nên các mục nhập bộ nhớ đệm sẽ có sẵn bất kể nút nào nhận được yêu cầu về dữ liệu được lưu vào bộ nhớ đệm.
    • Chỉ các mục nhập có kích thước nhất định mới có thể được lưu vào bộ nhớ đệm và các giới hạn bộ nhớ đệm khác sẽ được áp dụng. Xem phần Quản lý giới hạn bộ nhớ đệm.

Bạn cũng có thể quan tâm đến bài viết Thông tin chi tiết về tính năng lưu vào bộ nhớ đệm Apigee Edge trên Cộng đồng Apigee.

Cách các chính sách sử dụng bộ nhớ đệm

Phần sau đây mô tả cách Apigee Edge xử lý các mục trong bộ nhớ đệm khi các chính sách lưu vào bộ nhớ đệm của bạn hoạt động.

  • Khi một chính sách ghi một mục mới vào bộ nhớ đệm (chính sách PopulateCache hoặc ResponseCache):
    1. Edge chỉ ghi mục nhập vào bộ nhớ đệm L1 trong bộ nhớ trên trình xử lý thông báo đã xử lý yêu cầu. Nếu đạt đến giới hạn bộ nhớ trên trình xử lý thông báo trước khi mục nhập hết hạn, Edge sẽ xoá mục nhập đó khỏi bộ nhớ đệm L1.
    2. Edge cũng ghi mục nhập vào bộ nhớ đệm L2.
  • Khi một chính sách đọc từ bộ nhớ đệm (chính sách LookupCache hoặc ResponseCache):
    1. Trước tiên, Edge sẽ tìm mục nhập trong bộ nhớ đệm L1 trong bộ xử lý thông báo xử lý yêu cầu.
    2. Nếu không có mục nhập tương ứng trong bộ nhớ, Edge sẽ tìm mục nhập đó trong bộ nhớ đệm L2 ổn định.
    3. Nếu mục nhập không có trong bộ nhớ đệm cố định:
      • Chính sách LookupCache: Không có giá trị nào được truy xuất từ bộ nhớ đệm.
      • Chính sách ResponseCache: Edge trả về phản hồi thực tế từ mục tiêu đến ứng dụng và lưu trữ mục đó trong bộ nhớ đệm cho đến khi hết hạn hoặc không hợp lệ.
  • Khi một chính sách cập nhật hoặc vô hiệu hoá một mục bộ nhớ đệm hiện có (chính sách InvalidateCache, PopulateCache hoặc ResponseCache):
    1. Bộ xử lý thông báo nhận được yêu cầu sẽ gửi thông báo truyền tin để cập nhật hoặc xoá mục nhập trong bộ nhớ đệm L1 trên chính bộ xử lý đó và tất cả bộ xử lý thông báo khác ở mọi khu vực.
      • Nếu thông báo truyền tin thành công, mỗi trình xử lý thông báo nhận sẽ cập nhật hoặc xoá mục nhập trong bộ nhớ đệm L1.
      • Nếu không truyền được, giá trị bộ nhớ đệm không hợp lệ sẽ vẫn nằm trong bộ nhớ đệm L1 trên các trình xử lý thông báo không nhận được thông báo truyền tin. Các bộ xử lý thông báo đó sẽ có dữ liệu cũ trong bộ nhớ đệm L1 cho đến khi thời gian tồn tại (TTL) của mục hết hạn hoặc bị xoá khi đạt đến giới hạn bộ nhớ của bộ xử lý thông báo.
    2. Thông báo truyền tin cũng cập nhật hoặc xoá mục nhập trong bộ nhớ đệm L2.

Quản lý giới hạn bộ nhớ đệm

Thông qua cấu hình, bạn có thể quản lý một số khía cạnh của bộ nhớ đệm. Dung lượng tổng thể có sẵn cho bộ nhớ đệm trong bộ nhớ bị giới hạn bởi tài nguyên hệ thống và không thể định cấu hình. Các quy tắc ràng buộc sau đây áp dụng cho bộ nhớ đệm:

  • Giới hạn bộ nhớ đệm: Nhiều giới hạn bộ nhớ đệm áp dụng, chẳng hạn như tên và kích thước giá trị, tổng số bộ nhớ đệm, số lượng mục trong bộ nhớ đệm và thời gian hết hạn.
  • Bộ nhớ đệm trong bộ nhớ (L1). Bạn không thể định cấu hình hạn mức bộ nhớ cho bộ nhớ đệm. Apigee đặt các giới hạn cho mỗi trình xử lý thông báo lưu trữ bộ nhớ đệm cho nhiều khách hàng.

    Trong môi trường đám mây được lưu trữ, nơi bộ nhớ đệm trong bộ nhớ cho tất cả các lượt triển khai của khách hàng được lưu trữ trên nhiều trình xử lý thông báo dùng chung, mỗi trình xử lý có một ngưỡng phần trăm bộ nhớ có thể định cấu hình bằng Apigee để đảm bảo rằng việc lưu vào bộ nhớ đệm không tiêu thụ hết bộ nhớ của ứng dụng. Khi vượt quá ngưỡng cho một trình xử lý thông báo nhất định, các mục nhập bộ nhớ đệm sẽ bị loại bỏ khỏi bộ nhớ dựa trên cơ sở ít được sử dụng gần đây nhất. Các mục bị xoá khỏi bộ nhớ vẫn nằm trong bộ nhớ đệm L2 cho đến khi hết hạn hoặc không hợp lệ.

  • Bộ nhớ đệm cố định (L2). Các mục bị xoá khỏi bộ nhớ đệm trong bộ nhớ vẫn nằm trong bộ nhớ đệm cố định theo chế độ cài đặt thời gian tồn tại có thể định cấu hình.

Các tính năng tối ưu hoá có thể định cấu hình

Bảng sau đây liệt kê các chế độ cài đặt mà bạn có thể sử dụng để tối ưu hoá hiệu suất của bộ nhớ đệm. Bạn có thể chỉ định giá trị cho các chế độ cài đặt này khi tạo bộ nhớ đệm môi trường mới, như mô tả trong phần Tạo và chỉnh sửa bộ nhớ đệm môi trường.

Xem xét Mô tả Ghi chú
Hết hạn Chỉ định thời gian tồn tại cho các mục trong bộ nhớ đệm. Không có.