Dispatchers
Dispatchers ให้วิธีการที่จะประสานการเปลี่ยนแปลงนโยบายแบบ incremental พวกเขาควรจะพัฒนาบนอัลกอริทึมที่มีความสอดคล้อง เช่น Raft เพื่อให้แน่ใจว่าความสอดคล้องของทุก instances ของ enforcer ผ่าน dispatchers, ผู้ใช้สามารถสร้างคลัสเตอร์แบบกระจายได้อย่างง่ายดาย
วิธีการของ dispatcher ถูกแบ่งออกเป็นสองส่วน ส่วนแรกคือวิธีการที่รวมกับ Casbin วิธีการเหล่านี้ควรจะถูกเรียกใช้ภายใน Casbin ผู้ใช้สามารถใช้ API ที่สมบูรณ์ยิ่งขึ้นที่ Casbin มีให้
ส่วนอื่นคือวิธีการที่ถูกกำหนดโดย dispatcher เอง รวมถึงวิธีการเริ่มต้นใช้งาน dispatcher และฟังก์ชันที่แตกต่างกันที่อัลกอริทึมต่างๆ มีให้ เช่น การเปลี่ยนแปลงสมาชิกแบบไดนามิกและการเปลี่ยนแปลงการตั้งค่า
เราหวังว่า dispatchers จะเพียงแค่รับประกันความสอดคล้องของ Casbin enforcer ในระหว่างที่รันไทม์ ดังนั้นหากนโยบายไม่สอดคล้องกันในระหว่างการเริ่มต้นใช้งาน, dispatchers จะไม่ทำงานอย่างถูกต้อง ผู้ใช้จำเป็นต้องรับประกันว่าสถานะของทุก instances มีความสอดคล้องกันก่อนที่จะใช้ dispatchers
รายการเต็มของ Casbin dispatchers มีให้ด้านล่างนี้ การมีส่วนร่วมจากบุคคลที่สามใดๆ ในการพัฒนา dispatcher ใหม่นั้นได้รับการต้อนรับ กรุณาแจ้งให้เราทราบ และเราจะเพิ่มมันเข้าไปในรายการนี้
- 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 ห่อหุ้ม SyncedEnforcer สำหรับ dispatcher
- Go
e, _ := casbin.NewDistributedEnforcer("examples/basic_model.conf", "examples/basic_policy.csv")