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.
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.
- Go
Adapter | Type | Author | Description |
---|---|---|---|
Hashicorp Raft Dispatcher | Raft | Casbin | A dispatcher based on Hashicorp Raft |
KDKYG/casbin-dispatcher | Raft | @KDKYG | A dispatcher based on Hashicorp Raft |
DistributedEnforcer
DistributedEnforcer racchiude SyncedEnforcer per il dispatcher.
- Go
e, _ := casbin.NewDistributedEnforcer("examples/basic_model.conf", "examples/basic_policy.csv")