Yêu cầu phát trực tuyến và phản hồi

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

Kiến thức bạn sẽ học được trong chủ đề này

Sau khi đọc chủ đề này, bạn sẽ biết:

  • Truyền phát trực tiếp yêu cầu và phản hồi trên Apigee Edge
  • Trường hợp sử dụng tính năng truyền trực tuyến yêu cầu và phản hồi
  • Cách bật tính năng truyền trực tuyến yêu cầu và phản hồi

Truyền phát trực tiếp yêu cầu và phản hồi là gì?

Theo mặc định, tính năng truyền trực tuyến HTTP bị tắt và trọng tải yêu cầu và phản hồi HTTP được ghi vào một vùng đệm trong bộ nhớ trước khi được xử lý bởi quy trình proxy API. Bạn có thể thay đổi hành vi này bằng cách bật tính năng phát trực tuyến. Khi bật tính năng truyền phát trực tiếp, các tải trọng yêu cầu và phản hồi sẽ được truyền phát trực tiếp mà không có thay đổi nào đối với ứng dụng khách (đối với phản hồi) và điểm cuối đích (đối với yêu cầu).

Khi nào tôi nên bật tính năng phát trực tiếp?

Nếu proxy API của bạn xử lý các yêu cầu và/hoặc phản hồi có kích thước rất lớn (để biết giới hạn kích thước, hãy xem phần Tôi cần biết thêm những thông tin gì về tính năng truyền trực tuyến bên dưới), bạn có thể muốn bật tính năng truyền trực tuyến.

Tôi cần biết thêm điều gì về việc phát trực tuyến?

Kích thước tải trọng của thông báo bị giới hạn ở mức 10 MB trong Đám mây biên và Đám mây riêng, ngay cả khi bạn bật tính năng truyền phát trực tiếp. Trong các yêu cầu và phản hồi không được truyền trực tuyến, việc vượt quá kích thước đó sẽ dẫn đến lỗi protocol.http.TooBigBody.

Trong các hoạt động triển khai Edge cho Đám mây riêng, bạn có thể sửa đổi hạn mức kích thước yêu cầu/phản hồi không được truyền trực tuyến. Hãy nhớ kiểm thử trước khi triển khai thay đổi cho bản phát hành công khai.

  • Đối với các bản phát hành Edge for Private Cloud trước phiên bản 4.16.01:

    Trên tất cả Trình xử lý thông báo, hãy chỉnh sửa tệp http.properties để tăng hạn mức trong tham số HTTPResponse.body.buffer.limit, sau đó khởi động lại Trình xử lý thông báo.
  • Đối với Edge cho phiên bản Đám mây riêng tư 4.16.01 trở lên:
    1. Chỉnh sửa tệp /<inst_root>/apigee/customer/application/message-processor.properties. Nếu tệp đó không tồn tại, hãy tạo tệp.

    2. Đặt thuộc tính conf_http_HTTPResponse.body.buffer.limit trong message-processor.properties. Ví dụ:
      conf_http_HTTPResponse.body.buffer.limit=5m

    3. Khởi động lại Trình xử lý thông báo:
      > /<inst_root>/apigee/apigee-service/bin/apigee-service edge-message-processor restart

    4. Lặp lại cho tất cả Trình xử lý thông báo.

Cách bật tính năng truyền trực tuyến yêu cầu và phản hồi

Để bật tính năng phát trực tuyến yêu cầu, bạn cần thêm thuộc tính request.streaming.enabled vào các định nghĩa ProxyEndpoint và TargetEndpoint trong gói proxy rồi đặt thuộc tính này thành true. Tương tự, hãy đặt thuộc tính response.streaming.enabled để bật tính năng truyền trực tuyến phản hồi.

Bạn có thể tìm thấy các tệp cấu hình này trong giao diện người dùng quản lý ở chế độ xem Phát triển cho proxy của mình. Nếu bạn đang phát triển cục bộ, các tệp định nghĩa này nằm trong apiproxy/proxiesapiproxy/targets.

Mẫu này cho thấy cách bật cả tính năng phát trực tuyến yêu cầu và phản hồi trong định nghĩa TargetEndpoint.

<TargetEndpoint name="default">
  <HTTPTargetConnection>
    <URL>http://mocktarget.apigee.net</URL>
    <Properties>
      <Property name="response.streaming.enabled">true</Property>
      <Property name="request.streaming.enabled">true</Property>
      <Property name="supports.http10">true</Property>
      <Property name="request.retain.headers">User-Agent,Referer,Accept-Language</Property>
      <Property name="retain.queryparams">apikey</Property>
    </Properties>
  </HTTPTargetConnection>
</TargetEndpoint>

Ví dụ này minh hoạ cách bật tính năng truyền trực tuyến yêu cầu và phản hồi trong định nghĩa ProxyEndpoint:

<ProxyEndpoint name="default">
  <HTTPProxyConnection>
    <BasePath>/v1/weather</BasePath>
    <Properties>
      <Property name="allow.http10">true</Property>
      <Property name="response.streaming.enabled">true</Property>
      <Property name="request.streaming.enabled">true</Property>
    </Properties>
  </HTTPProxyConnection>
</ProxyEndpoint>

Để biết thêm thông tin về cách định cấu hình các định nghĩa điểm cuối, hãy xem phần Tài liệu tham khảo về thuộc tính điểm cuối.

Mã mẫu liên quan

Bạn có thể dễ dàng tải xuống và sử dụng các mẫu proxy API trên GitHub. Hãy xem phần Sử dụng các proxy API mẫu để biết thông tin về cách tải xuống và sử dụng các mẫu.

Sau đây là ví dụ về các proxy có tính năng phát trực tuyến:

  • streaming – Minh hoạ một proxy API được định cấu hình để truyền trực tuyến qua HTTP.
  • Chú thích trên Edge: Trình tạo URL đã ký – Minh hoạ phương pháp hay nhất để tạo URL đã ký nhằm truy cập vào các tệp lớn thay vì cố gắng truyền trực tuyến các tệp đó trong một yêu cầu/phản hồi.