前言
關(guān)于ZooKeeper
,博主已完整的通過庖丁解牛式的“解法”
,完成了概述。我想掌握了這些基礎(chǔ)原理和概念后,工作的問題自然迎刃而解,甚至offer也可能手到擒來,真實一舉兩得,美極了。
為了更有直觀的體驗,強化概念,博主特別獻(xiàn)上一篇實踐文章。理論聯(lián)系實踐,才能學(xué)到真本領(lǐng)。
一、環(huán)境準(zhǔn)備
1. JDK
檢查自身測試環(huán)境,是否具備JDK,命令:java -version
,如返回如下圖所示,即已安裝;否則必須提前安裝:
2. ZK安裝包
可自行前往官網(wǎng)下載,如需請速戳:ZooKeeper最新安裝包。
二、安裝部署
1. 創(chuàng)建server
首先根據(jù)ZK的 ·奇數(shù)·(過半OK)
特性,我們需準(zhǔn)備3個server。當(dāng)然博主受限于資源數(shù)量,僅以一臺服務(wù)器為例,進(jìn)行集群搭建,所謂“偽分布式集群”
。
找一臺服務(wù)器,分別新建3個zkserver目錄,分別命名為:zkserver1、zkserver2、zkserver3。預(yù)期效果,如下圖所示:
2. 修改文件
2.1 zoo.cfg
上傳服務(wù)器后,第一件事,修改 zoo.cfg
如下:
tickTime=2000
initLimit=10
syncLimit=5
##########指定目錄###########
dataDir=/home/xxapp/zk/zkserver1/data
dataLogDir=/home/xxapp/zk/zkserver1/data/log
##########指定服務(wù)端口###########
clientPort=2281
##########指定管理端口###########
admin.serverPort=3281
##########指定集群端口###########
server.1=localhost:2881:3881
server.2=localhost:2882:3882
server.3=localhost:2883:3883
每個參數(shù)的含義如下:
參數(shù)名 | 參數(shù)簡介 |
---|---|
tickTime | ZK中的一個時間單元。ZK中所有時間都是以這個時間單元為基礎(chǔ) |
initLimit |
Leader 允許Follower 在initLimit 在完成數(shù)據(jù)同步,否則無法對外提供服務(wù) |
syncLimit |
Leader 通過syncLimit 檢測Follower 的存活,超時則認(rèn)為已宕機 |
dataDir | 存儲快照文件snapshot 的目錄。當(dāng)然默認(rèn)也存儲事務(wù)日志,建議使用dataLogDir
|
dataLogDir | 存儲事務(wù)日志的目錄 |
clientPort | ZK對外服務(wù)端口,默認(rèn)2181 |
Server.N | 設(shè)置集群信息,代表Server.myid = 集群節(jié)點IP : 與Leader交互接口 : 集群選舉接口
|
如此有了參照,可以copy 3份,數(shù)據(jù)目錄按序分別修改為server1、server2、server3,clientPort
與admin.serverPort
分別順序加1,集群端口配置必須保持相同。
2.2 創(chuàng)建myid文件
myid
文件用于指定每個server的編號(從1開始,順序遞增)。
命令:先touch
后 vi
,預(yù)期如下:
3. 修改防火墻
3.1 確認(rèn)是否已開啟防火墻
命令:systemctl status firewalld
,如下圖所示,代表已啟動。
3.2 端口放行
命令:firewall-cmd --zone=public --add-port=你的端口/tcp --permanent
,如下圖所屬,代表成功。
4. 啟動server
4.1 啟動zk
命令:zkServer.sh start
,預(yù)期效果如下,代表成功:
其他兩個server同理,按序啟動。
4.2 查看狀態(tài)
命令:zkServer.sh status
,預(yù)期效果如下,代表成功。
zkserver1:
zkserver2:
zkserver3:
4.3 注意事項
-
admin.serverPort
建議指定,默認(rèn)8080,否則端口占用; - server.N,在
“偽分布式集群”
中,所有server的交互端口和選舉端口,必須有所差異,否則端口占用;
結(jié)語
通過一文搭建ZooKeeper
集群,可以更好的理解它、掌握它。接下來可以基于集群進(jìn)行相關(guān)操作了。比如創(chuàng)建Znode,比如模擬宕機選舉、又比如模擬數(shù)據(jù)同步等場景。
好了,關(guān)于ZooKeeper
的總結(jié)和介紹到此為止,希望各位盆友有所收獲!文章來源:http://www.zghlxwxcb.cn/news/detail-809904.html
歷史回顧
- 微服務(wù)實戰(zhàn)系列之ZooKeeper(下)
- 微服務(wù)實戰(zhàn)系列之ZooKeeper(中)
- 微服務(wù)實戰(zhàn)系列之ZooKeeper(上)
- 微服務(wù)實戰(zhàn)系列之MQ
- 微服務(wù)實戰(zhàn)系列之通信
- 微服務(wù)實戰(zhàn)系列之J2Cache
- 微服務(wù)實戰(zhàn)系列之Cache(技巧篇)
- 微服務(wù)實戰(zhàn)系列之MemCache
- 微服務(wù)實戰(zhàn)系列之EhCache
- 微服務(wù)實戰(zhàn)系列之Redis
- 微服務(wù)實戰(zhàn)系列之Cache
- 微服務(wù)實戰(zhàn)系列之Nginx(技巧篇)
- 微服務(wù)實戰(zhàn)系列之Nginx
- 微服務(wù)實戰(zhàn)系列之Feign
- 微服務(wù)實戰(zhàn)系列之Sentinel
- 微服務(wù)實戰(zhàn)系列之Token
- 微服務(wù)實戰(zhàn)系列之Nacos
- 微服務(wù)實戰(zhàn)系列之Gateway
- 微服務(wù)實戰(zhàn)系列之加密RSA
- 微服務(wù)實戰(zhàn)系列之簽名Sign
文章來源地址http://www.zghlxwxcb.cn/news/detail-809904.html
到了這里,關(guān)于微服務(wù)實戰(zhàn)系列之ZooKeeper(實踐篇)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!