Zookeeper注冊(cè)中心安裝
建議使用dubbo-2.3.3以上版本的zookeeper注冊(cè)中心客戶(hù)端。Zookeeper是Apache Hadoop的子項(xiàng)目,強(qiáng)度相對(duì)較好,建議生產(chǎn)環(huán)境使用該注冊(cè)中心。Dubbo未對(duì)Zookeeper服務(wù)器端做任何侵入修改,只需安裝原生的Zookeeper服務(wù)器即可,所有注冊(cè)中心邏輯適配都在調(diào)用Zookeeper客戶(hù)端時(shí)完成
安裝:
tar zxvf zookeeper-3.3.3.tar.gz
cd zookeeper-3.3.3
cp conf/zoo_sample.cfg conf/zoo.cfg
配置:
vi conf/zoo.cfg
如果不需要集群,zoo.cfg的內(nèi)容如下:(其中data目錄需改成你真實(shí)輸出目錄)
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/dubbo/zookeeper-3.3.3/data
clientPort=2181
如果需要集群,zoo.cfg的內(nèi)容如下:(其中data目錄和server地址需改成你真實(shí)部署機(jī)器的信息)
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/dubbo/zookeeper-3.3.3/data
clientPort=2181
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,對(duì)應(yīng)上面zoo.cfg中server.后的數(shù)字,第一臺(tái)的內(nèi)容為1,第二臺(tái)的內(nèi)容為2,內(nèi)容如下:
1
啟動(dòng):
./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
或者
管理控制臺(tái)安裝
管理控制臺(tái)為內(nèi)部裁剪版本,開(kāi)源部分主要包含:路由規(guī)則,動(dòng)態(tài)配置,服務(wù)降級(jí),訪問(wèn)控制,權(quán)重調(diào)整,負(fù)載均衡,等管理功能。
安裝:
wgethttp://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
wgethttp://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
配置:(或?qū)ubbo.properties放在當(dāng)前用戶(hù)目錄下)
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
啟動(dòng):
./bin/startup.sh
停止:
./bin/shutdown.sh
訪問(wèn):(用戶(hù):root,密碼:root 或 用戶(hù):guest,密碼:guest)
注冊(cè)中心抽象
Dubbo的將注冊(cè)中心進(jìn)行抽象,是得它可以外接不同的存儲(chǔ)媒介給注冊(cè)中心提供服務(wù),有ZooKeeper,Memcached,Redis等。Dubbo抽象后,用戶(hù)可以進(jìn)行擴(kuò)展,我們通過(guò)分析ZooKeeper這個(gè)實(shí)現(xiàn)來(lái)了解注冊(cè)中心的低層。進(jìn)過(guò)抽象之后,用戶(hù) 只需要實(shí)現(xiàn)對(duì)應(yīng)的Registry和RegistryFactory就可以了,ZooKeeper就是實(shí)現(xiàn)了ZookeeperRegistry,和ZookeeperRegistryFactory。
ZookeeperRegistryFactory的實(shí)現(xiàn)很簡(jiǎn)單,就是返回一個(gè)ZookeeperRegistry實(shí)例,所以主要的東西是在ZookeeperRegistry中實(shí)現(xiàn)的,在ZookeeperRegistry用戶(hù)需要實(shí)現(xiàn)注冊(cè)URL,注銷(xiāo)URL,URL訂閱,URL注銷(xiāo)訂閱和URL查詢(xún),在這里面設(shè)計(jì)到Zookeeper服務(wù)端的調(diào)用,都被封裝到ZookeeperClient中,ZookeeperClient服務(wù)進(jìn)行Server連接,斷鏈;資源的CRUD。
ZooKeeper的價(jià)值
由于引入了ZooKeeper作為存儲(chǔ)媒介,也就把ZooKeeper的特性引進(jìn)來(lái)。首先是負(fù)載均衡,單注冊(cè)中心的承載能力是有限的,在流量達(dá)到一定程度的時(shí)候就需要分流,負(fù)載均衡就是為了分流而存在的,一個(gè)ZooKeeper群配合相應(yīng)的Web應(yīng)用就可以很容易達(dá)到負(fù)載均衡;資源同步,單單有負(fù)載均衡還不夠,節(jié)點(diǎn)之間的數(shù)據(jù)和資源需要同步,ZooKeeper集群就天然具備有這樣的功能;命名服務(wù),將樹(shù)狀結(jié)構(gòu)用于維護(hù)全局的服務(wù)地址列表,服務(wù)提供者在啟動(dòng)的時(shí)候,向ZK上的指定節(jié)點(diǎn)/dubbo/${serviceName}/providers目錄下寫(xiě)入自己的URL地址,這個(gè)操作就完成了服務(wù)的發(fā)布。其他特性還有Mast選舉,分布式鎖等。
核心技術(shù):Maven,Springmvc mybatis shiro, Druid, Restful, Dubbo, ZooKeeper,Redis,FastDFS,ActiveMQ,Nginx
1.?????項(xiàng)目核心代碼結(jié)構(gòu)截圖

項(xiàng)目模塊依賴(lài)

特別提醒:開(kāi)發(fā)人員在開(kāi)發(fā)的時(shí)候可以將自己的業(yè)務(wù)REST服務(wù)化或者Dubbo服務(wù)化
2.????項(xiàng)目依賴(lài)介紹
2.1?后臺(tái)管理系統(tǒng)、Rest服務(wù)系統(tǒng)、Scheculer定時(shí)調(diào)度系統(tǒng)依賴(lài)如下圖:

2.2?Dubbo獨(dú)立服務(wù)項(xiàng)目依賴(lài)如下圖:

3.??項(xiàng)目功能部分截圖:







zookeeper、dubbo服務(wù)啟動(dòng)


dubbo管控臺(tái)







REST服務(wù)平臺(tái)



