Các phương pháp hay nhất để định cấu hình thời gian chờ I/O

Bạn đang xem tài liệu về Apigee Edge.
Truy cập vào tài liệu Apigee X.
thông tin

Các yêu cầu API do ứng dụng khách thực hiện sẽ đi qua nhiều thành phần trong Apigee Edge trước khi đến được các dịch vụ phụ trợ. Hầu hết các ứng dụng khách đều mong đợi nhận được phản hồi cho những yêu cầu này một cách kịp thời.

Để đạt được phản hồi kịp thời, các giá trị thời gian chờ I/O được đặt trong từng thành phần mà các yêu cầu API truyền qua. Nếu bất kỳ thành phần nào trong luồng mất nhiều thời gian hơn thành phần trước đó, thì thành phần trước đó sẽ hết thời gian chờ và phản hồi lại bằng lỗi 504 Gateway Timeout.

Trong khi định cấu hình thời gian chờ, bạn phải định cấu hình các giá trị trong từng thành phần một cách cẩn thận, nếu không, điều này có thể dẫn đến lỗi 504 Hết thời gian chờ của cổng.

Tài liệu này mô tả các phương pháp hay nhất để định cấu hình thời gian chờ I/O trên nhiều thành phần mà các yêu cầu API truyền qua trong Apigee Edge.

Các phương pháp hay nhất để định cấu hình thời gian chờ I/O

Hãy cân nhắc các phương pháp hay nhất sau đây khi định cấu hình thời gian chờ I/O:

  • Thành phần đầu tiên: Luôn sử dụng thời gian chờ cao nhất trên thành phần đầu tiên trong quy trình yêu cầu API, đó là Ứng dụng khách trong Apigee Edge.
  • Thành phần cuối cùng: Luôn sử dụng thời gian chờ thấp nhất trên thành phần cuối cùng trong luồng yêu cầu API, đó là Dịch vụ phụ trợ trong Apigee Edge.
  • Giữa các thành phần: Đảm bảo có sự khác biệt ít nhất là 2-3 giây về giá trị thời gian chờ được định cấu hình trong mỗi thành phần giữa thành phần đầu tiên và thành phần cuối cùng trong luồng.
  • Bộ định tuyến: Bạn nên định cấu hình (sửa đổi) giá trị thời gian chờ I/O cho một máy chủ ảo cụ thể thay vì định cấu hình giá trị này trên Bộ định tuyến. Điều này đảm bảo rằng giá trị thời gian chờ mới chỉ ảnh hưởng đến những API Proxy đang sử dụng máy chủ ảo cụ thể chứ không ảnh hưởng đến tất cả API Proxy do Bộ định tuyến phân phát.

    Chỉ định cấu hình (sửa đổi) thời gian chờ I/O trên Bộ định tuyến khi bạn hoàn toàn chắc chắn rằng giá trị thời gian chờ I/O mới là cần thiết hoặc áp dụng cho tất cả các API Proxy đang chạy trên Bộ định tuyến.

  • Trình xử lý thông báo: Bạn nên định cấu hình (sửa đổi) giá trị thời gian chờ I/O cho một proxy API cụ thể thay vì định cấu hình giá trị này trên Trình xử lý thông báo. Điều này đảm bảo rằng giá trị thời gian chờ mới chỉ ảnh hưởng đến một proxy API cụ thể chứ không ảnh hưởng đến tất cả các proxy API do Message Processor phân phát.

    Chỉ định cấu hình (sửa đổi) thời gian chờ I/O trên Trình xử lý thông báo khi bạn hoàn toàn chắc chắn rằng giá trị thời gian chờ I/O mới là bắt buộc hoặc áp dụng cho tất cả các API Proxy đang chạy trên Trình xử lý thông báo.

Các trường hợp ví dụ

Các tình huống trong phần này có thể giúp bạn hiểu cách đặt đúng giá trị thời gian chờ I/O.

Tình huống 1: Yêu cầu đến Apigee Edge trực tiếp từ các ứng dụng khách

Phần này mô tả các phương pháp hay nhất cần tuân thủ khi thiết lập các giá trị thời gian chờ trong chế độ thiết lập Apigee Edge mà không có thành phần trung gian nào giữa ứng dụng khách và Apigee Edge, cũng như giữa Apigee Edge và máy chủ phụ trợ của bạn.

