基于ZooKeeper的Dubbo注册中心【转】
2019獨角獸企業重金招聘Python工程師標準>>>
Zookeeper注冊中心安裝
建議使用dubbo-2.3.3以上版本的zookeeper注冊中心客戶端。Zookeeper是Apache Hadoop的子項目,強度相對較好,建議生產環境使用該注冊中心。Dubbo未對Zookeeper服務器端做任何侵入修改,只需安裝原生的Zookeeper服務器即可,所有注冊中心邏輯適配都在調用Zookeeper客戶端時完成。
安裝:
? ?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的內容如下:(其中data目錄需改成你真實輸出目錄)
| tickTime=2000 initLimit=10 syncLimit=5 dataDir=/home/dubbo/zookeeper-3.3.3/data clientPort=2181 |
如果需要集群,zoo.cfg的內容如下:(其中data目錄和server地址需改成你真實部署機器的信息)
| 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,對應上面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"/> |
管理控制臺安裝
管理控制臺為內部裁剪版本,開源部分主要包含:路由規則,動態配置,服務降級,訪問控制,權重調整,負載均衡,等管理功能。
安裝:
| wget?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 |
wget?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.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選舉,分布式鎖等。
核心技術:Maven,Springmvc mybatis shiro, Druid, Restful, Dubbo, ZooKeeper,Redis,FastDFS,ActiveMQ,Nginx?
1.?????項目核心代碼結構截圖
?? 項目模塊依賴
?
特別提醒:開發人員在開發的時候可以將自己的業務REST服務化或者Dubbo服務化
2.????項目依賴介紹
???2.1?后臺管理系統、Rest服務系統、Scheculer定時調度系統依賴如下圖:
?
?????? 2.2?Dubbo獨立服務項目依賴如下圖:
?
3.??項目功能部分截圖:
?
?
?
?
?
?
?
zookeeper、dubbo服務啟動?
?
?
dubbo管控臺?
?
?
?
?
?
?
?REST服務平臺
?
?
?
轉載于:https://my.oschina.net/bngkjdnhfkjg/blog/775348
總結
以上是生活随笔為你收集整理的基于ZooKeeper的Dubbo注册中心【转】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【NOIP考前模拟赛】纯数学方法推导——
- 下一篇: 为提高研发和测试质量而规范Scrum项目