주요 콘텐츠로 건너뛰기

Dispatchers

디스패처는 정책의 점진적인 변경을 동기화하는 방법을 제공합니다. 디스패처는 Raft와 같은 일관성 알고리즘을 기반으로 해야 모든 enforcer 인스턴스의 일관성을 보장할 수 있습니다. 디스패처를 통해 사용자는 쉽게 분산 클러스터를 구축할 수 있습니다.

디스패처의 방법은 두 부분으로 나뉩니다. 첫 번째 부분은 Casbin과 결합된 방법입니다. 이러한 방법은 Casbin 내부에서 호출되어야 합니다. 사용자는 Casbin 자체에서 제공하는 더 완벽한 API를 사용할 수 있습니다.

다른 부분은 디스패처 자체에서 정의한 방법으로, 디스패처 초기화 방법과 다른 알고리즘이 제공하는 다양한 기능, 예를 들어 동적 멤버십 및 구성 변경 등을 포함합니다.

노트

디스패처는 런타임에서 Casbin enforcer의 일관성만 보장하길 바랍니다. 따라서 초기화 중에 정책이 일관성이 없으면 디스패처는 제대로 작동하지 않습니다. 사용자는 디스패처를 사용하기 전에 모든 인스턴스의 상태가 일관되게 유지되도록 해야 합니다.

아래에 Casbin 디스패처의 전체 목록이 제공됩니다. 새로운 디스패처에 대한 제 3자의 기여는 언제나 환영입니다. 우리에게 알려주시면, 이 목록에 추가하겠습니다.

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")