Định cấu hình thời gian chờ I/O trên bộ định tuyến

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

Tài liệu này giải thích cách định cấu hình thời gian chờ I/O trên Bộ định tuyến của Apigee Edge.

Thời gian chờ I/O trên Bộ định tuyến là thời gian mà Bộ định tuyến chờ nhận phản hồi từ Trình xử lý thông báo, sau khi thiết lập kết nối và gửi yêu cầu đến Trình xử lý thông báo. Giá trị mặc định của thời gian chờ I/O trên Bộ định tuyến là 57 giây.

Bạn có thể tăng hoặc giảm thời gian chờ I/O cho Bộ định tuyến so với giá trị mặc định là 57 giây dựa trên nhu cầu của mình. Bạn có thể định cấu hình theo các cách sau:

  • Trong máy chủ ảo
  • Trên bộ định tuyến

Các thuộc tính sau đây kiểm soát thời gian chờ I/O trên Bộ định tuyến:

Tên thuộc tính Thông tin vị trí Mô tả
proxy_read_timeout Máy chủ ảo

Chỉ định thời gian tối đa mà Bộ định tuyến chờ nhận phản hồi từ Trình xử lý thông báo, sau khi thiết lập kết nối và gửi yêu cầu đến Trình xử lý thông báo.

Nếu không có phản hồi từ Trình xử lý tin nhắn trong khoảng thời gian chờ này, thì Bộ định tuyến sẽ hết thời gian chờ.

Theo mặc định, thuộc tính này lấy giá trị được đặt cho thuộc tính conf_load_balancing_load.balancing.driver.proxy.read.timeout trên Bộ định tuyến. Giá trị mặc định là 57 giây.

Nếu bạn sửa đổi thuộc tính này bằng một giá trị thời gian chờ mới cho một máy chủ ảo cụ thể, thì chỉ những API proxy sử dụng máy chủ ảo cụ thể đó mới bị ảnh hưởng.

conf_load_balancing_load.balancing.driver.proxy.read.timeout Bộ định tuyến

Chỉ định thời gian tối đa mà Bộ định tuyến chờ nhận phản hồi từ Trình xử lý thông báo, sau khi thiết lập kết nối và gửi yêu cầu đến Trình xử lý thông báo.

Nếu không có phản hồi từ Trình xử lý tin nhắn trong khoảng thời gian chờ này, thì Bộ định tuyến sẽ hết thời gian chờ.

Thuộc tính này được dùng cho tất cả các máy chủ ảo trên Bộ định tuyến này.

Giá trị mặc định của thuộc tính này là 57 giây.

Bạn có thể sửa đổi thuộc tính này như được giải thích trong phần Định cấu hình thời gian chờ I/O trên Bộ định tuyến bên dưới hoặc bạn có thể ghi đè giá trị này bằng cách đặt thuộc tính proxy_read_timeout ở cấp máy chủ ảo.

Bạn có thể đặt khoảng thời gian cho thuộc tính này thành một giá trị khác ngoài giây bằng cách sử dụng ký hiệu sau:

ms: milliseconds
s:  seconds (default)
m:  minutes
h:  hours
d:  days
w:  weeks
M:  months (length of 30 days)
y:  years (length of 365 days)
conf_load_balancing_load.balancing.driver.nginx.upstream_next_timeout Bộ định tuyến

Chỉ định tổng thời gian mà Bộ định tuyến chờ nhận được phản hồi từ tất cả Bộ xử lý thông báo, sau khi thiết lập kết nối và gửi yêu cầu đến từng Bộ xử lý thông báo.

Điều này áp dụng khi bản cài đặt Edge của bạn có nhiều Trình xử lý thông báo và bạn bật tính năng thử lại khi xảy ra lỗi. Trường này có một trong những giá trị sau:

  • Giá trị hiện tại của conf_load_balancing_load.balancing.driver.proxy.read.timeout
  • Giá trị mặc định là 57 giây

Giống như thuộc tính conf_load_balancing_load.balancing.driver.proxy.read.timeout, bạn có thể chỉ định các khoảng thời gian khác ngoài khoảng thời gian mặc định (giây).

Trước khi bắt đầu

Trước khi sử dụng các bước trong tài liệu này, hãy đảm bảo bạn hiểu rõ các chủ đề sau:

Định cấu hình thời gian chờ I/O trong máy chủ ảo

Phần này giải thích cách định cấu hình thời gian chờ I/O trong máy chủ ảo được liên kết với một tổ chức và môi trường. Bạn có thể định cấu hình thời gian chờ I/O trong máy chủ ảo thông qua thuộc tính proxy_read_timeout. Thuộc tính này biểu thị giá trị thời gian chờ I/O tính bằng giây.

Bạn có thể thiết lập máy chủ ảo bằng một trong những phương thức sau:

  • Giao diện người dùng Edge
  • Edge API

Giao diện người dùng Edge

