Dữ liệu lõiNền tảngGói Scale (sổ đăng ký tenant)

Backend SaaS đa tenant

Phục vụ nhiều khách hàng từ một cụm, mỗi khách hàng bị giới hạn trong khóa của riêng mình bằng ACL, với sổ đăng ký tenant ghi lại ai thuộc về đâu.

tenant cho mỗi máy chủ
256
mẫu khóa để cô lập
ACL
bản ghi người dùng và hạn mức
Theo từng tenant
Bước 1 trên 5
Đăng ký một tenant

Một id, một tên hiển thị và các giá trị hạn mức được ghi cùng tenant.

Phiên ví dụplaying
# Đăng ký một tenant
hotkv> TENANT.CREATE acme "Acme Corp" MAX_MEMORY 1073741824 MAX_KEYS 1000000
OK

Một hướng dẫn minh họa động với các lệnh HotKV thật và phản hồi ví dụ. Nhấn vào bất kỳ bước nào để nhảy tới đó. Lệnh và phản hồi giữ nguyên bằng tiếng Anh, đúng như bạn gõ và thấy trong HotKV.

Vấn đề

Chạy một cache hoặc kho dữ liệu cho từng khách hàng thì tốn kém và khó vận hành, nhưng dùng chung một cái nghĩa là bạn cần cô lập mạnh giữa các khách hàng và một bản ghi người dùng nào thuộc khách hàng nào.

HotKV xử lý như thế nào

Người dùng ACL với mẫu khóa giới hạn ứng dụng của mỗi tenant trong tiền tố khóa của riêng nó. Sổ đăng ký tenant ghi lại người dùng nào thuộc tenant nào, cùng các giá trị hạn mức. Sổ đăng ký giống nhau trên mọi node của một cụm.

Từng bước một

Điều gì xảy ra, từng lệnh một

  1. 01

    Đăng ký một tenant

    Một id, một tên hiển thị và các giá trị hạn mức được ghi cùng tenant.

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

    Giới hạn người dùng của nó

    Người dùng ACL chỉ có thể chạm tới các khóa dưới acme: và không thể chạy các lệnh nguy hiểm.

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

    Gắn người dùng với tenant

    Sổ đăng ký ghi lại người dùng nào thuộc tenant nào.

    TENANT.BIND acme acme-app
  4. 04

    Cô lập trong thực tế

    Ứng dụng của acme đọc các khóa của chính nó. Việc đọc khóa của globex bị ACL từ chối.

    GET globex:billing:plan
  5. 05

    Đọc bản ghi tenant

    Các giá trị hạn mức được ghi cho tenant. Trong bản phát hành này, bộ đếm mức sử dụng không được lưu lượng của client điền vào, nên chúng đọc ra 0.

    TENANT.STATS acme
Phù hợp ở đâu

Các tình huống thực tế

SaaS B2B

Dữ liệu cache và phiên của từng khách hàng nằm dưới tiền tố riêng trên một cụm dùng chung, được cô lập bằng ACL.

Agency và đại lý

Các dự án của khách hàng là tenant với người dùng riêng, nên quyền truy cập có thể được cấp và thu hồi theo từng khách hàng.

Tích hợp sẵn

Bạn nhận được gì

Cô lập theo mẫu khóa

Người dùng ACL bị giới hạn trong một tiền tố khóa và một tập lệnh.

ACL SETUSER

Sổ đăng ký tenant

Các tenant với tên, trạng thái, giá trị hạn mức và người dùng được gắn, giống nhau trên mọi node.

TENANT.CREATETENANT.BIND

Bản ghi tenant

Tên, trạng thái, giá trị hạn mức và người dùng được gắn của mỗi tenant.

TENANT.INFOTENANT.STATS

Khóa một tenant

Tắt các người dùng ACL của tenant.

ACL SETUSER off

Câu hỏi thường gặp

Các giá trị hạn mức có được thực thi không?

Không. Chúng được ghi lại và hiển thị trong TENANT.STATS, nhưng HotKV không thực thi chúng trên các lệnh, và bộ đếm mức sử dụng không được lưu lượng của client điền vào trong bản phát hành này. Việc cô lập đến từ các quy tắc ACL.

Tạm ngưng một tenant có chặn nó không?

TENANT.SUSPEND ghi lại một trạng thái cho công cụ của bạn. Để khóa người dùng của một tenant, hãy tắt họ bằng ACL SETUSER.

Gói nào bao gồm nó?

ACL hoạt động trên mọi gói. Sổ đăng ký tenant là một phần của gói Scale.

Trường hợp sử dụng liên quan

Thử trên khối lượng công việc của chính bạn

HotKV nói giao thức Redis, nên bạn có thể trỏ một client hiện có tới nó và chạy chính những lệnh này.