Đị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 Bộ xử lý tin nhắn Apigee Edge.

Thời gian chờ I/O trên Bộ xử lý thông báo thể hiện 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 yêu cầu lên máy chủ phụ trợ trước khi hết thời gian chờ.

Giá trị mặc định thời gian chờ của bộ xử lý I/O của bộ xử lý thông báo là 55 seconds. Khoảng thời gian chờ này áp dụng cho những máy chủ phụ trợ được định cấu hình trong cấu hình điểm cuối mục tiêu và trong chính sách ServiceChú thích của proxy API của bạn.

Bạn có thể tăng hoặc giảm thời gian chờ I/O của Bộ xử lý thông báo từ giá trị mặc định của 55 seconds tuỳ theo nhu cầu của mình. Bạn có thể định cấu hình giá trị này ở các vị trí sau:

  • Trong proxy API
    • Điểm cuối mục tiêu
    • Chính sách về chú thích dịch vụ
  • Trên Bộ 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í Nội dung 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 để Trình xử lý thông báo 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ờ ổ cắm sẵn sàng để Bộ xử lý thông báo gửi yêu cầu đến máy chủ phụ trợ.

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

Nếu thuộc tính này được sửa đổi với giá trị hết 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 Bộ xử lý thư

Đây là thời gian tối đa để Trình xử lý thông báo 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ờ ổ cắm sẵn sàng để Bộ xử lý thông báo gửi yêu cầu đến máy chủ phụ trợ.

Nếu không có phản hồi nào từ máy chủ phụ trợ trong khoảng thời gian chờ này, thì Trình xử lý thông báo sẽ hết thời gian chờ.

Thuộc tính này được dùng cho tất cả cá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ư giải thích trong bài viết Định cấu hình thời gian chờ I/O trên Bộ xử lý thông báo hoặc ghi đè giá trị này bằng cách đặt thuộc tính io.timeout.millis ở cấp proxy API.

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õ những chủ đề sau:

Định cấu hình thời gian chờ I/O trong proxy API

Thời gian chờ I/O có thể được định cấu hình ở những vị trí proxy API sau:

  • Điểm cuối mục tiêu
  • 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 đích 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 đích 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. Thuộc tính này thể hiện 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 mới.
  2. Chọn điểm cuối đích cụ thể mà bạn muốn sửa đổi.
  3. Thêm thuộc tính io.timeout.millis với giá trị thích hợp trong phần tử <HTTPTargetConnection> của 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ị của 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 cấu hình điểm cuối mục tiêu của proxy API:

    Ví dụ về cấu hình điểm cuối đích bằng cá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 điểm cuối mục tiêu bằ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 của bạn.

Định cấu hình thời gian chờ I/O trong chính sách Chú thích dịch vụ 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 của 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à thuộc tính io.timeout.millis đều 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 Chú thích dịch vụ bằng một trong các phương pháp sau:

  • Phần tử <Timeout>.
  • io.timeout.millis.

Phần tử thời gian chờ

Để định cấu hình thời gian chờ I/O trong chính sách Chú thích dịch vụ bằng phần tử <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 ServiceChú thích.
  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> tính bằng mili giây, nên giá trị của 120 giây là 120000.

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

    Ví dụ về cấu hình chính sách Chú thích dịch vụ 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 của bạn.

Thuộc tính io.timeout.millis

Để định cấu hình thời gian chờ I/O trong chính sách Chú thích dịch vụ bằng cách sử dụng thuộc tính 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 dịch vụ cụ thể mà bạn muốn sửa đổi.
  3. Thêm thuộc tính io.timeout.millis với giá trị thích hợp trong phần tử <HTTPTargetConnection> của 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 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ị của 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 cấu hình điểm cuối mục tiêu của proxy API:

    Ví dụ về cấu hình chính sách Chú thích dịch vụ 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>
    

    Cấu hình chính sách Chú thích dịch vụ mẫu bằ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 của bạn.

Đị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 Bộ xử lý thông báo. Bạn có thể định cấu hình thời gian chờ I/O thông qua thuộc tính HTTPTransport.io.timeout.millis. Thuộc tính này thể hiện 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ông báo, bằng cách sử dụng mã thông báo theo cú pháp được mô tả trong phần Cách định cấu hình Edge.

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

  1. Trên máy Xử lý thư, mở tệp sau trong một trình chỉnh sửa. Hãy tạo tài khoản nếu bạn chưa có.
    /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 Bộ xử lý thông báo thành 120 giây, hã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 do người dùng apigee sở hữu như minh hoạ bên dưới:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. Khởi động lại Bộ xử lý tin nhắn 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ông báo, hãy lặp lại các bước trên cho tất cả các Trình xử lý thông báo.

Xác minh 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 xác minh rằng thời gian chờ I/O đã được sửa đổi thành công trên Bộ xử lý thông báo.

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

  1. Trên máy xử lý thư, hãy tìm thuộc tính HTTPTransport.io.timeout.millis trong thư mục /opt/apigee/edge-message-processor/conf và kiểm tra xem thuộc tính này đã được thiết lập bằng giá trị mới như minh hoạ dưới đây hay chưa:
    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 Bộ xử lý thông báo, thì lệnh trên sẽ hiển thị 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ả ví dụ ở trên, hãy lưu ý rằng thuộc tính HTTPTransport.io.timeout.millis đã được thiết lập bằng giá trị mới 120000 trong http.properties. Điều này cho biết thời gian chờ I/O đã được định cấu hình thành công là 120 giây trên Bộ xử lý thông báo.

  4. Nếu bạn vẫn thấy giá trị cũ cho thuộc tính HTTPTransport.io.timeout.millis, hãy xác minh rằng bạn đã làm theo đúng tất cả các bước trong bài viết Định cấu hình thời gian chờ I/O trên Bộ xử lý thông báo. 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 cho đúng cách.
  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 Bộ phận hỗ trợ API 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