Casbin

Casbin

  • Документ
  • API
  • Редактор
  • Плагины IDE
  • Single Sign-On (SSO)
  • Форум
  • Справка
  • Блог
  • Pricing
  • Contact Sales
  • Languages iconРусский
    • English
    • 中文
    • 한국어
    • Français
    • Deutsch
    • 日本語
    • Помочь перевести
  • GitHub

›Расширенное использование

Основы

  • Общий обзор
  • Начать работу
  • Как это работает
  • Уроки

Модель

  • Поддерживаемые модели
  • Синтаксис для моделей
  • Эффект
  • Функция
  • RBAC
  • RBAC with Pattern
  • RBAC с доменами
  • Casbin RBAC v.s. RBAC96
  • АДАТ
  • Приоритетная модель
  • Супер админ

Хранилище

  • Модель хранилища
  • Хранилище политики
  • Загрузка подмножества политик

Расширения

  • Enforcers
  • Адаптеры
  • Наблюдатели
  • Диспетчеры
  • Менеджеры ролей
  • Посредники
  • GraphQL Middlewares
  • Облачные Посредники

API

  • Обзор API
  • API управления
  • RBAC API
  • RBAC с доменным API
  • RoleManager API
  • Права доступа к данным

Расширенное использование

  • Многопоточность
  • Benchmarks
  • Оптимизация производительности
  • Авторизация Кубернетов
  • Авторизация служебной ячейки через посланника

Управление

  • Администратор портала
  • Служба Касбина
  • Обработка журнала и ошибок
  • Использование интерфейса

Редактор

  • Онлайн-редактор
  • Плагины IDE

Ещё

  • Наши усыновители
  • Вклад
  • Политика конфиденциальности
  • Условия предоставления услуг
Translate

Оптимизация производительности

Когда вы применяете в производственных условиях с миллионами пользователей или разрешений, вы можете столкнуться с понижением производительности в правоприменительной деятельности в Касбине, как правило, существуют две причины:

Высокое громкость трафика

Количество запросов в секунду слишком велико, например, 10 000 запросов/с для одного экземпляра Casbin. В таком случае одиночного экземпляра Касбина, как правило, недостаточно для обработки всех запросов. Существует 2 возможных решения:

  1. Используйте несколько нитей для включения нескольких экземпляров Касбин, так что вы можете в полной мере использовать все ядра на машине. Подробнее на сайте Многопоточность.

  2. Разверните экземпляры Casbin в кластер (несколько машин). Используйте Watcher для обеспечения согласованности всех случаев Касбина. Подробнее на сайте Наблюдатели.

::note Вы можете использовать вышеперечисленные методы как в то же время, например, установить Casbin в 10-машинный кластер. Каждая машина имеет пять потоков одновременно для обслуживания Касбин просьб о принудительной реализации. :::

Высокое количество правил политики

Миллионы правил политики могут потребоваться в облачной или многоквартирной среде. Каждый вызов или даже загрузка политических правил в первоначальное время является очень медленным. Такие случаи, как правило, могут быть смягчены несколькими способами:

  1. Ваша модель или политика Касбина не хорошо разработана. Хорошо написанная модель и политика будут абстрагировать дублированную логику для каждого пользователя/арендатора и уменьшить количество правил до очень небольшого уровня (< 100): e. ., вы можете поделиться некоторыми правилами по умолчанию для всех арендаторов и позволить пользователям изменить их правила позже. Настраиваемые правила могут переопределить правила по умолчанию. Если у вас все еще есть вопрос, пожалуйста, отправьте запрос GitHub в репозиторий Casbin.

  2. Делайте так, чтобы усилитель Касбина загружал только небольшой набор правил политики, напр. enforcer_0 служит только для арендатора от 0 до арендатора, 99, enforcer_1 служит только для арендатора от 100 до арендатора. Для загрузки только подмножества всех правил политики смотрите подробнее на сайте: Загрузка подмножества политик.

  3. Предоставить права доступа ролям RBAC вместо непосредственных пользователей. RBAC в Casbin's реализован с помощью дерева ролей в качестве кэша. Так что данный пользователь, как Alice, Casbin использует только O(1) время для запроса дерева RBAC для отношений между пользователями и выполнения правоприменения. Если ваши правила g не часто меняются, то обновление дерева RBAC не требуется. См. подробности на этом dicussion: https://github.com/casbin/casbin/issues/681#issuecomment-763801583

::note Вы можете попробовать все вышеперечисленные методы одновременно. :::

← BenchmarksАвторизация Кубернетов →
Casbin
Docs
Getting StartedManagement APIRBAC APIMiddlewares
Community
Who's using Casbin?Stack Overflow
Casbin          jCasbin
Node-Casbin   PHP-CasbinPyCasbin          Casbin.NETCasbin-CPP        Casbin-RS
Follow @casbinHQ
Copyright © 2022 Casbin Organization