Zookeeper服務註冊與發現實戰
阿新 • • 發佈:2021-01-04
前期工作需要在linux系統中構建jdk環境以及Zookeeper的安裝,其中linux我選擇的作業系統是Centos7,jdk版本如下:
關於Zookeeper的版本,我這裡使用的是3.5.8
這邊簡短介紹一下Zookeeper的一些命令列操作:
建立命令(create):
- 建立持久化有序節點:create -s /a “aaa”
create -s /b “bbb” - 建立臨時節點:create -e /tmp “tmp”
- 建立臨時有序節點:create -s -e /aa ‘aaa’
create -s -e /bb ‘bbb’
獲取命令(get):
- 獲取節點內容:get /a
修改節點(set):
- set /tmp “dad”
監聽器(get path [watch])
授權(acl):
- setAcl
- getAcl
- addauth
為了能夠使我們的當前使用者能夠連線到linux伺服器中,我們需要關閉linux的防火牆
systemctl stop firewalld
並且確保伺服器連線到了網路,具體測試方法可以在終端輸入
ping www.baidu.com
如果可以間斷性獲得訊息傳送則確定網路已連線
接下來我們開啟idea,建立maven module,並且在pom檔案中寫入依賴
<dependencies>
< dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.atguigu.springcloud</groupId>
<artifactId >cloud-api-commons</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
</dependency>
</dependencies>
之後的具體controller和main class中的程式碼可以參考我的程式碼倉庫:
server部分程式碼
接下來我們進入到伺服器終端,開啟zkServer
./zkServer.sh start
並且開啟zkClient
./zkCli.sh
當我們輸入一下命令時,會得到payment節點註冊(該節點是臨時節點,而非持久節點)
其中開啟網頁測試server節點,結果如下
如此可以確定我們的伺服器端註冊已經完成
接下來開始實現Consumer端的註冊服務:
建立mvn倉庫,其中pom檔案內容與server部分的依賴基本相同,額外需要加一條
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
具體內容部分的程式碼可以詳見我github倉庫
consumer部分程式碼
同樣的我們執行程式後開啟伺服器終端輸入命令進行測試
開啟網頁測試consumer節點,結果如下
至此完成兩個服務的註冊進入zookeeper
本文參考:尚矽谷springcloud2020最新教程