用LDAP/Directory 還是數據庫?

本質上來說, LDAP適合層次結構,並且特別注重讀取,查找速度,對寫速度要求不是特別高的數據存儲. 它有幾個特徵:

  1. 超快的讀取速度
  2. 相對靜態的數據, 這些數據的更新不能太頻繁, 例如存儲用戶的電話號碼(不能老改吧)
  3. 分佈式. 分佈式在這裏可以有兩種意思,第一種就是本身存儲的數據可以分佈在多個地方, 另外一種是將特定數據和應用解耦,這樣能夠成爲單點登陸的基礎.比如公司有好多需要驗證身份才能使用的應用, 每個應用應該把驗證獨立解耦,交給一箇中心化的地方來驗證, 那麼就有可能實現單點登陸, 這個驗證(比如用戶名,密碼,權限)可以使用LDAP和應用解耦.
  4. 層次結構, 數據具有層次的結構,能夠用層次結構表明數據的組織和關係
  5. 面向對象的, 在LDAP中的元素是對象化的
  6. 標準化的模式, 通過模式,你可以定義存儲數據的類和屬性.
  7. 支持多值屬性
  8. 支持多個主動複製, 允許同時對多個LDAP服務器進行數據鏡像

那麼,大家都拿LDAP幹什麼呢? LDAP在三個方面非常流行:

  1. 用於用戶的驗證,想象一下,如果每個應用都需要自行進行設計用戶表結構和驗證的痛苦.
  2. 用於用戶的授權
  3. 用於存儲用戶信息, 例如姓名,電話,地址,愛好等等. 這些信息通常每個應用都需要, 可以讓他們共享這個資源.

什麼情況下要用數據庫,而不是LDAP?

  1. 數據經常變化, 比如銀行賬戶中的數據
  2. 數據需要嚴格的事務處理保證原子性和一致性
  3. 數據的寫和讀取查找一樣重要或者更重要
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章