Dispatchers
Les dispatchers fournissent un moyen de synchroniser les changements incrémentaux de politique. Ils devraient être basés sur des algorithmes de cohérence tels que Raft pour garantir la cohérence de toutes les instances de mise en application. Grâce aux dispatchers, les utilisateurs peuvent facilement établir des clusters distribués.
La méthode du dispatcher est divisée en deux parties. La première partie est la méthode combinée avec Casbin. Ces méthodes devraient être appelées à l'intérieur de Casbin. Les utilisateurs peuvent utiliser l'API plus complète fournie par Casbin lui-même.
L'autre partie est la méthode définie par le dispatcher lui-même, y compris la méthode d'initialisation du dispatcher, et différentes fonctions fournies par différents algorithmes, tels que l'adhésion dynamique et les changements de configuration.
Nous espérons que les dispatchers ne garantissent que la cohérence de l'exécuteur Casbin en temps réel. Donc, si la politique est incohérente lors de l'initialisation, les dispatchers ne fonctionneront pas correctement. Les utilisateurs doivent s'assurer que l'état de toutes les instances est cohérent avant d'utiliser les dispatchers.
Une liste complète des dispatchers Casbin est fournie ci-dessous. Toute contribution de tiers sur un nouveau dispatcher est la bienvenue. Veuillez nous en informer, et nous l'ajouterons à cette liste.
- 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 enveloppe SyncedEnforcer pour le dispatcher.
- Go
e, _ := casbin.NewDistributedEnforcer("examples/basic_model.conf", "examples/basic_policy.csv")