Apigee Edge มีการแคชเพื่อคงความต่อเนื่องของข้อมูลในคำขอ เมื่อได้รับข้อมูล API ข้อมูลจะถูกจัดเก็บไว้ในแคชเป็นระยะเวลาสั้นๆ แล้วลบออก ระยะเวลาสูงสุดที่จะเก็บข้อมูลหนึ่งๆ ไว้ก่อนที่จะถูกลบเรียกว่า expiry หรือ time-to-live (TTL) ของแคช แคชแต่ละรายการจะมี TTL เริ่มต้น แต่ในบางกรณีคุณอาจต้องเปลี่ยนค่า TTL เพื่อปรับปรุงประสิทธิภาพของ API
ประเภทของแคช
ข้อมูล API ได้รับการจัดเก็บไว้ในแคชสองประเภทดังนี้
- ระดับ 1 (L1): แคชในหน่วยความจำ ซึ่งเข้าถึงได้เร็วขึ้นแต่ความจุพื้นที่เก็บข้อมูลที่ใช้ได้น้อยกว่า
- ระดับ 2 (L2): แคชถาวรในพื้นที่เก็บข้อมูล Cassandra ซึ่งมีสิทธิ์เข้าถึงช้ากว่า แต่มีความจุพื้นที่เก็บข้อมูลมากกว่า
เมื่อการป้อนข้อมูลในแคช L1 ถึงค่า TTL ของ L1 ระบบจะลบข้อมูลนั้นออก แต่สำเนาของรายการจะเก็บไว้ในแคช L2 (ซึ่งมี TTL นานกว่าแคช L1) ซึ่งผู้ประมวลผลข้อความอื่นๆ จะยังคงเข้าถึงได้ ดูรายละเอียดเพิ่มเติมเกี่ยวกับแคชได้ที่ระดับแคชในหน่วยความจำและแคชถาวร
TTL สูงสุด L1
ใน Edge สำหรับ Private Cloud คุณสามารถตั้งค่า TTL ของแคช L1 สูงสุดให้กับตัวประมวลผลข้อความแต่ละรายการโดยใช้พร็อพเพอร์ตี้ TTL สูงสุด (conf_cache_max.l1.ttl.in.seconds
)
รายการในแคช L1 จะหมดอายุหลังจากถึงค่า TTL สูงสุด L1 และจะถูกลบ
Notes:
- โดยค่าเริ่มต้น ระบบจะปิดใช้ TTL สูงสุด (ที่มีค่า
-1
) ในกรณีนี้ TTL ของรายการในแคช L1 จะกำหนดตาม การตั้งค่าวันหมดอายุของนโยบาย PLAYERS (สำหรับทั้งแคช L1 และ L2) - L1 TTL สูงสุดจะมีผลต่อเมื่อค่าน้อยกว่าเวลาหมดอายุของแคชโดยรวม
กำลังตั้งค่า L1 TTL สูงสุด
คุณสามารถตั้งค่า Max L1 TTL ในตัวประมวลผลข้อความดังนี้
- เปิด
ไฟล์การกำหนดค่า
/opt/apigee/customer/application/message-processor.properties
ในตัวแก้ไข หากไม่มีไฟล์ ให้สร้างขึ้นมา - ตั้งค่าพร็อพเพอร์ตี้ Max L1 TTL เป็นค่าที่ต้องการ
conf_cache_max.l1.ttl.in.seconds = 180
เราขอแนะนําให้ใช้ค่า
180
วินาที - ตรวจสอบว่าไฟล์พร็อพเพอร์ตี้เป็นของผู้ใช้ "apigee":
chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- รีสตาร์ทโปรแกรมประมวลผลข้อความโดยทำดังนี้
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
หลักเกณฑ์สำหรับการตั้งค่า Max L1 TTL
เมื่อตั้งค่า Max L1 TTL โปรดคำนึงถึงหลักเกณฑ์ต่อไปนี้
- ไม่พบ RPC: หากคุณพบว่าการเรียกใช้โพรซีเยอร์ระยะไกล (RPC) ขาดช่วงระหว่างตัวประมวลผลข้อความ (MPC) โดยเฉพาะในศูนย์ข้อมูลหลายแห่ง เป็นไปได้ว่าแคช L1 มีรายการที่ไม่มีอัปเดต ซึ่งจะยังคงไม่มีการอัปเดตจนกว่าจะถูกลบออกจากแคช L1 การตั้งค่า Max L1 TTL เป็นค่าที่ต่ำลงจะบังคับให้ลบรายการที่ไม่อัปเดตออก และแทนที่ด้วยค่าใหม่จากแคช L2 เร็วขึ้น
วิธีแก้ไข: ลดconf_cache_max.l1.ttl.in.seconds
- การโหลดที่มากเกินไปใน Casandra: เมื่อคุณตั้งค่าสำหรับ Max L1 TTL รายการแคช L1 จะหมดอายุบ่อยขึ้น ซึ่งทำให้ไม่พบแคช L1 มากขึ้นและพบแคช L2 มากขึ้น เนื่องจากแคช L2 จะมีการใช้งานบ่อยขึ้น
Cassandra จึงจะมีภาระงานเพิ่มขึ้น
วิธีแก้ไข: เพิ่มconf_cache_max.l1.ttl.in.seconds
ตามกฎทั่วไป ให้ปรับ Max L1 TTL เป็นค่าที่รักษาสมดุลระหว่างความถี่ของ RPC ที่พลาดไประหว่าง MP กับโหลดที่เป็นไปได้ของ Cassandra
เราขอแนะนำให้ตั้งค่า conf_cache_max.l1.ttl.in.seconds
เป็นอย่างน้อย 180
วินาที (3 นาที) เพื่อให้การประมวลผลเป็นไปอย่างราบรื่น