คำขอและการตอบกลับสตรีมมิง

คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X
ข้อมูล

สิ่งที่คุณจะได้เรียนรู้ในหัวข้อนี้

คุณจะทราบสิ่งต่อไปนี้หลังจากอ่านหัวข้อนี้

  • การสตรีมคำขอและคำตอบใน Apigee Edge คืออะไร
  • กรณีที่ควรใช้การสตรีมคำขอและการตอบสนอง
  • วิธีเปิดใช้สตรีมมิงคำขอและการตอบสนอง

การสตรีมคำขอและคำตอบคืออะไร

โดยค่าเริ่มต้น ระบบจะปิดใช้สตรีมมิง HTTP และจะเขียนเพย์โหลดคำขอ HTTP และการตอบกลับไปยังบัฟเฟอร์ในหน่วยความจำก่อนที่จะประมวลผลโดยไปป์ไลน์พร็อกซี API คุณเปลี่ยนลักษณะการทำงานนี้ได้โดยการเปิดใช้สตรีมมิง เมื่อเปิดใช้สตรีมมิง ระบบจะสตรีมเพย์โหลดคำขอและการตอบกลับโดยไม่มีการแก้ไขแอปไคลเอ็นต์ (สำหรับการตอบกลับ) และปลายทางเป้าหมาย (สำหรับคำขอ)

ฉันควรเปิดใช้สตรีมมิงเมื่อใด

หากพร็อกซี API จัดการคำขอและ/หรือการตอบกลับขนาดใหญ่มาก (สำหรับขีดจำกัดของขนาด โปรดดูสิ่งอื่นๆ ที่ฉันควรรู้เกี่ยวกับสตรีมมิงด้านล่าง) คุณอาจต้องเปิดใช้สตรีมมิง

มีอะไรอีกบ้างที่ฉันควรรู้เกี่ยวกับสตรีมมิง

ขนาดเพย์โหลดข้อความจำกัดไว้ที่ 10 MB ใน Edge Cloud และ Private Cloud แม้จะเปิดใช้สตรีมมิงก็ตาม ในคำขอและการตอบกลับที่ไม่ใช่สตรีม ขนาดที่เกินขนาดดังกล่าวจะทำให้เกิดข้อผิดพลาด protocol.http.TooBigBody

คุณแก้ไขขีดจำกัดขนาดคำขอ/การตอบกลับแบบไม่สตรีมได้ใน Edge สำหรับการทำให้ Private Cloud ใช้งานได้ อย่าลืมทดสอบก่อนที่จะนำการเปลี่ยนแปลงไปใช้จริง

  • สำหรับ Edge for Private Cloud รุ่นก่อนหน้าเป็นเวอร์ชัน 4.16.01

    ในตัวประมวลผลข้อความทั้งหมด ให้แก้ไขไฟล์ http.properties เพื่อเพิ่มขีดจำกัดในพารามิเตอร์ HTTPResponse.body.buffer.limit จากนั้นจึงรีสตาร์ทตัวประมวลผลข้อความ
  • สำหรับ Edge สำหรับ Private Cloud รุ่น 4.16.01 ขึ้นไป ให้ทำดังนี้
    1. แก้ไขไฟล์ /<inst_root>/apigee/customer/application/message-processor.properties หากยังไม่มี ให้สร้างไฟล์ดังกล่าว

    2. ตั้งค่าพร็อพเพอร์ตี้ conf_http_HTTPResponse.body.buffer.limit ใน message-processor.properties ตัวอย่างเช่น
      conf_http_HTTPResponse.body.buffer.limit=5m

    3. รีสตาร์ทตัวประมวลผลข้อความ
      > /<inst_root>/apigee/apigee-service/bin/apigee-service edge-message-processor begin

    4. ทำซ้ำสำหรับตัวประมวลผลข้อความทั้งหมด

วิธีเปิดใช้สตรีมมิงคำขอและการตอบสนอง

หากต้องการเปิดใช้คำขอสตรีมมิง คุณต้องเพิ่มพร็อพเพอร์ตี้ request.streaming.enabled ลงในคำจำกัดความ ProxyEndpoint และ TargetEndpoint ในกลุ่มพร็อกซีและตั้งค่าเป็น true ในทำนองเดียวกัน ให้ตั้งค่าพร็อพเพอร์ตี้ response.streaming.enabled เพื่อเปิดใช้การสตรีมคำตอบ

คุณจะค้นหาไฟล์การกำหนดค่าเหล่านี้ได้ใน UI การจัดการในมุมมองพัฒนาสำหรับพร็อกซี หากคุณพัฒนาในเครื่อง ไฟล์คําจํากัดความเหล่านี้จะอยู่ใน apiproxy/proxies และ apiproxy/targets

ตัวอย่างนี้แสดงวิธีเปิดใช้ทั้งการสตรีมคำขอและการตอบกลับในคำจำกัดความ 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>

ตัวอย่างนี้แสดงวิธีเปิดใช้การตอบกลับและส่งคำขอสตรีมมิงในคำจำกัดความของ 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>

โปรดดูข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่าการกำหนดปลายทางที่หัวข้อข้อมูลอ้างอิงพร็อพเพอร์ตี้ปลายทาง

ตัวอย่างโค้ดที่เกี่ยวข้อง

ตัวอย่างพร็อกซี API ใน GitHub ดาวน์โหลดและใช้งานง่าย ดูการใช้พร็อกซี API ตัวอย่างสำหรับข้อมูลเกี่ยวกับการดาวน์โหลดและการใช้ตัวอย่าง

ตัวอย่างพร็อกซีที่มีสตรีมมิง ได้แก่