SpringBoot+zk+dubbo架構實踐(一):本地部署zookeeper

SpringBoot+zk+dubbo架構實踐(一):本地部署zookeeper

SpringBoot+zk+dubbo架構實踐系列實現目標

  1. 本地部署zookeeper
  2. SpringBoot 集成 zookeeper
  3. Dubbo-admin管理平臺安裝
  4. SpringBoot+ zookeeper +dubbo 框架搭建
  5. 架構業務實踐(實現電商部分業務)

備註:本系列偏向於動手實踐,不講太多理論。

前言

本文操作都是在Mac上進行的,如果大家用的windows 可以相對應的進行修改一下。

下載zookeeper

首先去官網下載zookeeper包,這裡使用3.4.12版本(也可以選擇其他的),在這裡下載:http://apache.claz.org/zookeeper/zookeeper-3.4.12/

下載並解壓,目錄如下圖所示:

SpringBoot+zk+dubbo架構實踐(一):本地部署zookeeper

下載後在本地解壓,進入zookeeper-3.4.12/conf目錄下,將zoo_sample.cfg文件改名為zoo.cfg,再用文本編輯器打開這個文件,修改如下紅框位置的內容,改成本地一個可以訪問的已有目錄:

SpringBoot+zk+dubbo架構實踐(一):本地部署zookeeper

備註:如果是windows可以選擇磁盤路徑

打開命令行窗口,進入zookeeper-3.4.12/bin目錄,執行命令:

mac/linux :./zkServer.sh status
windows:zkServer.cmd status

查看當前zookeeper的運行狀態,如下圖所示,是沒有啟動的信息

xx:bin lin$ ./zkServer.sh status
ZooKeeper JMX enabled by defaultUsing config: /Users/lin/Documents/temp/zookeeper-3.4.12 2/bin/../conf/zoo.cfgError contacting service. It is probably not running.

執行命令啟動zookeeper命令

mac/linux :./zkServer.sh start
windows:zkServer.cmd start

控制檯輸出如下信息說明zookeeper啟動成功

xxx:bin lin$ ./zkServer.sh start
ZooKeeper JMX enabled by defaultUsing config: /Users/lin/Documents/temp/zookeeper-3.4.12 2/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

控制檯輸入zkServer.cmd status 查看啟動結果:

xxx:bin lin$ ./zkServer.sh status
ZooKeeper JMX enabled by defaultUsing config: /Users/lin/Documents/temp/zookeeper-3.4.12 2/bin/../conf/zoo.cfg
Mode: standalone

如上所示zookeeper正在以standalone模式運行中;

接下來用客戶端命令來鏈接服務端,執行如下命令:

mac/linux :./zkCli.sh
windows:zkCli.cmd

查看一下控制檯輸出結果:

xxx:bin lin$ ./zkCli.sh 

