天天看點

Zookeeper 注冊中心安裝

Zookeeper注冊中心安裝

建議使用 dubbo-2.3.3 以上版本的 zookeeper 注冊中心用戶端。

Zookeeper 是 Apache Hadoop 的子項目,強度相對較好,建議生産環境使用該注冊中心。

Dubbo 未對 Zookeeper 伺服器端做任何侵入修改,隻需安裝原生的 Zookeeper 伺服器即可,

所有注冊中心邏輯适配都在調用 Zookeeper 用戶端時完成。

如果需要,可以考慮使用 taobao 的 zookeeper 監控:

    http://rdc.taobao.com/team/jm/archives/1450

安裝:

    http://www.apache.org/dist//zookeeper/zookeeper-3.3.3/zookeeper-3.3.3.tar.gz

配置: vi conf/zoo.cfg

 不需要叢集,zoo.cfg的内容如下:(其中data目錄需改成你真實輸出目錄)

    tickTime=2000

    initLimit=10

    syncLimit=5

    dataDir=/home/dubbo/zookeeper-3.3.3/data

    clientPort=2181

  需要叢集,zoo.cfg的内容如下:(其中data目錄和server位址需改成你真實部署機器的資訊)

    server.1=10.20.153.10:2555:3555

    server.2=10.20.153.11:2555:3555

    在data目錄下放置 myid 檔案:(上面zoo.cfg中的dataDir)

    mkdir data  ||   vi myid

        myid指明自己的id,對應上面zoo.cfg中server.後的數字,

        第一台的内容為1,第二台的内容為2,内容如下:1

啟動:    ./bin/zkServer.sh start

停止:    ./bin/zkServer.sh stop

指令行: (See: http://zookeeper.apache.org/doc/r3.3.3/zookeeperAdmin.html)

    telnet 127.0.0.1 2181

    dump

    或者

    echo dump | nc 127.0.0.1 2181

用法:

    dubbo.registry.address=zookeeper://10.20.153.10:2181?backup=10.20.153.11:2181

或者

    <dubbo:registryprotocol="zookeeper"address="10.20.153.10:2181,10.20.153.11:2181"/>

管理控制台安裝

    管理控制台為内部裁剪版本,開源部分主要包含:路由規則,動态配置,服務降級,通路控制,權重調整,負載均衡,等管理功能。

  tomcat安裝:

    http://apache.etoak.com/tomcat/tomcat-6/v6.0.35/bin/apache-tomcat-6.0.35.tar.gz

    tar zxvf apache-tomcat-6.0.35.tar.gz

    cd apache-tomcat-6.0.35

    rm -rf webapps/ROOT

 dubbo監控安裝:

    http://code.alibabatech.com/mvn/releases/com/alibaba/dubbo-admin/2.4.1/dubbo-admin-2.4.1.war

    unzip dubbo-admin-2.4.1.war -d webapps/ROOT

dubbo監控配置: (或将dubbo.properties放在目前使用者目錄下)

vi webapps/ROOT/WEB-INF/dubbo.properties

    dubbo.registry.address=zookeeper://127.0.0.1:2181

    dubbo.admin.root.password=root

    dubbo.admin.guest.password=guest

啟動: ./bin/startup.sh

停止: ./bin/shutdown.sh

通路: (使用者:root,密碼:root 或 使用者:guest,密碼:guest)

        http://127.0.0.1:8080/

注冊中心抽象

    Dubbo将注冊中心進行抽象,使得它可以外接不同的存儲媒介給注冊中心提供服務,

    有ZooKeeper,Memcached,Redis等。

    Dubbo抽象後,使用者可以進行擴充,我們通過分析 ZooKeeper 這個實作來了解注冊中心的低層。

    進過抽象之後,使用者 隻需要實作對應的 Registry 和 RegistryFactory 就可以了,

    ZooKeeper就是實作了 ZookeeperRegistry ,和 ZookeeperRegistryFactory。

    ZookeeperRegistryFactory 的實作很簡單,就是傳回一個 ZookeeperRegistry 執行個體,是以主要的東西是在 ZookeeperRegistry 中實作的,在 ZookeeperRegistry 使用者需要實作注冊 URL,登出 URL,URL 訂閱,URL 登出訂閱,URL 查詢,在這裡面設計到 Zookeeper 服務端的調用,都被封裝到ZookeeperClient 中,ZookeeperClient 服務進行 Server 連接配接,斷鍊;資源的CRUD。

ZooKeeper的價值

    由于引入了 ZooKeeper 作為存儲媒介,也就把 ZooKeeper 的特性引進來。

    負載均衡:單注冊中心的承載能力是有限的,在流量達到一定程度的時候就需要分流,負載均衡就是為了分流而存在的,一個 ZooKeeper 群配合相應的 Web 應用就可以很容易達到負載均衡;

    資源同步:單單有負載均衡還不夠,節點之間的資料和資源需要同步,ZooKeeper 叢集就天然具備有這樣的功能;

    命名服務:将樹狀結構用于維護全局的服務位址清單,服務提供者在啟動的時候,向ZK上的指定節點/dubbo/${serviceName}/providers目錄下寫入自己的URL位址,這個操作就完成了服務的釋出。

其他特性還有Mast選舉,分布式鎖等