Dispatchers
Dispatchers 将 incremental(增量)策略更新传播到多个 enforcer 实例(例如集群)。它们使用一致性协议(例如 Raft),以便所有 enforcer 最终看到相同的策略。Casbin 的正常 API(AddPolicy, RemovePolicy 等)保持不变;dispatcher 向其他节点发送更新。
两部分组成:(1) Casbin 内部由 dispatcher 实现的钩子,以及 (2) dispatcher 特定的设置(例如集群成员资格、配置)。
备注
Dispatchers 仅同步初始化后的 changes(更改)。它们 不会 修复现有的分歧。在启用 dispatcher 之前,请确保所有 enforcer 以相同的策略启动(例如来自同一个数据库或快照)。
可用的 dispatchers:
| 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 封装了 SyncedEnforcer 以配合 dispatchers 使用。
e, _ := casbin.NewDistributedEnforcer("examples/basic_model.conf", "examples/basic_policy.csv")
Comments are powered by giscus and GitHub Discussions. They load from giscus.app and GitHub only after you click the button below.