Đị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.
Chuyển đến Tài liệu về 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 biểu thị thời gian mà Bộ định tuyến đợi để nhận phản hồi từ Bộ xử lý thư, sau khi thiết lập kết nối và gửi yêu cầu cho Trình xử lý thư. Giá trị mặc định của thời gian chờ I/O trên Bộ định tuyến là 57 giây.

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

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

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

Tên thuộc tính Vị trí Mô tả
proxy_read_timeout Người tổ chức ảo

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

Nếu không có phản hồi từ Trình xử lý thư trong khoảng thời gian chờ này, thì Bộ định tuyến 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 thuộc tính conf_load_balancing_load.balancing.driver.proxy.read.timeout trên Bộ định tuyến. Chiến lược phát hành đĩa đơn giá trị mặc định là 57 giây.

Nếu thuộc tính này được sửa đổi bằng một giá trị thời gian chờ mới cho một máy chủ ảo cụ thể, thì chỉ các proxy API 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ừ Bộ xử lý thư, sau khi thiết lập kết nối và gửi yêu cầu đến Trình xử lý tin nhắn.

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

Thuộc tính này được dùng cho tất 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 Định cấu hình thời gian chờ I/O trên Bộ định tuyến dưới đây 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 dưới dạng khoảng thời gian không phải là 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 phản hồi từ tất cả các Thông báo Đơn vị xử lý, sau khi thiết lập kết nối và gửi yêu cầu đến từng Thông báo Bộ xử lý.

Cách này áp dụng khi bạn cài đặt Edge có nhiều Bộ xử lý tin nhắn và tính năng thử lại sẽ được bật khi xảy ra lỗi. Thuộc tính này có giá trị của một trong các 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 57 giây

Tương tự như với conf_load_balancing_load.balancing.driver.proxy.read.timeout bạn có thể chỉ định khoảng thời gian khác với mặc định (giây).

Trước khi bắt đầu

Trước khi làm theo 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 tổ chức và môi trường. Thời gian chờ I/O có thể được định cấu hình trong máy chủ ảo thông qua thuộc tính proxy_read_timeout, biểu thị giá trị thời gian chờ I/O tính bằng giây.

Bạn có thể định cấu hình máy chủ ảo bằng một trong các phương pháp sau:

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

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 Edge UI.
  2. Chuyển đến mục Quản trị > Máy chủ ảo.
  3. Chọn 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 máy chủ lưu trữ mới Giá trị thời gian chờ I/O.
  5. Trong mục Thuộc tính, hãy cập nhật giá trị Thời gian chờ đọc 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 bên dưới:

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

  6. Lưu thay đổi.

API Edge

Để định cấu hình máy chủ ảo bằng API Edge, 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 Nhận API máy chủ ảo như sau:

    Người dùng Cloud 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 trên đá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 môi trường

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

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

        {
          "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 cấu hình máy chủ ảo hiện có Tải trọng JSON trong properties có 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 properties khối mã như minh hoạ dưới đây:

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

    {
      "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 Cập nhật API máy chủ ảo như sau:

    Người dùng Cloud 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 trên đá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 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 thời gian chờ I/O đã được sửa đổi thành công trên máy chủ ảo bằng API Edge.

  1. Thực thi Nhận API máy chủ ảo để lấy cấu hình virtualhost như trình bày dưới đây:

    Người dùng Cloud 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 trên đá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 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 đã cập nhật mẫu

    {
      "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 thiết lập là giá trị mới là 120 giây.

  3. Nếu bạn vẫn thấy giá trị cũ của 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 Định cấu hình thời gian chờ I/O trong máy chủ ảo một cách chính xác. Nếu bạn đã bỏ lỡ bất kỳ 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 Bộ phận 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. Thời gian chờ I/O có thể là được định cấu hình thông qua thuộc tính Bộ định tuyến conf_load_balancing_load.balancing.driver.proxy.read.timeout, đại diện cho 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 Bộ định tuyến, mở tệp sau đây trong trình chỉnh sửa. Nếu chưa có, hãy tạo đối tượng đó.
    /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 ở định dạng sau vào tệp properties, thay thế một dòng 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 các 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ư hình 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ả cá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 thời gian chờ I/O đã được sửa đổi thành công 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, bạn cần xác minh xem thuộc tính thực proxy_read_timeout có đã được đặt với giá trị mới.

  1. Tìm kiếm thuộc tính proxy_read_timeout trong /opt/nginx/conf.d và kiểm tra xem thư mục này đã được thiết lập bằng ngôn ngữ giá trị mới như sau:
    grep -ri "proxy_read_timeout" /opt/nginx/conf.d
    
  2. Nếu giá trị thời gian chờ I/O mới được đặt thành công trên bộ định tuyến thì lệnh trên hiện giá trị mới trong tất 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 kết quả của ví dụ ở trên, hãy lưu ý rằng thuộc tính proxy_read_timeout đã được thiết lập với giá trị mới 120 trong 0-default.conf, đó là giá trị cho máy chủ ảo mặc định. Điều này cho biết rằng thời gian chờ I/O được định cấu hình thành công đến 120 giây trên Bộ định tuyến.

  3. Nếu bạn vẫn thấy giá trị cũ của thuộc tính proxy_read_timeout, thì xác minh rằng bạn đã làm theo tất cả các bước nêu trong Đị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 có đã bỏ lỡ bất kỳ 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 Bộ phận 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ư