ข้อมูลหลักแพลตฟอร์มแผน Scale (ทะเบียนผู้เช่า)

แบ็กเอนด์ SaaS แบบมัลติเทแนนต์

ให้บริการลูกค้าจำนวนมากจากคลัสเตอร์เดียว แต่ละรายถูกจำกัดอยู่ในคีย์ของตนเองด้วย ACL พร้อมทะเบียนผู้เช่าที่บันทึกว่าใครอยู่ที่ไหน

ผู้เช่าต่อเซิร์ฟเวอร์
256
รูปแบบคีย์สำหรับการแยก
ACL
ระเบียนผู้ใช้และโควตา
ต่อผู้เช่า
ขั้นที่ 1 จาก 5
ลงทะเบียนผู้เช่า

id ชื่อที่แสดง และค่าโควตาที่บันทึกไว้กับผู้เช่า

เซสชันตัวอย่างplaying
# ลงทะเบียนผู้เช่า
hotkv> TENANT.CREATE acme "Acme Corp" MAX_MEMORY 1073741824 MAX_KEYS 1000000
OK

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

ปัญหา

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

HotKV จัดการอย่างไร

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

ทีละขั้นตอน

เกิดอะไรขึ้นบ้าง ทีละคำสั่ง

  1. 01

    ลงทะเบียนผู้เช่า

    id ชื่อที่แสดง และค่าโควตาที่บันทึกไว้กับผู้เช่า

    TENANT.CREATE acme "Acme Corp" MAX_MEMORY 1073741824 MAX_KEYS 1000000
  2. 02

    จำกัดผู้ใช้ของมัน

    ผู้ใช้ ACL แตะได้เฉพาะคีย์ใต้ acme: และรันคำสั่งอันตรายไม่ได้

    ACL SETUSER acme-app on >s3cret ~acme:* +@all -@dangerous
  3. 03

    ผูกผู้ใช้กับผู้เช่า

    ทะเบียนบันทึกว่าผู้ใช้คนไหนเป็นของผู้เช่ารายใด

    TENANT.BIND acme acme-app
  4. 04

    การแยกในทางปฏิบัติ

    แอปของ acme อ่านคีย์ของตนเอง การอ่านคีย์ของ globex ถูก ACL ปฏิเสธ

    GET globex:billing:plan
  5. 05

    อ่านระเบียนผู้เช่า

    ค่าโควตาที่บันทึกไว้สำหรับผู้เช่า ในรุ่นนี้ตัวนับการใช้งานไม่ได้ถูกเติมโดยทราฟฟิกของไคลเอนต์ จึงอ่านได้ 0

    TENANT.STATS acme
เหมาะกับงานแบบไหน

สถานการณ์จริง

SaaS แบบ B2B

ข้อมูลแคชและเซสชันของลูกค้าแต่ละรายอยู่ใต้พรีฟิกซ์ของตนเองบนคลัสเตอร์ที่ใช้ร่วมกัน แยกด้วย ACL

เอเจนซีและตัวแทนจำหน่าย

โปรเจกต์ของลูกค้าเป็นผู้เช่าที่มีผู้ใช้ของตนเอง จึงให้และเพิกถอนการเข้าถึงต่อลูกค้าได้

อยู่ในตัว

สิ่งที่คุณได้รับ

การแยกด้วยรูปแบบคีย์

ผู้ใช้ ACL ที่จำกัดอยู่ที่พรีฟิกซ์คีย์และชุดคำสั่ง

ACL SETUSER

ทะเบียนผู้เช่า

ผู้เช่าพร้อมชื่อ สถานะ ค่าโควตา และผู้ใช้ที่ผูกไว้ เหมือนกันบนทุกโหนด

TENANT.CREATETENANT.BIND

ระเบียนผู้เช่า

ชื่อ สถานะ ค่าโควตา และผู้ใช้ที่ผูกไว้ของผู้เช่าแต่ละราย

TENANT.INFOTENANT.STATS

ล็อกผู้เช่าออก

ปิดผู้ใช้ ACL ของผู้เช่า

ACL SETUSER off
ข้อมูลอ้างอิง:TENANT.CREATETENANT.BINDTENANT.STATSACL SETUSER

คำถามที่พบบ่อย

ค่าโควตาถูกบังคับใช้ไหม

ไม่ ค่าเหล่านั้นถูกบันทึกและแสดงใน TENANT.STATS แต่ HotKV ไม่บังคับใช้กับคำสั่ง และตัวนับการใช้งานไม่ได้ถูกเติมโดยทราฟฟิกของไคลเอนต์ในรุ่นนี้ การแยกมาจากกฎ ACL

การระงับผู้เช่าบล็อกมันไหม

TENANT.SUSPEND บันทึกสถานะไว้ให้เครื่องมือของคุณ หากต้องการล็อกผู้ใช้ของผู้เช่าออก ให้ปิดพวกเขาด้วย ACL SETUSER

แผนไหนรวมฟีเจอร์นี้

ACL ใช้ได้ในทุกแผน ทะเบียนผู้เช่าอยู่ในแผน Scale

กรณีใช้งานที่เกี่ยวข้อง

ลองกับเวิร์กโหลดของคุณเอง

HotKV ใช้โปรโตคอลของ Redis คุณจึงชี้ไคลเอนต์ที่มีอยู่มาที่ HotKV แล้วรันคำสั่งเดียวกันนี้ได้