แคชภายใน

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

หัวข้อนี้อธิบายการทำงานของแคชภายใต้นโยบายต่างๆ เช่น นโยบาย PopulateCache, นโยบาย LookupCache, นโยบาย InvalidateCache และ นโยบาย ResponseCache

แคชที่แชร์และแคชของสภาพแวดล้อม

นโยบายการแคชแต่ละรายการที่คุณกำหนดค่าสามารถใช้แคชได้ 2 ประเภท ได้แก่ แคชที่แชร์ซึ่งรวมอยู่ด้วย และแอปพลิเคชันของคุณมีสิทธิ์เข้าถึง และแคชที่กำหนดขอบเขตไว้ที่สภาพแวดล้อมอย่างน้อย 1 รายการที่คุณสร้างขึ้น

  • แคชที่แชร์: โดยค่าเริ่มต้น พร็อกซีของคุณมีสิทธิ์เข้าถึงแคชที่แชร์ 1 รายการใน แต่ละสภาพแวดล้อม แคชที่แชร์เหมาะสำหรับ Use Case พื้นฐาน

    คุณใช้แคชที่แชร์ได้โดยใช้นโยบายการแคชเท่านั้น ไม่ใช่ management API หากต้องการให้นโยบายการแคชใช้แคชที่แชร์ เพียงละเว้นองค์ประกอบ <CacheResource> ของนโยบาย

  • แคชของสภาพแวดล้อม: หากต้องการกำหนดค่าพร็อพเพอร์ตี้ของแคชด้วยค่าที่คุณ เลือก คุณสามารถสร้างแคชที่กำหนดขอบเขตไว้ที่สภาพแวดล้อมได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับการสร้างแคชได้ที่ การสร้างและแก้ไขแคชของสภาพแวดล้อม

    เมื่อสร้างแคชของสภาพแวดล้อม คุณจะกำหนดค่าพร็อพเพอร์ตี้เริ่มต้นของแคช คุณสามารถให้นโยบายการแคชใช้แคชของสภาพแวดล้อมได้โดยระบุชื่อแคชในองค์ประกอบของนโยบาย <CacheResource>

เกี่ยวกับการเข้ารหัสแคช

Edge for Public Cloud: ระบบจะเข้ารหัสแคช เฉพาะ ใน PCI- และ HIPAA ที่เปิดใช้งาน องค์กร การเข้ารหัสสำหรับองค์กรเหล่านั้นจะได้รับการกำหนดค่าระหว่างการจัดสรรองค์กร

ระดับแคชในหน่วยความจำและแคชแบบถาวร

ทั้งแคชที่แชร์และแคชของสภาพแวดล้อมสร้างขึ้นบนระบบ 2 ระดับที่ประกอบด้วยระดับในหน่วยความจำ และระดับแบบถาวร นโยบายจะโต้ตอบกับทั้ง 2 ระดับเป็นเฟรมเวิร์กรวมกัน Edge จะจัดการความสัมพันธ์ระหว่างระดับต่างๆ

  • ระดับ 1 คือแคชในหน่วยความจำ (L1) สำหรับการเข้าถึงที่รวดเร็ว โหนดการประมวลผลข้อความ (MP) แต่ละรายการมีแคชในหน่วยความจำของตัวเอง (ใช้งานจาก Ehcache) เพื่อให้ตอบสนองต่อคำขอได้เร็วที่สุด
    • ในแต่ละโหนด ระบบจะสงวนหน่วยความจำไว้บางเปอร์เซ็นต์เพื่อให้แคชใช้งาน
    • เมื่อถึงขีดจำกัดหน่วยความจำ Apigee Edge จะนำรายการแคชออกจากหน่วยความจำ (แม้ว่าจะยังคงเก็บไว้ในแคชแบบถาวร L2) เพื่อให้แน่ใจว่าหน่วยความจำจะยังคงพร้อมใช้งานสำหรับกระบวนการอื่นๆ
    • ระบบจะนำรายการออกตามลำดับเวลาตั้งแต่มีการเข้าถึงครั้งล่าสุด โดยจะนำรายการที่เก่าที่สุด ออกก่อน
    • แคชเหล่านี้ยังจำกัดด้วยจำนวนรายการในแคชด้วย
  • ระดับ 2 คือแคชแบบถาวร (L2) ที่อยู่ใต้แคชในหน่วยความจำ โหนดการประมวลผลข้อความทั้งหมด จะแชร์ที่เก็บข้อมูลแคช (Cassandra) เพื่อเก็บรายการแคชไว้
    • รายการแคชจะยังคงอยู่ในแคชนี้แม้หลังจากที่นำออกจากแคช L1 แล้ว เช่น เมื่อถึงขีดจำกัดในหน่วยความจำ
    • เนื่องจากแคชแบบถาวรมีการแชร์ระหว่างตัวประมวลผลข้อความ (แม้จะอยู่ในภูมิภาคต่างๆ) รายการแคชจึงพร้อมใช้งานไม่ว่าโหนดใดจะได้รับคำขอข้อมูลที่แคชไว้
    • ระบบอาจแคชเฉพาะรายการที่มีขนาดหนึ่งๆ และอาจมีขีดจำกัดอื่นๆ ของแคช ดู การจัดการขีดจำกัดของแคช

คุณอาจสนใจหัวข้อ Apigee Edge Caching In Detail ใน ชุมชน Apigee

วิธีที่นโยบายใช้แคช

