Định cấu hình thời gian chờ I/O trên Trình xử lý thông bá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

Tài liệu này giải thích cách định cấu hình thời gian chờ I/O cho Trình xử lý tin nhắn Apigee Edge.

Thời gian chờ I/O trên Trình xử lý thông báo biểu thị thời gian mà Trình xử lý thông báo chờ nhận phản hồi từ máy chủ phụ trợ hoặc để ổ cắm sẵn sàng ghi gửi yêu cầu đến máy chủ phụ trợ trước khi hết thời gian chờ.

Giá trị mặc định của thời gian chờ I/O của Trình xử lý thông báo là 55 seconds. Thời gian chờ này có áp dụng khoảng thời gian vào các máy chủ phụ trợ đã được định cấu hình trong cấu hình thiết bị đầu cuối đích và trong chú thích dịch vụ chính sách của proxy API.

Thời gian chờ I/O cho Trình xử lý thư có thể tăng hoặc giảm từ giá trị mặc định của 55 seconds dựa trên nhu cầu của bạn. Bạn có thể thiết lập ứng dụng này ở những vị trí sau:

  • Trong proxy API
    • Điểm cuối đích
    • Chính sách về chú thích dịch vụ
  • Trên Trình xử lý thư

Các thuộc tính sau kiểm soát thời gian chờ I/O trên Bộ xử lý thông báo:

Tên thuộc tính Vị trí Mô tả
io.timeout.millis

Proxy API:

  • Điểm cuối mục tiêu
  • Chính sách về chú thích dịch vụ

Đây là thời gian tối đa mà Trình xử lý thư thực hiện những việc sau:

  • Chờ nhận phản hồi từ máy chủ phụ trợ, sau khi thiết lập kết nối và gửi yêu cầu đến máy chủ phụ trợ HOẶC
  • Chờ cho đến khi ổ cắm sẵn sàng để Trình xử lý tin nhắn gửi yêu cầu đến máy chủ phụ trợ.

Nếu không có phản hồi từ máy chủ phụ trợ trong khoảng thời gian chờ này, thì Bộ xử lý thư đã 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 HTTPTransport.io.timeout.millis trên Trình xử lý tin nhắn. Giá trị mặc định là 55 seconds.

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 proxy API cụ thể, thì chỉ proxy API đó bị ảnh hưởng.

HTTPTransport.io.timeout.millis Trình xử lý tin nhắn

Đây là thời gian tối đa mà Trình xử lý thư thực hiện những việc sau:

  • Chờ nhận phản hồi từ máy chủ phụ trợ sau khi thiết lập kết nối rồi gửi yêu cầu đến máy chủ phụ trợ HOẶC
  • Chờ cho đến khi ổ cắm sẵn sàng để Trình xử lý tin nhắn gửi yêu cầu đến máy chủ phụ trợ.

Nếu không có phản hồi từ máy chủ phụ trợ trong khoảng thời gian chờ này, thì Bộ xử lý thư đã hết thời gian chờ.

Thuộc tính này được dùng cho tất cả Proxy API chạy trên Trình xử lý thư này.

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

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 Trình xử lý thư hoặc bạn có thể ghi đè giá trị này bằng cách đặt thuộc tính io.timeout.millis tại API cấp độ proxy.

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 proxy API

Bạn có thể định cấu hình thời gian chờ I/O ở các vị trí proxy API sau đây:

  • Điểm cuối đích
  • Chính sách về chú thích dịch vụ

Định cấu hình thời gian chờ I/O trong điểm cuối mục tiêu của proxy API

Phần này giải thích cách định cấu hình thời gian chờ I/O trong điểm cuối mục tiêu của proxy API. Thời gian chờ I/O có thể được định cấu hình thông qua thuộc tính io.timeout.millis. biểu thị giá trị thời gian chờ I/O tính bằng mili giây.

  1. Trong giao diện người dùng Edge, hãy chọn proxy API cụ thể mà bạn muốn định cấu hình Giá trị thời gian chờ I/O.
  2. Chọn điểm cuối mục tiêu cụ thể mà bạn muốn sửa đổi.
  3. Thêm thuộc tính io.timeout.millis có giá trị thích hợp trong Phần tử <HTTPTargetConnection> trong cấu hình TargetEndpoint.
  4. Ví dụ: để thay đổi Thời gian chờ I/O thành 120 giây, hãy thêm khối mã sau:

        <Properties>
          <Property name="io.timeout.millis">120000</Property>
        </Properties>
    

    Vì thuộc tính io.timeout.millis tính bằng mili giây, nên giá trị cho 120 giây là 120000.

    Các ví dụ sau đây minh hoạ cách định cấu hình thời gian chờ I/O trong điểm cuối mục tiêu cấu hình proxy API của bạn:

    Ví dụ về cấu hình thiết bị đầu cuối đích sử dụng URL cho máy chủ phụ trợ

    <TargetEndpoint name="default">
      <HTTPTargetConnection>
        <URL>https://mocktarget.apigee.net/json</URL>
        <Properties>
          <Property name="io.timeout.millis">120000</Property>
        </Properties>
      </HTTPTargetConnection>
    </TargetEndpoint>
    

    Ví dụ về cấu hình thiết bị đầu cuối mục tiêu sử dụng máy chủ đích

    <TargetEndpoint name="default">
      <HTTPTargetConnection>
        <LoadBalancer>
          <Server name="target1" />
          <Server name="target2" />
        </LoadBalancer>
        <Properties>
          <Property name="io.timeout.millis">120000</Property>
        </Properties>
        <Path>/test</Path>
      </HTTPTargetConnection>
    </TargetEndpoint>
    
  5. Lưu các thay đổi đã thực hiện đối với proxy API.