Để định cấu hình máy chủ ảo bằng giao diện người dùng Edge, hãy làm như sau:

  1. Đăng nhập vào giao diện người dùng Edge.
  2. Chuyển đến mục Quản trị > Máy chủ ảo.
  3. Chọn một Môi trường cụ thể mà bạn muốn thực hiện thay đổi này.
  4. Chọn máy chủ ảo cụ thể mà bạn muốn định cấu hình giá trị thời gian chờ I/O mới.
  5. Trong mục Properties (Thuộc tính), hãy cập nhật giá trị Proxy Read Timeout (Thời gian chờ đọc của proxy) tính bằng giây.

    Ví dụ: nếu bạn muốn thay đổi thời gian chờ thành 120 giây, hãy nhập 120 như trong hình sau:

    Giá trị thời gian chờ đọc của proxy là 120

  6. Lưu thay đổi.

Edge API

Để định cấu hình máy chủ ảo bằng Edge API, hãy làm như sau:

  1. Lấy cấu hình máy chủ ảo hiện tại bằng cách sử dụng API Lấy máy chủ ảo như minh hoạ bên dưới:

    Người dùng Đám mây công khai

    curl -v -X GET https//api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
                    

    Người dùng Đám mây riêng tư

    curl -v -X GET http://<management-host>:<port #>/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
                    

    Trong trường hợp:

    {organization-name} là tên của tổ chức

    {environment-name} là tên của môi trường

    {virtualhost-name} là tên của máy chủ ảo

    Cấu hình mẫu cho máy chủ ảo

        {
          "hostAliases": [
            "api.myCompany,com"
          ],
          "interfaces": [],
          "listenOptions": [],
          "name": "secure",
          "port": "443",
          "retryOptions": [],
          "sSLInfo": {
            "ciphers": [],
            "clientAuthEnabled": "false",
            "enabled": "true",
            "ignoreValidationErrors": false,
            "keyAlias": "myCompanyKeyAlias",
            "keyStore": "ref://myCompanyKeystoreref",
            "protocols": []
          },
          "useBuiltInFreeTrialCert": false
        }
  2. Thêm thuộc tính proxy_read_timeout vào tải trọng JSON cấu hình máy chủ ảo hiện có trong properties với giá trị tính bằng giây.

    Ví dụ: để thay đổi thời gian chờ I/O thành 120 giây, hãy thêm khối mã properties như minh hoạ bên dưới:

    Cấu hình máy chủ ảo mẫu đã cập nhật

    {
      "hostAliases": [
        "api.myCompany,com",
      ],
      "interfaces": [],
      "listenOptions": [],
      "name": "secure",
      "port": "443",
      "retryOptions": [],
      "properties": {
        "property": [
          {
            "name": "proxy_read_timeout",
            "value": "120"
          }
        ]
      },
      "sSLInfo": {
        "ciphers": [],
        "clientAuthEnabled": "false",
        "enabled": "true",
        "ignoreValidationErrors": false,
        "keyAlias": "myCompanyKeyAlias",
        "keyStore": "ref://myCompanyKeystoreref",
        "protocols": []
      },
      "useBuiltInFreeTrialCert": false
    }
  3. Lưu cấu hình máy chủ ảo đã cập nhật vào một tệp. Ví dụ: virtualhost-payload.json.
  4. Cập nhật cấu hình virtualhost với thay đổi bằng cách sử dụng API Cập nhật máy chủ ảo như sau:

    Người dùng Đám mây công khai

    curl -v -X POST Content-Type: application/json
    https://api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -d @virtualhost-payload.json -u <username>
                

    Người dùng Đám mây riêng tư

    curl -v -X POST Content-Type: application/json
    http://<management-host>:<port #>/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -d @virtualhost-payload.json -u <username>
                

    Trong trường hợp:

    {organization-name} là tên của tổ chức

    {environment-name} là tên của môi trường

    {virtualhost-name} là tên của máy chủ ảo

Xác minh thời gian chờ I/O trên máy chủ ảo

Phần này giải thích cách xác minh rằng bạn đã sửa đổi thành công thời gian chờ I/O trên máy chủ ảo bằng Edge API.

  1. Thực thi API Lấy máy chủ ảo để lấy cấu hình virtualhost như minh hoạ bên dưới:

    Người dùng Đám mây công khai

    curl -v -X GET https://api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
                  

    Người dùng Đám mây riêng tư

    curl -v -X GET http://<management server-host>:<port #>/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
                  

    Trong trường hợp:

    {organization-name} là tên của tổ chức

    {environment-name} là tên của môi trường

    {virtualhost-name} là tên của máy chủ ảo

  2. Xác minh rằng thuộc tính proxy_read_timeout đã được đặt thành giá trị mới.

    Cấu hình máy chủ ảo mẫu đã cập nhật

    {
      "hostAliases": [
        "api.myCompany,com",
      ],
      "interfaces": [],
      "listenOptions": [],
      "name": "secure",
      "port": "443",
      "retryOptions": [],
      "properties": {
        "property": [
          {
            "name": "proxy_read_timeout",
            "value": "120"
          }
        ]
      },
      "sSLInfo": {
        "ciphers": [],
        "clientAuthEnabled": "false",
        "enabled": "true",
        "ignoreValidationErrors": false,
        "keyAlias": "myCompanyKeyAlias",
        "keyStore": "ref://myCompanyKeystoreref",
        "protocols": []
      },
      "useBuiltInFreeTrialCert": false
    }

    Trong ví dụ trên, lưu ý rằng proxy_read_timeout đã được đặt thành giá trị mới là 120 giây.

  3. Nếu bạn vẫn thấy giá trị cũ cho proxy_read_timeout,, hãy xác minh rằng bạn đã thực hiện đúng tất cả các bước được nêu trong phần Định cấu hình thời gian chờ I/O trong máy chủ ảo. Nếu bạn bỏ lỡ bước nào, hãy lặp lại tất cả các bước một cách chính xác.
  4. Nếu bạn vẫn không thể sửa đổi thời gian chờ I/O, hãy liên hệ với Nhóm hỗ trợ Apigee Edge.

