Lewati ke konten utama

Dispatchers

Dispatcher menyediakan cara untuk menyinkronkan perubahan inkremental dari kebijakan. Mereka harus didasarkan pada algoritma konsistensi seperti Raft untuk memastikan konsistensi semua instance penegak. Melalui dispatcher, pengguna dapat dengan mudah membentuk klaster terdistribusi.

Metode dispatcher dibagi menjadi dua bagian. Bagian pertama adalah metode yang digabungkan dengan Casbin. Metode ini harus dipanggil di dalam Casbin. Pengguna dapat menggunakan API yang lebih lengkap yang disediakan oleh Casbin itu sendiri.

Bagian lain adalah metode yang didefinisikan oleh dispatcher itu sendiri, termasuk metode inisialisasi dispatcher, dan fungsi-fungsi yang disediakan oleh algoritma yang berbeda, seperti keanggotaan dinamis dan perubahan konfigurasi.

catatan

Kami berharap dispatcher hanya memastikan konsistensi enforcer Casbin saat runtime. Jadi jika kebijakan tidak konsisten saat inisialisasi, dispatcher tidak akan bekerja dengan baik. Pengguna perlu memastikan bahwa keadaan semua instance konsisten sebelum menggunakan dispatcher.

Daftar lengkap dispatcher Casbin disediakan di bawah ini. Kontribusi pihak ketiga pada dispatcher baru sangat kami hargai. Harap beri tahu kami, dan kami akan menambahkannya ke dalam daftar ini.

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

DistributedEnforcer

DistributedEnforcer merangkum SyncedEnforcer untuk dispatcher.

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