Back to Explore
Cloudflare Workers Cache: Bước ngoặt mới cho hiệu năng ứng dụng Server-side Rendering

Cloudflare Workers Cache: Bước ngoặt mới cho hiệu năng ứng dụng Server-side Rendering

Cloudflare chính thức ra mắt Workers Cache, tính năng cho phép tích hợp bộ nhớ đệm trực tiếp phía trước Worker. Giải pháp này giúp giảm thiểu chi phí CPU, tăng tốc độ phản hồi và tối ưu hóa kiến trúc server-side rendering mà không cần cấu hình phức tạp.

Website
Upvote this postSign in to upvote this article.

Workers Cache

Cloudflare vừa chính thức công bố Workers Cache, một giải pháp bộ nhớ đệm phân tầng (tiered cache) được thiết kế riêng cho Workers. Thay vì phải phụ thuộc vào các cấu hình phức tạp ở cấp độ Zone, giờ đây bạn có thể kiểm soát bộ nhớ đệm ngay trong mã nguồn của mình chỉ với một dòng cấu hình Wrangler.

Kiến trúc mới: Đưa Cache lên phía trước Worker

Trước đây, mô hình hoạt động của Workers thường là: Request -> Worker -> Cache/Origin. Điều này có nghĩa là mọi request đều phải kích hoạt Worker, gây tốn kém CPU và tăng độ trễ.

Với Workers Cache, kiến trúc được đảo ngược: Request -> Cache -> Worker. Khi có một request cacheable, Cloudflare sẽ kiểm tra cache trước. Nếu có phản hồi hợp lệ, dữ liệu được trả về ngay lập tức mà không cần chạy Worker, giúp tiết kiệm chi phí CPU tối đa.

Cấu hình đơn giản

Chỉ cần thêm khối cache vào file wrangler.jsonc:

{
  "name": "my-worker",
  "main": "src/index.ts",
  "compatibility_date": "2026-05-01",
  "cache": {
    "enabled": true
  }
}

Kiểm soát bằng HTTP Headers

Sau khi kích hoạt, bạn điều khiển cache thông qua các header tiêu chuẩn như Cache-Control:

return new Response(body, {
  headers: {
    "Cache-Control": "public, max-age=300, stale-while-revalidate=3600",
    "Cache-Tag": "products,product:123",
  },
});

Để xóa cache khi dữ liệu thay đổi, bạn sử dụng API đơn giản:

await ctx.cache.purge({ tags: ["product:123"] });

Tại sao đây là "Game Changer" cho Server-side Rendering (SSR)?

Các framework hiện đại như Astro, Next.js, hay Remix thường chạy Worker như một Origin. Trước đây, bạn phải chọn giữa việc render tĩnh (Static Site Generation - SSG) hoặc render mọi request. Workers Cache mang đến lựa chọn thứ ba: Server-render on demand.

  • Tốc độ: Tận dụng stale-while-revalidate để phục vụ nội dung cũ ngay lập tức trong khi làm mới cache ở background.
  • Hiệu quả: Không cần rebuild toàn bộ trang web khi có thay đổi nhỏ.
  • Vary Header: Hỗ trợ đầy đủ Vary để phục vụ các biến thể nội dung khác nhau (ví dụ: JSON vs HTML, WebP vs JPEG) từ cùng một URL.

Tính năng nổi bật

1. Phân tầng bộ nhớ đệm (Tiered Caching)

Workers Cache mặc định sử dụng hai tầng:

  • Lower tier: Tại data center gần người dùng nhất.
  • Upper tier: Tổng hợp dữ liệu trên toàn mạng lưới Cloudflare.

Điều này đảm bảo tỉ lệ cache hit cực cao, ngay cả khi người dùng truy cập từ các khu vực khác nhau.

2. Multi-tenant an toàn với ctx.props

Khi xây dựng ứng dụng đa người dùng, bạn lo ngại dữ liệu người dùng A bị cache cho người dùng B? Workers Cache giải quyết bằng cách đưa ctx.props vào khóa cache (cache key). Chỉ cần truyền userId vào ctx.props, hệ thống sẽ tự động tách biệt cache cho từng người dùng.

3. Cache giữa các Entrypoint

Đây là tính năng mạnh mẽ nhất. Bạn có thể chia Worker thành nhiều entrypoint (ví dụ: Gateway -> Auth -> ExpensiveBackend). Bạn có thể tắt cache ở Gateway (để luôn xác thực) và bật cache ở ExpensiveBackend để tối ưu hóa hiệu năng.

Tích hợp Framework

Astro đã hỗ trợ Workers Cache thông qua adapter @astrojs/cloudflare. Chỉ cần cấu hình experimental.cache trong astro.config.mjs, mọi thứ sẽ được tự động hóa từ việc thiết lập header đến quản lý tag cache.

Quan sát và Billing

  • Observability: Dashboard của Workers giờ đây hiển thị chi tiết tỉ lệ cache hit, miss, bypass và update.
  • Billing: Cache hit không tính phí CPU. Bạn chỉ trả phí theo số lượng request tiêu chuẩn. Đây là cách tiết kiệm chi phí vận hành hiệu quả nhất cho các ứng dụng có lưu lượng truy cập lớn.

Workers Cache hiện đã khả dụng cho tất cả các gói dịch vụ của Cloudflare Workers.

Discussion (0)

You need to log in to post comments. Log In

No comments yet. Start the discussion!

Do you like this post?

Upvote to push this post higher on the community feed

Details

Posted by: @admin
Categories: Developer Tools
Date posted: 8 tháng 7, 2026