Vai al contenuto principale

Dispatchers

I dispatcher forniscono un modo per sincronizzare i cambiamenti incrementali delle politiche. Dovrebbero basarsi su algoritmi di consistenza come Raft per garantire la consistenza di tutte le istanze di enforcer. Attraverso i dispatcher, gli utenti possono facilmente stabilire cluster distribuiti.

Il metodo del dispatcher è diviso in due parti. La prima parte è il metodo combinato con Casbin. Questi metodi dovrebbero essere chiamati all'interno di Casbin. Gli utenti possono utilizzare l'API più completa fornita da Casbin stesso.

L'altra parte è il metodo definito dal dispatcher stesso, che include il metodo di inizializzazione del dispatcher e diverse funzioni fornite da diversi algoritmi, come ad esempio la membership dinamica e i cambiamenti di configurazione.

nota

Speriamo che i dispatcher assicurino solo la coerenza dell'enforcer di Casbin in fase di esecuzione. Quindi, se la politica è incoerente durante l'inizializzazione, i dispatcher non funzioneranno correttamente. Gli utenti devono garantire che lo stato di tutte le istanze sia coerente prima di utilizzare i dispatcher.

Di seguito è fornito un elenco completo dei dispatcher di Casbin. Qualsiasi contributo di terze parti su un nuovo dispatcher è benvenuto. Vi preghiamo di informarci, e lo aggiungeremo a questo elenco.

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

DistributedEnforcer

DistributedEnforcer racchiude SyncedEnforcer per il dispatcher.

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