Định cấu hình thời gian chờ I/O trong chính sách ServiceAnnotation của proxy API

Phần này giải thích cách định cấu hình thời gian chờ I/O trong chính sách ServiceAnnotation Proxy API. Thời gian chờ I/O có thể được định cấu hình thông qua phần tử <Timeout> hoặc thuộc tính io.timeout.millis. Cả phần tử <Timeout> và phần tử Thuộc tính io.timeout.millis biểu thị các giá trị thời gian chờ I/O tính bằng mili giây.

Bạn có thể định cấu hình thời gian chờ I/O trong chính sách ServiceAnnotation bằng một trong các phương thức sau:

  • Phần tử <Timeout>.
  • Thuộc tính io.timeout.millis.

Phần tử thời gian chờ

Cách định cấu hình thời gian chờ I/O trong chính sách ServiceAnnotation bằng cách sử dụng <Timeout> , hãy làm như sau:

  1. Trong giao diện người dùng Edge, hãy chọn proxy API cụ thể mà bạn muốn định cấu hình giá trị thời gian chờ I/O mới cho chính sách ServiceAnnotation.
  2. Chọn chính sách Chú thích dịch vụ cụ thể mà bạn muốn sửa đổi.
  3. Thêm phần tử <Timeout> có giá trị thích hợp trong Cấu hình <ServiceCallout>.

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

        <Timeout>120000</Timeout>
    

    Vì phần tử <Timeout> có tính bằng mili giây, nên giá trị cho 120 giây là 120000.

    Ví dụ sau đây trình bày cách định cấu hình thời gian chờ I/O trong ServiceAnnotation chính sách bằng phần tử <Timeout>:

    Ví dụ về cấu hình chính sách ServiceAnnotation sử dụng URL cho máy chủ phụ trợ

    <ServiceCallout name="Service-Callout-1">
        <DisplayName>ServiceCallout-1</DisplayName>
        <Timeout>120000</Timeout>
        <HTTPTargetConnection>
            <Properties/>
            <URL>https://mocktarget.apigee.net/json</URL>
        </HTTPTargetConnection>
    </ServiceCallout>
    
  4. Lưu các thay đổi đã thực hiện đối với proxy API.

thuộc tính io.timeout.millis

Cách định cấu hình thời gian chờ I/O trong chính sách ServiceAnnotation bằng cách sử dụng io.timeout.millis, hãy làm như sau:

  1. Trong giao diện người dùng Edge, hãy chọn proxy API cụ thể mà bạn muốn định cấu hình giá trị thời gian chờ I/O mới cho chính sách ServiceAnnotation.
  2. Chọn chính sách chú thích cho dịch vụ cụ thể mà bạn muốn sửa đổi.
  3. Thêm thuộc tính io.timeout.millis có giá trị thích hợp trong Phần tử <HTTPTargetConnection> trong cấu hình TargetEndpoint.

    Ví dụ: để thay đổi thời gian chờ I/O thành 120 giây, hãy thêm khối sau của mã:

        <Properties>
          <Property name="io.timeout.millis">120000</Property>
        </Properties>
    

    Vì thuộc tính io.timeout.millis tính bằng mili giây, nên giá trị cho 120 giây là 120000.

    Các ví dụ sau đây minh hoạ cách định cấu hình thời gian chờ I/O trong điểm cuối mục tiêu cấu hình proxy API của bạn:

    Ví dụ về cấu hình chính sách ServiceAnnotation sử dụng URL cho máy chủ phụ trợ

    <ServiceCallout name="Service-Callout-1">
        <DisplayName>ServiceCallout-1</DisplayName>
        <HTTPTargetConnection>
          <Properties>
            <Property name="io.timeout.millis">120000</Property>
          </Properties>
          <URL>https://mocktarget.apigee.net/json</URL>
        </HTTPTargetConnection>
    </ServiceCallout>
    

    Ví dụ về cấu hình chính sách ServiceAnnotation sử dụng máy chủ mục tiêu

    <ServiceCallout enabled="true" name="Service-Callout-1">
        <DisplayName>ServiceCallout-1</DisplayName>
        <Response>calloutResponse</Response>
        <HTTPTargetConnection>
            <LoadBalancer>
                <Server name="target1" />
                <Server name="target2" />
            </LoadBalancer>
            <Properties>
                <Property name="io.timeout.millis">120000</Property>
            </Properties>
            <Path>/test</Path>
        </HTTPTargetConnection>
    </ServiceCallout>
    
  4. Lưu các thay đổi đã thực hiện đối với proxy API.

