Перейти к основному контенту

Dispatchers

Диспетчеры предоставляют способ синхронизации постепенных изменений политики. Они должны быть основаны на алгоритмах согласованности, таких как Raft, чтобы обеспечить согласованность всех экземпляров enforcer. Через диспетчеров пользователи могут легко создавать распределенные кластеры.

Метод диспетчера разделен на две части. Первая часть - это метод, объединенный с Casbin. Эти методы должны вызываться внутри Casbin. Пользователи могут использовать более полный API, предоставляемый самим Casbin.

Другая часть - это метод, определенный самим диспетчером, включая метод инициализации диспетчера и различные функции, предоставляемые различными алгоритмами, такими как динамическое членство и изменения конфигурации.

заметка

Мы надеемся, что диспетчеры обеспечивают только согласованность Casbin enforcer во время выполнения. Так что, если политика несогласована во время инициализации, диспетчеры не будут работать должным образом. Пользователям нужно обеспечить согласованность состояния всех экземпляров перед использованием диспетчеров.

Ниже представлен полный список диспетчеров Casbin. Любые вклады от сторонних разработчиков в новый диспетчер приветствуются. Пожалуйста, сообщите нам, и мы добавим его в этот список.

AdapterTypeAuthorDescription
Hashicorp Raft DispatcherRaftCasbinA dispatcher based on Hashicorp Raft
KDKYG/casbin-dispatcherRaft@KDKYGA dispatcher based on Hashicorp Raft

DistributedEnforcer

DistributedEnforcer оборачивает SyncedEnforcer для диспетчера.

    e, _ := casbin.NewDistributedEnforcer("examples/basic_model.conf", "examples/basic_policy.csv")