แคชภายใน

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

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

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

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

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

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

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

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

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

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

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

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

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

คุณอาจสนใจการแคช Apigee Edge โดยละเอียดในชุมชน 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 จนกว่าอายุของรายการ (TTL) จะหมดอายุหรือถูกนำออกเมื่อถึงขีดจำกัดหน่วยความจำของผู้ประมวลผลข้อความ
    2. การออกอากาศจะอัปเดตหรือลบรายการในแคช L2 ด้วย

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

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

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

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

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

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

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

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