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.
Chuyển đến tài liệu về Apigee X.
thông tin

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

Để có được phản hồi kịp thời, giá trị thời gian chờ I/O được đặt trong từng thành phần mà qua đó các yêu cầu API. 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 hết sức cẩn thận khi định cấu hình các giá trị trong từng thành phần, nếu không thì điều này có thể dẫn đến lỗi 504 Gateway Timeout.

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à thông qua đó quá trình yêu cầu API lưu chuyển 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 xem xét 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, tức 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 quy trình 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 giá trị thời gian chờ được định cấu hình trong từng 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 có sự chênh lệch ít nhất 2-3 giây.
  • Bộ định tuyến: Tốt nhất là 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 máy chủ ảo 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 các Proxy API đang sử dụng Máy chủ ảo cụ thể chứ không phải tất cả các Proxy API đang được 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à bắt buộc hoặc có thể áp dụng cho tất cả các Proxy API chạy trên Bộ định tuyến.

  • Trình xử lý thông báo: Tốt nhất là 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 trên Bộ 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 proxy API cụ thể chứ không phải tất cả các proxy API đang được Trình xử lý thông báo phân phát.

    Chỉ định cấu hình (sửa đổi) thời gian chờ I/O trên Bộ xử lý thư 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 có thể áp dụng cho tất cả các Proxy API chạy trên Bộ xử lý thông báo.

Tình huống ví dụ

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

Trường hợp 1: Yêu cầu gửi trực tiếp Apigee Edge qua ứng dụng khách

Phần này mô tả các phương pháp hay nhất nên áp dụng trong quá trình thiết lập giá trị thời gian chờ trong quá trình thiết lập Apigee Edge, trong đó không có 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.

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

Luồng bắt đầu từ Máy khách đến Bộ định tuyến, sau đó đến Bộ xử lý thư và sau đó đến Máy chủ phụ trợ

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

  1. Ứng dụng là thành phần đầu tiên trong luồng. Bạn nên đặt giá trị thời gian chờ cao nhất trên ứng dụng.
  2. Máy chủ phụ trợ là thành phần cuối cùng trong luồng. Giá trị thời gian chờ thấp nhất nên được đặ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 ứng dụng, sau đó đến Bộ định tuyến, sau đó đến Trình xử lý thông báo, sau đó đế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 sự cố:

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

Trường hợp 2: Yêu cầu gửi Apigee Edge từ ứng dụng khách thông qua thành phần trung gian

Phần này mô tả các phương pháp hay nhất nên áp dụng trong quá trình thiết lập giá trị thời gian chờ trong quá trình 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 bằng một thành phần trung gian giữa Ứng dụng và Apigee Edge, giữa Apigee Edge và máy chủ phụ trợ

Luồng bắt đầu từ Ứng dụng chuyển đến Thành phần trung gian 1, sau đó đến Bộ định tuyến, sau đó đến Bộ xử lý thông báo và sau đó đến Thành phần trung gian 2 và sau đó đến Máy chủ phụ trợ

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

  1. Ứng dụng là thành phần đầu tiên trong luồng. Giá trị thời gian chờ cao nhất phải được đặt cho ứng dụng.
  2. Máy chủ phụ trợ là thành phần cuối cùng trong luồng. Giá trị thời gian chờ thấp nhất phải được đặt trên máy chủ phụ trợ.
  3. Định cấu hình 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 đó đến Thành phần trung gian 1, sau đó đến Bộ định tuyến, sau đó đến Bộ xử lý thông báo, sau đó đến Thành phần trung gian 2 và 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 sự cố:

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