1. 程式人生 > >05. CouchBase常用術語解釋-CouchBase從0到50

05. CouchBase常用術語解釋-CouchBase從0到50

到目前為止我們已經搭建起來一套CouchBase叢集,並且可以通過介面進行基本的操作。從這一節開始,主要是講解CouchBase的架構原理。我一直覺得學習開源軟體不是學習這套軟體怎麼安裝配置和使用,更重要的是要學習到軟體的原理,架構和程式碼實現。尤其是自定而下,從設計原則,指導思想到具體的架構,元件功能劃分,最後到程式碼的具體實現。
如果只是瞭解CouchBase的安裝配置方法,實在是有點太過於淺薄。
網際網路行業實在飛速發展的,各種效能一代強過一代的開源軟體層出不窮,只是疲於奔命的去了解軟體的安裝配置方法實在算不上是一個好的方法,反而如果能夠了解學習吸收到軟體背後的設計思想和架構原理,那麼不管開源軟體如何迭代,也能輕易的掌握其本質。
就跟現在的計算機飛快發展,但是其背後的馮·諾依曼體系結構永遠是不變的核心。
Image result for couchbase

下面瞭解CouchBase中所使用到的一些關鍵術語

  • Data:我們要儲存的資料,在Couchbase中一條資料就是一個item。每個item都是k,v結構的,包含一個value以及用來查詢value的key。value可以是二進位制也可以是json文件。
  • Buckets, Memory, and Storage:Buckets直譯為桶,是couchbase中組織資料的一種方式,類似於關係資料庫中的database。couchbase中item儲存在Bucket中。注意其中並沒有table的概念。Bucket是儲存在記憶體中的,視Bucket型別的不同,也有可能持久化到硬碟中。
    • Couchbase型別:儲存到記憶體和硬碟中
    • Ephemeral型別:只儲存到記憶體中,Couchbase特有。
    • Memcached型別:相容Memcached協議,只儲存到記憶體中。
  • Services:資料已經儲存起來了,同樣也需要外界查詢,而分散式部署的不同型別的service支援不同的查詢方式。例如Data Service可以允許通過key來獲取value,Query Service可以允許通過類sql的查詢語言來獲取結果,並且這些Service是可以獨立的部署在不同的節點上的。
  • Indexes:Index索引資料允許高速的訪問資料。
  • Server:一臺couchbase節點被稱之為Server
  • Cluster:多個Server節點組合成為一個Cluster,例如我們前面的3臺機器就是組合成為了一個叢集
  • Security:CouchBase基於RDBC策略的許可權控制在靈活性和安全性有一個良好的平好,還包括ssl加密和3A認證。
  • Rebalance:data和index在叢集內多個節點之間重新負載均衡的過程。任何叢集配置的變動都最好做一次Rebalance,需要手動觸發。
  • Availability:高可用措施
    • 備份和還原
    • XDCR:跨叢集複製
    • Data Recovery:某個節點故障了,恢復後資料從本地恢復或者從其他的節點獲取最新的資料
    • Intra-Cluster Replication:叢集內部的資料複製
  • Services:
    • Analytics:提供join,set,aggregation和group之類的操作,這類操作往往是大資料量,執行時間長,資源消耗多
    • Data:通過key來獲取value
    • Eventing:提供即時操作,近乎實時的對資料進行操作
    • Query:提供類sql的查詢
    • Search:專門為全文搜尋建立索引,全文搜尋可以用於自然語言搜尋
    • Index:為Analytics和Query建立索引
  • Scaling:根據工作負載進行橫向擴容,例如某個元件要承擔較重的負載就可以在多個節點上部署該服務
  • Tools:提供各種工具用於叢集管理
    • CLI:命令列工具
    • Web Console:我們之前已經看過的管理介面
    • REST API:通過api進行管理
  • SDK:couchbase也提供了各種語言的sdk,直接接入進sdk就可以使用couchbase了

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">