引言:html
根據公司項目計劃我先學習 dubbo+zookeeper 先不看JeeSite 企業信息管理系統基礎框架,後期本身跟進吧,iBase4J 先看這個。。。。。java
zookeeper :node
前言:算法
ZooKeeper 是一個開源的分佈式協調服務,由雅虎建立,是 Google Chubby 的開源實現。分佈式應用程序能夠基於 ZooKeeper 實現諸如數據發佈/訂閱、負載均衡、命名服務、分佈式協調/通知、集羣管理、Master 選舉、分佈式鎖和分佈式隊列等功能。-------->這句話我理解的是Zookeeper 是服務,數據庫
先學概念吧:我理解的分佈式:一個公司會大體分總裁 ,副總裁,經理 ,副經理,員工 等 這就是一個分佈式 。總裁把工做分步到各個下屬 ,下屬再往下分另外一個下屬,當合做公司須要東西就跟總裁要,總裁跟下屬要而總裁就是ZooKeeper。apache
ZooKeeper被設計用來存儲協調數據:狀態信息,配置,位置信息等。這種元信息一般是以千字節爲單位的,若是不是字節的話。網絡
ZooKeeper具備1M的內置完整性檢查,以防止它被用做大型數據存儲,但一般用於存儲更小的數據。架構
ZooKeeper 服務自己經過一組包含該服務的機器進行復制。這些機器在持久性存儲中維護數據樹的內存映像以及事務日誌和快照。因爲數據保存在內存中,ZooKeeper可以得到很是高的吞吐量和低延遲數量。內存數據庫的缺點是ZooKeeper能夠管理的數據庫的大小受限於內存。負載均衡
這個限制是進一步的緣由,以保持在znodes存儲的數據量小。框架
集羣角色:
ZooKeeper 有三種:Leader Follower Observer 。一個 ZooKeeper 集羣同一時刻只會有一個 Leader,其餘都是 Follower 或 Observer。
我邊安裝部署邊學吧:ZooKeeper的安裝包括單機模式安裝,以及集羣模式安裝。--->單機模式(stand-alone)、集羣模式和集羣僞分佈模式。
Zookeeper 能夠運行在多個系統平臺上,以下圖
系統 | 開發環境 | 生產環境 |
---|---|---|
Linux | 支持 | 支持 |
Solaris | 支持 | 支持 |
FreeBSD | 支持 | 支持 |
Windows | 支持 | 不支持 |
MacOS | 支持 | 不支持 |
ZooKeeper是用Java編寫的,運行在Java環境上,所以,在部署zk的機器上須要安裝Java運行環境。爲了正常運行zk,咱們須要JRE1.6或者以上的版本。 對於集羣模式下的ZooKeeper部署,3個ZooKeeper服務進程是建議的最小進程數量,並且不一樣的服務進程建議部署在不一樣的物理機器上面,以減小機器宕機帶來的風險,以實現ZooKeeper集羣的高可用。
我下載ZooKeeper 地址:http://mirrors.hust.edu.cn/apache/zookeeper
解壓後目錄:
好下面單機安裝:
是指只部署一個zk進程,客戶端直接與該zk進程進行通訊。上面提到,conf目錄下提供了配置的樣例zoo_sample.cfg,要將zk運行起來,須要將其名稱修改成zoo.cfg。打開後:
啓動:
在Windows環境下,進入到bin目錄,而且啓動zkServer.cmd,這個腳本中會啓動一個java進程
dubbo:是一個分佈式服務框架(按照分層的方式來架構)由阿里巴巴開源
Dubbo採用的是一種很是簡單的模型,要麼是提供方提供服務,要麼是消費方消費服務,因此基於這一點能夠抽象出服務提供方(Provider)和服務消費方(Consumer)兩個角色。
包括基於接口的遠程調用,容錯和負載均衡,以及自動服務註冊和發現。達博框架普遍應用於阿里巴巴內外,其餘公司包括京東,噹噹,qunar,kaola等。天天爲2千多個服務提供大於30億次訪問量支持,並被普遍應用於阿里巴巴集團的各成員站點以及別的公司的業務中。
Dubbo提供三個關鍵功能,
zookeeper至關一個文件系統,能夠用來存儲數據,所謂的註冊到zk上去,就是把接口信息寫到zk上去保存起來。經過命令能夠清楚看到dubbo其實把接口調用信息全都註冊到zk上了,經過咱們經過另外一個dubbo(註冊在相同的zk上)去消費,dubbo上記錄了接口的調用信息就能夠,經過這些信息去調用接口。能夠看到下面記錄哪一個IP,哪一個端口號。如下是我的理解:記錄的信息,其實zookeeper只負責註冊,調用方法是由dubbo去調就是zookeeper的配置管理功能體現。還有zookeeper在這裏還有負載均衡的體現,dubbo上有三個默認負載均衡算法,RandomLoadBalance(隨機算法),RoundRobinLoadBalance(輪詢算法),LeastActiveLoadBalance(最少活躍算法)。zookeeper將用你選擇的算法,爲你選擇一臺機器,所以zookeeper就幫你負載均衡了。