springboot應(yīng)用訪問zookeeper的流程
本文講解了如果通過springboot快速開發(fā)web服務(wù),并讀取zookeeper的過程,為后續(xù)的“在docker下部署dubbo服務(wù)“做準(zhǔn)備工作,本文相關(guān)的操作都在mac上進行的,文中有些目錄和windows有些區(qū)別,請各位注意對應(yīng)自己的電腦做對應(yīng)的修改。
本地部署zookeeper
首先去官網(wǎng)下載zookeeper包,推薦使用穩(wěn)定版3.3.6
下載后在本地解壓,進入zookeeper-3.3.6/conf目錄下,將zoo_sample.cfg文件改名為zoo.cfg,再用文本編輯器打開這個文件,修改如下紅框位置的內(nèi)容,改成本地一個可以訪問的已有目錄:
打開命令行窗口,進入zookeeper-3.3.6/bin目錄,windows下執(zhí)行zkServer.cmd status,mac和linux下執(zhí)行./zkServer.sh status,該命令是查看當(dāng)前zookeeper的狀態(tài),由于還沒有啟動zookeeper,我們會看到如下錯誤信息:
現(xiàn)在啟動zookeeper吧,windows下執(zhí)行zkServer.cmd start,mac和linux下執(zhí)行./zkServer.sh start,啟動信息如下:
這時候輸入zkServer.cmd status,看到的結(jié)果如下:
可以看到zookeeper正在以standalone模式運行中;
現(xiàn)在我們用客戶端命令來試試服務(wù),windows下執(zhí)行zkCli.cmd, mac和linux下執(zhí)行./zkCli.sh,連接上服務(wù)端:
執(zhí)行create /node1 abc創(chuàng)建一個znode,對應(yīng)的value是"abc",再執(zhí)行g(shù)et /node1可以查看/node_1的value,如下圖:
關(guān)于zookeeper的安裝和驗證就寫到這里了,接下來我們開始開發(fā)應(yīng)用來訪問這個zookeeper節(jié)點的數(shù)據(jù)。
開發(fā)基于spring boot的應(yīng)用
打開IntelliJ IDEA CE,創(chuàng)建名為zookeeperdemo的Maven工程,指定模板,如下圖:
工程創(chuàng)建后要做的就是修改pom,增加庫的依賴,已經(jīng)添加配置文件,寫java代碼,具體的源碼請在我的git上下載,鏈接
源碼在以下位置:
源碼下載下來后,可以通過Intellij IEDA導(dǎo)入,導(dǎo)入的時候以下紅框中的選項需要選中,這樣才能導(dǎo)入maven工程:
整個工程非常簡單,首先是pom文件,依賴的父工程要用spring-boot-starter-parent:
還要添加對springboot的依賴,以及build時使用springboot對應(yīng)的插件:
在resource目錄增加application.properties文件配置一些重要的參數(shù),例如日志目錄,web server端口等,如下圖:
最后是寫java代碼,由于只是個demo,這里的代碼非常簡單,一個入口,一個controller,入口如下:
controller如下,是一個簡單的rest響應(yīng),鏈接zookeeper取得znode節(jié)點的值然后返回,注意由于申明了RestController,所以返回的內(nèi)容非頁面而是字符串:
至此,編碼結(jié)束,來試試吧,如下圖新建一個命令:
選擇maven:
命令內(nèi)容為clean package -U -Dmaven.test.skip=true spring-boot:run,如下:
命令創(chuàng)建完成后,點擊“run“執(zhí)行:
此時打開瀏覽器,輸入http://localhost:2222/zkget即可得到我們在zookeeper上設(shè)置的/node_1的value,如下圖:
至此,基于spring boot框架訪問zookeeper的demo開發(fā)以及結(jié)束,后面我們嘗試通過Dockerfile的方式制作zookeeper的鏡像,然后通過docker的容器提供zookeeper的服務(wù)。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
- SpringBoot系列教程之dubbo和Zookeeper集成方法
- SpringBoot中dubbo+zookeeper實現(xiàn)分布式開發(fā)的應(yīng)用詳解
- SpringBoot+Dubbo+Zookeeper實現(xiàn)簡單分布式開發(fā)的應(yīng)用詳解
- IDEA整合Dubbo+Zookeeper+SpringBoot實現(xiàn)
- springboot+dubbo+zookeeper的簡單實例詳解
- springBoot+dubbo+zookeeper實現(xiàn)分布式開發(fā)應(yīng)用的項目實踐
- springboot+zookeeper實現(xiàn)分布式鎖的示例代碼
- Java Spring Boot 集成Zookeeper
相關(guān)文章
淺談Java虛擬機對內(nèi)部鎖的四種優(yōu)化方式
這篇文章主要介紹了淺談Java虛擬機對內(nèi)部鎖的四種優(yōu)化方式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10spring?boot獲取session的值為null問題及解決方法
我在登陸的時候,登陸成功后將name存進了session,然后在獲取個人信息時取出session里的name的值為null,接下來通過本文給大家分享springboot獲取session的值為null問題,需要的朋友可以參考下2023-05-05Springboot通過run啟動web應(yīng)用的方法
這篇文章主要介紹了Springboot通過run啟動web應(yīng)用的方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-03-03SWT(JFace)體驗之ApplicationWindow
SWT(JFace)體驗之ApplicationWindow2009-06-06Spring Cloud實現(xiàn)微服務(wù)調(diào)用的負載均衡(詳解)
負載均衡就是將負載(工作任務(wù),訪問請求)進行分攤到多個操作單元(服務(wù)器,組件)上進行執(zhí)行,根據(jù)負載均衡發(fā)生位置的不同,一般分為服務(wù)端負載均衡和客戶端負載均衡,本文給大家介紹Spring Cloud實現(xiàn)微服務(wù)調(diào)用的負載均衡的相關(guān)知識,感興趣的朋友一起看看吧2024-03-03Java elasticSearch-api的具體操作步驟講解
這篇文章主要介紹了elasticSearch-api的具體操作步驟講解,本文通過詳細的步驟介紹和圖文代碼展示講解了該項技術(shù),需要的朋友可以參考下2021-06-06Java 數(shù)組轉(zhuǎn)List的四種方式小結(jié)
最近看了下數(shù)組轉(zhuǎn)List的實現(xiàn)方法,總共有4種,本文就詳細的介紹一下,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09Springboot+QueryDsl實現(xiàn)融合數(shù)據(jù)查詢
這篇文章主要將介紹的是 Springboot 使用 QueryDsl 實現(xiàn)融合數(shù)據(jù)查詢,文中有詳細的代碼講解,對 SpringBoot?Querydsl?查詢操作感興趣的朋友一起看看吧2023-08-08springcloud?nacos動態(tài)線程池Dynamic?tp配置接入實戰(zhàn)詳解
這篇文章主要為大家介紹了springcloud?nacos動態(tài)線程池Dynamic?tp配置接入實戰(zhàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-12-12