剛工做第一天就讓搞dubbokepper,根本不知道是什麼東西,讓弄的時候一臉懵逼,因此分享一下我作的dubbokepper的經驗,但願能幫到那些一樣苦逼的孩子們!前端
開篇
對於dubbokeeper來講咱們要先了解一下什麼是dubbo和zookeeper所以咱們先按順序開始java
首先要聲明一個事情:dubbokepper不是dubbo和zookeeper整合而是一個單獨的管理他們的工具吧,應該能夠這麼理解,舉個例子至關於java和javaScript,並且dubbo是阿里巴巴出 的,zookeeper 是雅虎出的!弄明白這個咱們繼續往下看.mysql
Dubbo是什麼
是一個分佈式服務框架,致力於提供高性能和透明化的RPC遠程服務調用方案,以及SOA服務治理方案。
其核心部分包含:
遠程通信: 提供對多種基於長鏈接的NIO框架抽象封裝,包括多種線程模型,序列化,以及「請求-響應」模式的信息交換方式。
集羣容錯: 提供基於接口方法的透明遠程過程調用,包括多協議支持,以及軟負載均衡,失敗容錯,地址路由,動態配置等集羣支持。
自動發現: 基於註冊中心目錄服務,使服務消費方能動態的查找服務提供方,使地址透明,使服務提供方能夠平滑增長或減小機器。
Dubbo能作什麼
透明化的遠程方法調用,就像調用本地方法同樣調用遠程方法,只需簡單配置,沒有任何API侵入。
軟負載均衡及容錯機制,可在內網替代F5等硬件負載均衡器,下降成本,減小單點。
服務自動註冊與發現,再也不須要寫死服務提供方地址,註冊中心基於接口名查詢服務提供者的IP地址,而且可以平滑添加或刪除服務提供者。
Dubbo怎麼用
詳情請看官網 http://dubbo.io/Home-zh.htm
什麼是Zookeeper
zookeeper是Hadoop的子項目,主要功能基於paxos算法對分佈式系統的請求進行調度,詳細介紹
http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/
Zookeeper能作什麼
它主要是用來解決分佈式應用中常常遇到的一些數據管理問題,如:統一命名服務、狀態同步服務、集羣管理、分佈式應用配置項的管理等。
Zookeeper怎麼用
http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/ 這裏有他的安裝及用法
Dubbokeeper是什麼
dubbokeeper是一個開源版本基於spring mvc開發的社區版dubboadmin,
同時修復了官方admin存在的一些問題,以及添加了一下必要的功能 例如服務統計,
依賴關係等圖表展現功能,當前dubbokeeper還屬於開發階段。
最終dubbokeeper會集成服務管理以及服務監控一體的DUBBO服務管理系統
Dubbokeeper包含的功能
1.應用管理
包含當前系統全部子應用信息列表,以及各個引用服務引用消費列表信息,
同時能夠對某個應用的服務進行上下線操做,權重調整等,同時能夠查看應用部署實體信息列表。
目的是實現服務的可管理
2.動態配置
這是利用dubbo基於註冊中心來管理服務實現對服務的參數在服務運行狀態進行調整,好比對服務的超時時間調整,
對服務的mock以及能夠添加自定義參數的調整等,目的是服務的可配置。
3.統計信息
除了對服務的可管理,可配置。同時經過圖表的方式對服務相關信息進行統計,
例如對總體系統的應用暴露,消費服務統計信息,應用依賴關係圖信息等
4.Dubbo服務監控
經過擴展dubbo提供的MonitorService接口來實現對服務的監控,因爲官方版本的監控功能比較侷限,
因此將經過收集各方意見從新開發一套監控系統,從而能夠實時對服務可控。
5.zookeeper信息查看
經過配置zookeeper地址,能夠查看多個zookeeper中的節點信息
1.0.1版本變更內容
dubbokeeper在1.0.1版本對監控數據存儲模塊抽離出來,作爲單獨的應用部署,而不是和1.0.0版本和前端展現集成在一個應用裏面
在1.0.0版本中暫時提供了mysql以及1.0.0中已有的lucene存儲
這樣作的目的是使得dubbokeeper的監控數據收集端可以集羣部署(使用lucene,將不支持集羣部署,若是使用lucene存儲,須要jdk1.7+)
因此1.0.1之後的版本,對dubbokeeper的部署將包含兩部分,一部分是監控數據存儲端以及另外一部分是監控數據展現的部署linux
dubbokepper的部署過程
1.下載源碼 git clone https://github.com/dubboclub/dubbokeeper.git (注:剛開始還有點懵逼,其實就是dubbokepper的源碼,只不過讓你改點參數而已)
2.編譯打包
首先咱們從github上clone下來一份到eclipse的工做空間中,而後能夠執行不一樣的install-xxx.bat(sh){這裏的bat是指在windows下運行的sh是在linux下運行的},這個能夠根據你想要的不一樣存儲執行對應的腳本。以下圖
執行完以後在target目錄下面會發現xxx-dubbokeeper-ui,xxx-dubbokeeper-server以及xxx-dubbokeeper-server.tar.gz
其中xxx-dubbokeeper-ui下會有一個war包,將該war包部署到tomcat或者jetty裏面(或者其餘servlet容器),那麼就部署好了監控展現應用了
3.記得在部署war包以前沒有zookeeper的先下載安裝後啓動了zookeeper和tomcat服務器以後才能在頁面顯示出來
4.關於監控數據暫時端調整配置
對上面的war包解壓出來後對其中WEB-INF/classes/dubbo.properties文件中的配置項進行調整。
#monitor的應用名,可根據本身狀況自定義
dubbo.application.name=monitor-ui
#應用的擁有者
dubbo.application.owner=bieber
#鏈接的dubbo註冊中心地址,保持部署監控數據存儲的zk地址同樣
dubbo.registry.address=zookeeper://localhost:2181
#use netty4
dubbo.reference.client=netty4
#peeper config
#監控的zookeeper鏈接列表,多個經過‘,’(英文逗號)隔開。
peeper.zookeepers=localhost:2181
#監控的zookeeper鏈接會話超時時間
peeper.zookeeper.session.timeout=60000
#被監控端同步監控數據週期時間,可不配置,默認是一分鐘同步一次
monitor.collect.interval=60000
#logger
#dubbokeeper的日誌目錄
monitor.log.home=/usr/dev/op_disk/monitor-log
5.調用192.168.1.133的ip地址 (這是咱們公司的你的按你本身的需求來,默認是220)
首先打開dubbokeeper-ui目錄下的dubbo.properties將配置文件裏面的配置改成以下
#dubbo的應用名稱
dubbo.application.name=common-monitor
#dubbo的應用者
dubbo.application.owner=bieber
#dubbo的註冊中心地址,保存和被監控應用一個註冊中心(這裏的端口號注意要是目標機器存在的端口號)
dubbo.registry.address=zookeeper://192.168.1.133:2181
#use netty4
dubbo.reference.client=netty4
#peeper config
#監控的zookeeper鏈接列表,多個經過‘,’(英文逗號)隔開。
peeper.zookeepers=192.168.1.133:2181
#被監控端同步監控數據週期時間,可不配置,默認是一分鐘同步一次
peeper.zookeeper.session.timeout=60000
#logger
monitor.log.home=/monitor-log
monitor.collect.interval=1000
從新部署更新後的war包到tomcat服務器下,打開服務器而後就能正常鏈接進入dubbokeeper了git
到這裏就完了,dubbokepper就搭建好能正常跑了github
不過咱們還要鏈接數據庫接着就今天又順便經過client鏈接192.168.1.224會話安裝部署了tomcat和mysql數據庫,算法
還有把mysql數據庫轉換成orcle數據庫還沒作,不過應該不難了,若有疑難點會有後續更新...spring