Định cấu hình thời gian chờ I/O trên Bộ xử lý thông báo

Phần này giải thích cách định cấu hình thời gian chờ I/O trên Trình xử lý thông báo. Thời gian chờ I/O có thể được định cấu hình thông qua thuộc tính HTTPTransport.io.timeout.millis, biểu thị giá trị thời gian chờ I/O tính bằng mili giây trên thành phần Trình xử lý thư, bằng cách sử dụng mã theo cú pháp được mô tả trong Cách định cấu hình Cạnh.

Để định cấu hình thời gian chờ I/O trên Trình xử lý thông báo, hãy làm như sau:

  1. Trên máy Trình xử lý thư, mở tệp sau trong trình chỉnh sửa. Nếu không đã tồn tại, thì hãy tạo nó.
    /opt/apigee/customer/application/message-processor.properties
    

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

    vi /opt/apigee/customer/application/message-processor.properties
    
  2. Thêm một dòng ở định dạng sau vào tệp thuộc tính, thay thế giá trị cho TIME_IN_MILLISECONDS:
    conf_http_HTTPTransport.io.timeout.millis=TIME_IN_MILLISECONDS
    

    Ví dụ: để thay đổi thời gian chờ I/O trên Trình xử lý thông báo thành 120 giây, thêm dòng sau:

    conf_http_HTTPTransport.io.timeout.millis=120000
    
  3. Lưu các thay đổi.
  4. Đảm bảo tệp thuộc tính 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/message-processor.properties
    
  5. Khởi động lại Trình xử lý thư như minh hoạ dưới đây:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. Nếu bạn có nhiều Trình xử lý thư, hãy lặp lại các bước trên cho tất cả các Thư Bộ xử lý.

Xác minh thời gian chờ I/O trên Trình xử lý thư

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ộ xử lý tin nhắn.

Mặc dù bạn sử dụng mã thông báo conf_http_HTTPTransport.io.timeout.millis để đặt giá trị Đã hết thời gian chờ I/O trên Trình xử lý thông báo, bạn cần xác minh xem thuộc tính thực tế HTTPTransport.io.timeout.millis đã được đặt với giá trị mới.

  1. Trên máy Xử lý thư, hãy tìm kiếm thuộc tính HTTPTransport.io.timeout.millis trong thư mục /opt/apigee/edge-message-processor/conf và kiểm tra xem đã được đặt với giá trị mới như sau:
    grep -ri "HTTPTransport.io.timeout.millis" /opt/apigee/edge-message-processor/conf
    
  2. Nếu giá trị thời gian chờ I/O mới được đặt thành công trên Trình xử lý thông báo thì cho biết giá trị mới trong tệp http.properties.
  3. Kết quả mẫu từ lệnh trên sau khi bạn đã định cấu hình thời gian chờ I/O thành 120 giây như sau:

    /opt/apigee/edge-message-processor/conf/http.properties:HTTPTransport.io.timeout.millis=120000
    

    Trong kết quả của ví dụ ở trên, hãy lưu ý rằng thuộc tính Đã đặt HTTPTransport.io.timeout.millis với giá trị mới là 120000 trong http.properties. Mã này cho biết thời gian chờ I/O đã được định cấu hình thành công lên 120 giây trên Bộ xử lý tin nhắn.

  4. Nếu bạn vẫn thấy giá trị cũ của thuộc tính HTTPTransport.io.timeout.millis, sau đó 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 Trình xử lý thư 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.
  5. Nếu bạn vẫn không thể sửa đổi thời gian chờ I/O, vui lòng liên hệ với Hỗ trợ Apigee Edge.

Tiếp theo là gì?

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