เกี่ยวกับปัจจัยการจำลอง Cassandra และระดับความสอดคล้อง

เกี่ยวกับปัจจัยการจำลอง Cassandra

Cassandra จะจัดเก็บตัวจำลองข้อมูลไว้ในโหนดต่างๆ เพื่อดูแลให้มีความเสถียรและป้องกันความผิดพลาด กลยุทธ์การจำลองสำหรับคีย์สเปซ Edge แต่ละรายการจะเป็นตัวกำหนดโหนดที่มีการวางตัวจำลอง

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

ในระบบที่ใช้งานจริงที่มีโหนด Cassandra อย่างน้อย 3 โหนดในศูนย์ข้อมูลแต่ละแห่ง ปัจจัยการจำลองเริ่มต้นสำหรับพื้นที่ทำงาน Edge คือ 3 รายการ ตามกฎทั่วไป ปัจจัยการจำลองไม่ควรเกินจำนวนโหนด Cassandra ในคลัสเตอร์

ใช้ขั้นตอนต่อไปนี้เพื่อดูสคีมา Cassandra ซึ่งจะแสดงปัจจัยการจำลองสำหรับคีย์สเปซ Edge แต่ละรายการ

  1. เข้าสู่ระบบโหนด Cassandra
  2. เรียกใช้คำสั่งต่อไปนี้
    /opt/apigee/apigee-cassandra/bin/cassandra-cli -h $(hostname -i) <<< "show schema;"

    เมื่อ $(hostname -i) แก้ไขเป็นที่อยู่ IP ของโหนด Cassandra หรือแทนที่ $(hostname -i) ด้วยที่อยู่ IP ของโหนด

สำหรับแต่ละ Keyspace คุณจะเห็นเอาต์พุตในรูปแบบ:

create keyspace kms
  with placement_strategy = 'NetworkTopologyStrategy'
  and strategy_options = {dc-1 : 3}
  and durable_writes = true;

คุณจะเห็นว่าสำหรับศูนย์ข้อมูล 1, dc-1 ปัจจัยการจำลองเริ่มต้นสำหรับคีย์สเปซ kms คือ 3 สำหรับการติดตั้งที่มีโหนด Cassandra 3 โหนด

หากคุณเพิ่มโหนด Cassandra เพิ่มเติมลงในคลัสเตอร์ ปัจจัยการจำลองเริ่มต้นจะไม่ได้รับผลกระทบ

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

เกี่ยวกับระดับความสอดคล้องของ Cassandra

ระดับความสอดคล้องของ Cassandra หมายถึงจำนวนโหนด Cassandra ขั้นต่ำที่ต้องรับทราบการดำเนินการอ่านหรือเขียนก่อนที่จะถือว่าการดำเนินการสำเร็จ คุณกำหนดระดับความสอดคล้องที่แตกต่างกันให้กับแป้น Edge ที่แตกต่างกันได้

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

การคำนวณค่าของ LOCAL_QUORUM สำหรับศูนย์ข้อมูลหนึ่งๆ คือ

LOCAL_QUORUM = (replication_factor/2) + 1

ตามที่อธิบายไว้ข้างต้น ปัจจัยการจำลองเริ่มต้นสำหรับสภาพแวดล้อมที่ใช้งานจริง Edge ที่มีโหนด Cassandra จำนวน 3 โหนดคือ 3 รายการ ดังนั้น ค่าเริ่มต้นของ LOCAL_QUORUM = (3/2) +1 = 2 (ค่าจะถูกปัดเศษเป็นจำนวนเต็ม)

เมื่อใช้ LOCAL_QUORUM = 2 โหนด Cassandra อย่างน้อย 2 โหนดใน 3 โหนดในศูนย์ข้อมูลต้องตอบสนองต่อการดำเนินการอ่าน/เขียนเพื่อให้การดำเนินการประสบความสำเร็จ สำหรับคลัสเตอร์ Cassandra แบบ 3 โหนด คลัสเตอร์รองรับจำนวนโหนดที่ลดลง 1 โหนดต่อศูนย์ข้อมูล

เมื่อระบุระดับความสอดคล้องเป็น LOCAL_QUORUM แล้ว Edge จะหลีกเลี่ยงเวลาในการตอบสนองที่ต้องใช้โดยการตรวจสอบการดำเนินการในศูนย์ข้อมูลหลายแห่ง หากคีย์สเปซใช้ค่า Cassandra QUORUM เป็นระดับความสอดคล้อง จะต้องมีการตรวจสอบการดำเนินการอ่าน/เขียนในศูนย์ข้อมูลทั้งหมด

หากต้องการดูระดับความสอดคล้องที่ Edge Message Processor หรือโหนดการจัดการเซิร์ฟเวอร์ใช้ ให้ทำดังนี้

  1. เข้าสู่ระบบโหนดตัวประมวลผลข้อความ
  2. เปลี่ยนเป็นไดเรกทอรี /opt/apigee/edge-message-processor/conf:
    cd /opt/apigee/edge-message-processor/conf
  3. โปรดทำดังนี้เพื่อความสอดคล้องในการเขียน
    grep -ri "write.consistencylevel" *
  4. โปรดทำดังนี้เพื่อให้อ่านสอดคล้องกัน
    grep -ri "read.consistencylevel" *
  5. เข้าสู่ระบบโหนด Management Server
  6. เปลี่ยนเป็นไดเรกทอรี /opt/apigee/edge-management-server/conf:
    cd /opt/apigee/edge-management-server/conf
  7. ทำขั้นตอน 3 และ 4 ซ้ำ

หากคุณเพิ่มโหนด Cassandra เพิ่มเติมลงในคลัสเตอร์ ระดับความสอดคล้องจะไม่ได้รับผลกระทบ