Базові даніПлатформаПлан 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
Де це доречно

Реальні сценарії

B2B SaaS

Кеш і дані сесій кожного клієнта живуть під власним префіксом на спільному кластері, ізольовані через ACL.

Агенції та реселери

Клієнтські проєкти є тенантами з власними користувачами, тож доступ можна надавати й відкликати для кожного клієнта.

Вбудовано

Що ви отримуєте

Ізоляція за шаблоном ключів

Користувачі ACL, обмежені префіксом ключів і набором команд.

ACL SETUSER

Реєстр тенантів

Тенанти з назвами, станами, значеннями квот і прив'язаними користувачами, однаковий на кожному вузлі.

TENANT.CREATETENANT.BIND

Записи тенантів

Назва, стан, значення квот і прив'язані користувачі кожного тенанта.

TENANT.INFOTENANT.STATS

Заблокуйте тенанта

Вимкніть користувачів ACL тенанта.

ACL SETUSER off

Поширені запитання

Чи примусово застосовуються значення квот?

Ні. Вони записуються та показуються в TENANT.STATS, але HotKV не примушує їх до команд, а лічильники використання у цьому релізі не заповнюються клієнтським трафіком. Ізоляція походить від правил ACL.

Чи блокує призупинення тенанта?

TENANT.SUSPEND фіксує стан для ваших інструментів. Щоб заблокувати користувачів тенанта, вимкніть їх через ACL SETUSER.

Які плани це містять?

ACL працюють на кожному плані. Реєстр тенантів входить до плану Scale.

Пов'язані сценарії використання

Спробуйте на власному навантаженні

HotKV розмовляє протоколом Redis, тож ви можете направити на нього наявний клієнт і виконувати ті самі команди.