Định cấu hình thời gian chờ I/O trên Bộ định tuyến

Phần này giải thích cách định cấu hình thời gian chờ I/O trên Bộ định tuyến. Bạn có thể định cấu hình thời gian chờ I/O thông qua thuộc tính Router conf_load_balancing_load.balancing.driver.proxy.read.timeout. Thuộc tính này biểu thị giá trị thời gian chờ I/O tính bằng giây.

Để định cấu hình thời gian chờ I/O trên Bộ định tuyến, hãy làm như sau:

  1. Trên máy Router, hãy mở tệp sau trong một trình chỉnh sửa. Nếu chưa có, hãy tạo một tệp.
    /opt/apigee/customer/application/router.properties

    Ví dụ: để mở tệp bằng vi, hãy nhập lệnh sau:

    vi /opt/apigee/customer/application/router.properties
  2. Thêm một dòng có định dạng sau vào tệp properties, thay thế giá trị cho time_in_seconds:
  3. conf_load_balancing_load.balancing.driver.proxy.read.timeout=time_in_seconds

    Ví dụ: để thay đổi thời gian chờ I/O trên Bộ định tuyến thành 120 giây, hãy thêm dòng sau:

    conf_load_balancing_load.balancing.driver.proxy.read.timeout=120

    Bạn cũng có thể sửa đổi thời gian chờ I/O tính bằng phút. Ví dụ: để thay đổi thời gian chờ thành 2 phút, hãy thêm dòng sau:

    conf_load_balancing_load.balancing.driver.proxy.read.timeout=2m
  4. Lưu thay đổi.
  5. Đảm bảo tệp thuộc tính này thuộc sở hữu của người dùng apigee như minh hoạ dưới đây:
    chown apigee:apigee /opt/apigee/customer/application/router.properties
  6. Khởi động lại Bộ định tuyến như minh hoạ dưới đây:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  7. Nếu bạn có nhiều Bộ định tuyến, hãy lặp lại các bước trên cho tất cả Bộ định tuyến.

Xác minh thời gian chờ I/O trên Bộ định tuyến

Phần này giải thích cách xác minh rằng bạn đã sửa đổi thành công thời gian chờ I/O trên Bộ định tuyến.

Mặc dù bạn sử dụng mã thông báo conf_load_balancing_load.balancing.driver.proxy.read.timeout để đặt thời gian chờ I/O trên Bộ định tuyến, nhưng bạn cần xác minh xem thuộc tính thực tế proxy_read_timeout đã được đặt bằng giá trị mới hay chưa.

  1. Tìm kiếm thuộc tính proxy_read_timeout trong thư mục /opt/nginx/conf.d và kiểm tra xem thuộc tính đó đã được đặt thành giá trị mới hay chưa như sau:
    grep -ri "proxy_read_timeout" /opt/nginx/conf.d
  2. Nếu bạn đặt thành công giá trị thời gian chờ I/O mới trên bộ định tuyến, thì lệnh trên sẽ cho thấy giá trị mới trong tất cả các tệp cấu hình máy chủ ảo.

    Sau đây là kết quả mẫu từ lệnh grep ở trên khi thời gian chờ I/O là 120 giây:

    /opt/nginx/conf.d/0-default.conf:proxy_read_timeout 120;
    /opt/nginx/conf.d/0-edge-health.conf:proxy_read_timeout 1s;

    Trong ví dụ về đầu ra ở trên, hãy lưu ý rằng thuộc tính proxy_read_timeout đã được đặt thành giá trị mới là 120 trong 0-default.conf. Đây là tệp cấu hình cho máy chủ ảo mặc định. Điều này cho biết bạn đã định cấu hình thành công thời gian chờ I/O thành 120 giây trên Bộ định tuyến.

  3. Nếu bạn vẫn thấy giá trị cũ cho thuộc tính proxy_read_timeout, hãy xác minh rằng bạn đã làm theo tất cả các bước được nêu trong phần Định cấu hình thời gian chờ I/O trên Bộ định tuyến một cách chính xác. Nếu bạn bỏ lỡ bước nào, hãy lặp lại tất cả các bước một cách chính xác.
  4. Nếu bạn vẫn không thể sửa đổi thời gian chờ I/O, hãy liên hệ với Nhóm hỗ trợ Apigee Edge.

Tiếp theo là gì?

Tìm hiểu về Cách định cấu hình thời gian chờ I/O trong Trình xử lý thông báo