ต่อไปนี้อธิบายวิธีที่ Apigee Edge จัดการรายการแคชเมื่อนโยบายการแคชทำงาน

  • เมื่อนโยบาย เขียนรายการใหม่ ลงในแคช (นโยบาย PopulateCache หรือ ResponseCache)
    1. Edge จะเขียนรายการลงในแคช L1 ในหน่วยความจำของตัวประมวลผลข้อความ ที่จัดการคำขอเท่านั้น หากถึงขีดจำกัดหน่วยความจำในตัวประมวลผลข้อความก่อนที่รายการจะหมดอายุ Edge จะนำรายการออกจากแคช L1
    2. นอกจากนี้ Edge ยังเขียนรายการลงในแคช L2 ด้วย
  • เมื่อนโยบายอ่าน จากแคช (นโยบาย LookupCache หรือ ResponseCache)
    1. Edge จะค้นหารายการในแคช L1 ในหน่วยความจำของตัวประมวลผลข้อความที่จัดการคำขอก่อน
    2. หากไม่มีรายการที่ตรงกันในหน่วยความจำ Edge จะค้นหารายการในแคชแบบถาวร L2
    3. หากรายการไม่อยู่ในแคชแบบถาวร ระบบจะดำเนินการดังนี้
      • นโยบาย LookupCache: ไม่มีการดึงค่าจากแคช
      • นโยบาย ResponseCache: Edge จะแสดงการตอบกลับจริงจากเป้าหมายไปยัง ไคลเอ็นต์ และจัดเก็บรายการไว้ในแคชจนกว่าจะหมดอายุหรือถูกทำให้ไม่ถูกต้อง
  • เมื่อนโยบาย อัปเดต หรือ ทำให้ รายการแคชที่มีอยู่ **ไม่ถูกต้อง** (นโยบาย InvalidateCache, PopulateCache หรือ ResponseCache)
    1. ตัวประมวลผลข้อความที่ได้รับคำขอจะส่งการออกอากาศเพื่ออัปเดตหรือลบรายการในแคช L1 ในตัวประมวลผลข้อความเองและตัวประมวลผลข้อความอื่นๆ ทั้งหมดในทุกภูมิภาค
      • หากการออกอากาศสำเร็จ ตัวประมวลผลข้อความที่ได้รับแต่ละรายการจะอัปเดตหรือนำ รายการออกจากแคช L1
      • หากการออกอากาศล้มเหลว ค่าแคชที่ทำให้ไม่ถูกต้องจะยังคงอยู่ในแคช L1 ใน ตัวประมวลผลข้อความที่ไม่ได้รับการออกอากาศ ตัวประมวลผลข้อความเหล่านั้นจะ มีข้อมูลที่ล้าสมัยในแคช L1 จนกว่า Time to Live (TTL) ของรายการจะหมดอายุหรือระบบจะนำรายการออกเมื่อ ถึงขีดจำกัดหน่วยความจำของตัวประมวลผลข้อความ
    2. การออกอากาศจะอัปเดตหรือลบรายการในแคช L2 ด้วย

การจัดการขีดจำกัดของแคช

คุณสามารถจัดการแคชบางส่วนได้ผ่านการกำหนดค่า พื้นที่ทั้งหมดที่พร้อมใช้งานสำหรับแคชในหน่วยความจำ จะจำกัดตามทรัพยากรของระบบและกำหนดค่าไม่ได้ ข้อจำกัดต่อไปนี้มีผลกับแคช

  • ขีดจำกัดของแคช: มีขีดจำกัดของแคชต่างๆ เช่น ขนาดชื่อและค่า จำนวนแคชทั้งหมด จำนวนรายการในแคช และการหมดอายุ
  • แคชในหน่วยความจำ (L1) คุณกำหนดขีดจำกัดหน่วยความจำสำหรับแคชไม่ได้ Apigee จะกำหนดขีดจำกัดสำหรับตัวประมวลผลข้อความแต่ละรายการที่โฮสต์แคชสำหรับลูกค้าหลายราย

    ในสภาพแวดล้อมคลาวด์ที่โฮสต์ ซึ่งแคชในหน่วยความจำสำหรับการทำให้ใช้งานได้ของลูกค้าทั้งหมดจะโฮสต์ ในตัวประมวลผลข้อความที่แชร์หลายรายการ ตัวประมวลผลแต่ละรายการจะมีเกณฑ์เปอร์เซ็นต์หน่วยความจำที่ Apigee กำหนดค่าได้ เพื่อให้แน่ใจว่าการแคชจะไม่ใช้หน่วยความจำทั้งหมดของแอปพลิเคชัน เมื่อตัวประมวลผลข้อความหนึ่งๆ เกินเกณฑ์ รายการแคชจะถูกนำออกจากหน่วยความจำตามหลักการใช้งานล่าสุด รายการที่นำออกจากหน่วยความจำจะยังคงอยู่ในแคช L2 จนกว่าจะหมดอายุหรือถูกทำให้ไม่ถูกต้อง

  • แคชแบบถาวร (L2) รายการที่นำออกจากแคชในหน่วยความจำ จะยังคงอยู่ในแคชแบบถาวรตามการตั้งค่า Time to Live ที่กำหนดค่าได้

การเพิ่มประสิทธิภาพที่กำหนดค่าได้

ตารางต่อไปนี้แสดงการตั้งค่าที่คุณใช้เพื่อเพิ่มประสิทธิภาพของแคช คุณระบุค่าสำหรับการตั้งค่าเหล่านี้ได้เมื่อสร้างแคชของสภาพแวดล้อมใหม่ตามที่อธิบายไว้ใน หัวข้อการสร้างและแก้ไขแคชของสภาพแวดล้อม

การตั้งค่า คำอธิบาย หมายเหตุ
วันหมดอายุ ระบุ Time to Live สำหรับรายการแคช ไม่มี