Thiết lập Apigee mẫu mà không có thành phần trung gian

Luồng bắt đầu từ Client (Máy khách) chuyển đến Router (Bộ định tuyến), sau đó đến Message Processor (Bộ xử lý tin nhắn) rồi đến Backend Server (Máy chủ phụ trợ)

Nếu bạn thiết lập Apigee Edge như trong sơ đồ ở trên mà không có thành phần trung gian, hãy sử dụng các phương pháp hay nhất sau:

  1. Ứng dụng khách là thành phần đầu tiên trong quy trình. Bạn nên đặt giá trị thời gian chờ cao nhất trên máy khách.
  2. Máy chủ phụ trợ là thành phần cuối cùng trong luồng. Bạn nên đặt giá trị thời gian chờ thấp nhất trên máy chủ phụ trợ.
  3. Định cấu hình các giá trị thời gian chờ trên từng thành phần theo thứ tự sau:

    Định cấu hình thời gian chờ trên máy khách, sau đó là Bộ định tuyến, Bộ xử lý thông báo, rồi đến Máy chủ phụ trợ

    Ví dụ sau đây cho thấy các giá trị thời gian chờ được đặt trên nhiều thành phần theo nguyên tắc nêu trên để tránh mọi vấn đề:

    Định cấu hình thời gian chờ trên ứng dụng khách ở mức 60 giây, sau đó là Bộ định tuyến ở mức 57 giây, rồi đến Trình xử lý thông báo ở mức 55 giây, sau đó là Máy chủ phụ trợ ở mức 52 giây

Tình huống 2: Yêu cầu đến Apigee Edge từ các ứng dụng khách thông qua các thành phần trung gian

Phần này mô tả các phương pháp hay nhất cần tuân thủ khi thiết lập các giá trị thời gian chờ trong chế độ thiết lập Apigee Edge, trong đó có một hoặc nhiều thành phần trung gian giữa ứng dụng khách và Apigee Edge, cũng như giữa Apigee Edge và máy chủ phụ trợ của bạn.

Các thành phần trung gian có thể là trình cân bằng tải, mạng phân phối nội dung (CDN), NGINX, v.v.

Thiết lập Apigee mẫu với một thành phần trung gian giữa Client và Apigee Edge, cũng như giữa Apigee Edge và máy chủ phụ trợ

Luồng bắt đầu từ Client (Máy khách) chuyển đến Intermediate Component 1 (Thành phần trung gian 1), sau đó đến Router (Bộ định tuyến), rồi đến Message Processor (Bộ xử lý thông báo), sau đó đến Intermediate Component 2 (Thành phần trung gian 2) và cuối cùng đến Backend Server (Máy chủ phụ trợ)

Nếu bạn thiết lập Apigee Edge như trong sơ đồ ở trên, với một hoặc nhiều thành phần trung gian, hãy áp dụng các phương pháp hay nhất sau:

  1. Ứng dụng khách là thành phần đầu tiên trong quy trình. Bạn nên đặt giá trị thời gian chờ cao nhất trên máy khách.
  2. Máy chủ phụ trợ là thành phần cuối cùng trong luồng. Bạn nên đặt giá trị thời gian chờ thấp nhất trên máy chủ phụ trợ.
  3. Định cấu hình các giá trị thời gian chờ trên từng thành phần, bao gồm cả các thành phần trung gian, theo thứ tự sau:

    Định cấu hình thời gian chờ trên máy khách, sau đó là Thành phần trung gian 1, sau đó là Bộ định tuyến, sau đó là Trình xử lý thông báo, sau đó là Thành phần trung gian 2, sau đó là Máy chủ phụ trợ

    Ví dụ sau đây cho thấy các giá trị thời gian chờ được đặt trên nhiều thành phần theo nguyên tắc nêu trên để tránh mọi vấn đề:

    Định cấu hình thời gian chờ trên ứng dụng khách ở mức 63 giây, sau đó là Thành phần trung gian 1 ở mức 60 giây, sau đó là Bộ định tuyến ở mức 57 giây, sau đó là Bộ xử lý thông báo ở mức 55 giây, sau đó là Thành phần trung gian 2 ở mức 52 giây, sau đó là Máy chủ phụ trợ ở mức 59 giây