คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่
เอกสารประกอบของ Apigee X info
สิ่งที่คุณจะได้เรียนรู้ในหัวข้อนี้
หลังจากอ่านหัวข้อนี้ คุณจะทราบข้อมูลต่อไปนี้
- การสตรีมคำขอและการตอบสนองใน Apigee Edge คืออะไร
- กรณีที่ควรใช้การสตรีมคำขอและการตอบสนอง
- วิธีเปิดใช้การสตรีมคำขอและการตอบสนอง
การสตรีมคำขอและการตอบสนองคืออะไร
โดยค่าเริ่มต้น การสตรีม HTTP จะปิดใช้อยู่ และระบบจะเขียนข้อมูลคำขอและการตอบสนองของ HTTP ลงใน บัฟเฟอร์ในหน่วยความจำก่อนที่ไปป์ไลน์พร็อกซี API จะประมวลผล คุณสามารถเปลี่ยนลักษณะการทำงานนี้ได้โดยการเปิดใช้การสตรีม เมื่อเปิดใช้การสตรีมแล้ว ระบบจะสตรีมข้อมูลคำขอและการตอบสนองไปยังแอปของไคลเอ็นต์ (สำหรับการตอบสนอง) และปลายทางเป้าหมาย (สำหรับ คำขอ) โดยไม่มีการแก้ไข
ฉันควรเปิดใช้การสตรีมเมื่อใด
หากพร็อกซี API จัดการคำขอและ/หรือการตอบสนองที่มีขนาดใหญ่มาก (ดูขีดจำกัดขนาดได้ที่หัวข้อ สิ่งที่ควรรู้เพิ่มเติมเกี่ยวกับการสตรีม ด้านล่าง) คุณอาจต้องการเปิดใช้การสตรีม
สิ่งที่ควรรู้เพิ่มเติมเกี่ยวกับการสตรีม
ขนาดเพย์โหลดของข้อความจะถูกจำกัดไว้ที่ 10 MB ใน Edge Cloud และ Private Cloud แม้ว่าจะเปิดใช้สตรีมมิงแล้วก็ตาม ในคำขอและการตอบสนองที่ไม่ได้สตรีม หากขนาดเกินขีดจำกัดดังกล่าวจะทำให้เกิดข้อผิดพลาด
protocol.http.TooBigBody
ในการติดตั้งใช้งาน Edge for Private Cloud คุณสามารถแก้ไขขีดจำกัดขนาดคำขอ/การตอบสนองที่ไม่ได้สตรีม ได้ อย่าลืมทดสอบก่อนที่จะติดตั้งใช้งานการเปลี่ยนแปลงในเวอร์ชันที่ใช้งานจริง
- สำหรับ Edge for Private Cloud เวอร์ชันก่อน 4.16.01:
แก้ไขไฟล์http.propertiesใน Message Processor ทั้งหมดเพื่อเพิ่ม ขีดจำกัดในพารามิเตอร์HTTPResponse.body.buffer.limitแล้วรีสตาร์ท Message Processor -
สำหรับ Edge for Private Cloud เวอร์ชัน 4.16.01 ขึ้นไป:
-
แก้ไขไฟล์ /<inst_root>/apigee/customer/application/message-processor.properties หากไม่มีไฟล์ดังกล่าว ให้สร้างขึ้น
-
ตั้งค่าพร็อพเพอร์ตี้ conf_http_HTTPResponse.body.buffer.limit ใน message-processor.properties เช่น ตัวอย่าง:
conf_http_HTTPResponse.body.buffer.limit=5m -
รีสตาร์ทตัวประมวลผลข้อความ:
> /<inst_root>/apigee/apigee-service/bin/apigee-service edge-message-processor restart -
ทำซ้ำสำหรับตัวประมวลผลข้อความทั้งหมด
-
วิธีเปิดใช้การสตรีมคำขอและการตอบสนอง
หากต้องการเปิดใช้การสตรีมคำขอ คุณต้องเพิ่มพร็อพเพอร์ตี้ 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 ตัวอย่าง
พร็อกซีตัวอย่างที่มีการสตรีม ได้แก่
- streaming - แสดงให้เห็นพร็อกซี API ที่กำหนดค่าสำหรับการสตรีม HTTP
- Edge Callout: Signed URL Generator - แสดงให้เห็นแนวทางปฏิบัติแนะนำในการสร้าง URL ที่ลงชื่อแล้วเพื่อเข้าถึงไฟล์ขนาดใหญ่แทนที่จะพยายามสตรีมไฟล์เหล่านั้นในคำขอ/การตอบสนอง