Dubbo-註冊中心zookeeper

一、zookeeper註冊中心

談zookeeper之前,感覺還是需要聊一聊分佈式。不然一個陌生的技術作用在哪裏就體現不出來了。
在實際項目開發中,一個系統肯定不止你一個人開發,那麼在多位軟件開發工程師一起協調合作,項目管理和項目開發的調配不好統一管理,這時候就產生分佈式系統,目前國內分佈式系統最火的依然是alibba的Dubbo框架 ,而zookeeper就是Dubbo的核心註冊中心
分佈式: 分佈式系統是若干獨立計算機(服務器) 的集合 這些計算機相對用戶來講就是一個獨立的系統。分佈式系統(distributed system)是建立在網絡之上的服務器端一種結構。

1.註冊中心

zookeeper是一個高性能、分佈式的開放的分佈式應用程序協調服務。
翻譯過來是動物管理員他是一個樹形結構。這種樹形結構和標準文件系統相似。ZooKeeper 樹中的每個節點被稱爲Znode。和文件系統的目錄樹一樣,ZooKeeper 樹中的每個節點可以擁有子節點。每個節點表示一個唯一服務資源。Zookeeper 運行需要 java 環境。

2、安裝配置zookeeper

進入官網 下載好壓縮包 zookeeper-3.5.4-beta.tar.gz
修改配置文件  zookeeper-3.5.4/conf/ 複製 zoo-sample.cfg 改名爲 zoo.cfg
因爲在zookeeper啓動時會首先尋找zoo.cfg文件 ,並修改幾個屬性值

在這裏插入圖片描述
1.tickTime 心跳時間
每隔tickTime時間間隔發送一個心跳。zookeeper服務器之間或客戶端與服務器之間的維持心跳
2.dataDir 數據目錄
3.clientPort 端口號 默認是2181

那麼如何將Zookeeper加入到我們的項目裏呢?


        <!--服務的名稱-->
        <dubbo:application name="zk-node-shop-web"/>

        <!--聲明dubbo註冊中心-->
        <dubbo:registry address="zookeeper://localhost:2181" />
        
         <dubbo:reference interface="com.bjpowernode.service.OrderService"
                id="remoteOrderService" check="false" retries="2" timeout="6000" />

        <dubbo:reference interface="com.bjpowernode.service.UserInfoService"
                         id="remoteUserService"
                         check="false"
                         retries="2"
                         timeout="6000"
                         version="1.0" />

        <!--聲明自定義時候showServiceImpl對象-->
        <bean id="showService" class="com.bjpowernode.service.impl.ShowServiceImpl">
                <property name="orderService" ref="remoteOrderService" />
                <property name="userInfoService" ref="remoteUserService" />
        </bean>

這是一個服務的消費者,可以看到我們需要聲明Dubbo服務的名稱,聲明zookeeper註冊中心。其中。 retries 表示重試的次數,這個次數不建議設的過大。一次或者兩次就好,重試成功的機會不大。timeout 失效時間 ,check 屬性 一般建議設置爲false.若爲true表示啓動時需要先啓動服務的提供者,在啓動服務的消費者 否則啓動報錯。version版本號。

   <!--設置服務名稱-->
    <dubbo:application name="zk-node-shop-userservice"></dubbo:application>

    <!--聲明註冊中心 dubbo:registry -->
    <dubbo:registry address="zookeeper://localhost:2181"></dubbo:registry>

    <!--聲明使用的協議-->
    <dubbo:protocol name="dubbo" port="20882" />

    <!--暴露接口,供消費者使用-->
    <dubbo:service interface="com.bjpowernode.service.UserInfoService"
                    ref="userService" version="1.0"/>

再看我們服務的提供者。我們服務的提供者需要暴露我們的服務接口。供消費者使用

運行應用
先啓動註冊中心,這個項目是在windows上,所以找到我們剛剛的安裝目錄,
在這裏插入圖片描述
雙擊運行我們的zkServer.cmd 出現一個dos窗口。這個窗口不要關閉,
第二步運行我們的服務提供者
最後開啓我們的服務的消費者,訪問的時候也是直接訪問我們的服務消費者

二、Dubbo監控中心

Dubbo監控中心在程序中不是非要不可的,在一個Dubbo項目中,只需要我們的註冊中心、服務提供者和服務的消費者即可
dubbo-admin
這是國內alibaba公司提供的一個分佈式項目管理工具。
下載監控中心,https://github.com/apache/incubator-dubbo-ops

運行監控中心的jar包
可以修改dubbo-properties文件,推薦不修改,直接使用默認配置即可

在這裏插入圖片描述

啓動
先啓動註冊中心zookeeper zkServer.cmd
執行服務提供者
運行監控中心 在所在目錄下執行cmd 窗口命令 java -jar xxx
在瀏覽器地址欄輸入 http;//localhost:7001
默認的用戶名和密碼都是root

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章