Connecting to localhost:21812018-05-25 17:27:58,908 [myid:] - INFO [main:Environment@100] - Client environment:zookeeper.version=3.4.12-e5259e437540f349646870ea94dc2658c4e44b3b, built on 03/27/2018 03:55 GMT2018-05-25 17:27:58,914 [myid:] - INFO [main:Environment@100] - Client environment:host.name=192.168.2.162018-05-25 17:27:58,914 [myid:] - INFO [main:Environment@100] - Client environment:java.version=1.8.0_912018-05-25 17:27:58,916 [myid:] - INFO [main:Environment@100] - Client environment:java.vendor=Oracle Corporation2018-05-25 17:27:58,916 [myid:] - INFO [main:Environment@100] - Client environment:java.home=/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home/jre2018-05-25 17:27:58,917 [myid:] - INFO [main:Environment@100] - Client environment:java.class.path=/Users/lin/Documents/temp/zookeeper-3.4.12 2/bin/../build/classes:/Users/lin/Documents/temp/zookeeper-3.4.12 2/bin/../build/lib/*.jar:/Users/lin/Documents/temp/zookeeper-3.4.12 2/bin/../lib/slf4j-log4j12-1.7.25.jar:/Users/lin/Documents/temp/zookeeper-3.4.12 2/bin/../lib/slf4j-api-1.7.25.jar:/Users/lin/Documents/temp/zookeeper-3.4.12 2/bin/../lib/netty-3.10.6.Final.jar:/Users/lin/Documents/temp/zookeeper-3.4.12 2/bin/../lib/log4j-1.2.17.jar:/Users/lin/Documents/temp/zookeeper-3.4.12 2/bin/../lib/jline-0.9.94.jar:/Users/lin/Documents/temp/zookeeper-3.4.12 2/bin/../lib/audience-annotations-0.5.0.jar:/Users/lin/Documents/temp/zookeeper-3.4.12 2/bin/../zookeeper-3.4.12.jar:/Users/lin/Documents/temp/zookeeper-3.4.12 2/bin/../src/java/lib/*.jar:/Users/lin/Documents/temp/zookeeper-3.4.12 2/bin/../conf:2018-05-25 17:27:58,917 [myid:] - INFO [main:Environment@100] - Client environment:java.library.path=/Users/lin/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.2018-05-25 17:27:58,917 [myid:] - INFO [main:Environment@100] - Client environment:java.io.tmpdir=/var/folders/cf/q_dg400d5ql4vxlv7c4h_qvm0000gn/T/2018-05-25 17:27:58,917 [myid:] - INFO [main:Environment@100] - Client environment:java.compiler=2018-05-25 17:27:58,917 [myid:] - INFO [main:Environment@100] - Client environment:os.name=Mac OS X2018-05-25 17:27:58,917 [myid:] - INFO [main:Environment@100] - Client environment:os.arch=x86_642018-05-25 17:27:58,917 [myid:] - INFO [main:Environment@100] - Client environment:os.version=10.11.32018-05-25 17:27:58,918 [myid:] - INFO [main:Environment@100] - Client environment:user.name=lin2018-05-25 17:27:58,918 [myid:] - INFO [main:Environment@100] - Client environment:user.home=/Users/lin2018-05-25 17:27:58,918 [myid:] - INFO [main:Environment@100] - Client environment:user.dir=/Users/lin/Documents/temp/zookeeper-3.4.12 2/bin2018-05-25 17:27:58,919 [myid:] - INFO [main:ZooKeeper@441] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@5a2e4553
Welcome to ZooKeeper!2018-05-25 17:27:58,944 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1028] - Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)
JLine support is enabled2018-05-25 17:27:59,022 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@878] - Socket connection established to localhost/127.0.0.1:2181, initiating session2018-05-25 17:27:59,056 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1302] - Session establishment complete on server localhost/127.0.0.1:2181, sessionid = 0x100448cddc80000, negotiated timeout = 30000[zk: localhost:2181(CONNECTED) 0]
WATCHER::
WatchedEvent state:SyncConnected type:None path:null

好了客戶端鏈接上服務器端了。

創建znode節點,執行命令

#創建一個zone節點node_1 對應的value值為“abc”
create /node_1 abc
#控制檯輸出
[zk: localhost:2181(CONNECTED) 5] create /node_1 abc
Created /node_1

查詢創建的znode 節點

#創建一個zone節點node_1 對應的value值為“abc”
get /node_1#控制檯輸出
[zk: localhost:2181(CONNECTED) 6] get /node_1
abc
cZxid = 0x9
ctime = Fri May 25 19:00:02 CST 2018
mZxid = 0x9
mtime = Fri May 25 19:00:02 CST 2018
pZxid = 0x9
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0

zookeeper 常用命令總結

#服務命令
1. 啟動ZK服務: sh bin/zkServer.sh start
2. 查看ZK服務狀態: sh bin/zkServer.sh status
3. 停止ZK服務: sh bin/zkServer.sh stop
4. 重啟ZK服務: sh bin/zkServer.sh restart
#客戶端命令
1. 顯示根目錄下、文件: ls / 使用 ls 命令來查看當前 ZooKeeper 中所包含的內容
2. 顯示根目錄下、文件: ls2 / 查看當前節點數據並能看到更新次數等數據
3. 創建文件,並設置初始內容: create /node_1 "test" 創建一個新的 znode節點“ node_1 ”以及與它關聯的字符串
4. 獲取文件內容: get /node_1 確認 znode 是否包含我們所創建的字符串
5. 修改文件內容: set /node_1 "zkbak" 對 zk 所關聯的字符串進行設置
6. 刪除文件: delete /node_1 將剛才創建的 zone 刪除
7. 退出客戶端: quit
8. 幫助命令: help

關注我們

更多精彩內容請關注“IT實戰聯盟”,也可以加入交流群和作者互撩哦~~~


分享到:


相關文章: