日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

顶级分布式开源项目,配上这款可视化工具,真香!

發布時間:2025/3/16 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 顶级分布式开源项目,配上这款可视化工具,真香! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ZooKeeper作為頂級分布式開源項目,應用非常廣泛,Dubbo和Kafka這些知名的開源項目都在使用。之前只是聽說過它,并沒有仔細研究過。今天帶大家來學習下ZooKeeper,主要從ZooKeeper的安裝、可視化工具、應用三方面來介紹,希望對大家有所幫助!

?

簡介

ZooKeeper是一款分布式協調框架,它可以為分布式系統提供一致性服務。ZooKeeper最初由Yahoo開發,后來捐獻給了Apache基金會,現已成功Apache的頂級項目,目前在Github上有9.5k+Star。

?

分布式協調

要理解ZooKeeper我們首先需要了解下什么是分布式協調?這里拿Spring Cloud中注冊中心的例子來說吧。

微服務(分布式)系統中有很多服務,相同的服務又有多個實例,我們在應用中可以通過服務名來負載均衡地調用服務,而這些服務有可能會掛掉,也有可能會有新的實例加入。此時我們就需要一個東西來做協調,保存好服務名稱和可用實例調用IP的對應關系,此時注冊中心就是一個分布式協調者的角色,而ZooKeeper就可以用來充當這個協調者。

?

安裝

ZooKeeper的安裝無論是Windows還是Linux都是很方便的,我們先來學習下它的安裝。

Windows安裝

  • 首先下載ZooKeeper安裝包,下載地址:https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz

  • 解壓到指定目錄,解壓完成后目錄結構如下;

  • 在conf目錄下創建配置文件zoo.cfg,內容如下;

#?設置心跳時間,單位毫秒 tickTime=2000 #?存儲內存數據庫快照的文件夾 dataDir=I:/developer/env/apache-zookeeper-3.7.0-bin/data #?監聽客戶端連接的端口 clientPort=2181
  • 進入bin目錄,啟動ZooKeeper服務;

zkServer.cmd
  • 服務啟動成功后,控制臺會輸出如下信息。

Linux安裝

  • 使用Docker安裝ZooKeeper無疑是最方便的,首先我們下載它的Docker鏡像;

docker?pull?zookeeper:3.7.0
  • 創建好ZooKeeper的配置文件目錄,并切換到該目錄創建配置文件zoo.cfg;

mkdir?/mydata/zookeeper/conf/?-p cd?/mydata/zookeeper/conf/ touch?zoo.cfg
  • 配置文件zoo.cfg內容如下,直接使用VIM編輯即可;

#?設置心跳時間,單位毫秒 tickTime=2000 #?存儲內存數據庫快照的文件夾 dataDir=/tmp/zookeeper #?監聽客戶端連接的端口 clientPort=2181
  • 運行ZooKeeper容器。

docker?run?-p?2181:2181?--name?zookeeper?\ -v?/mydata/zookeeper/conf/zoo.cfg:/conf/zoo.cfg?\ -d?zookeeper:3.7.0

?

命令行操作

接下來我們用命令行來操作下ZooKeeper,熟悉下ZooKeeper的使用。

  • 首先使用zkCli命令行工具連接到ZooKeeper;

zkCli.cmd?-server?127.0.0.1:2181
  • 通過help可以命令查看ZooKeeper的常用命令;

[zk:?127.0.0.1:2181(CONNECTED)?0]?help ZooKeeper?-server?host:port?-client-configuration?properties-file?cmd?argsaddWatch?[-m?mode]?path?#?optional?mode?is?one?of?[PERSISTENT,?PERSISTENT_RECURSIVE]?-?default?is?PERSISTENT_RECURSIVEaddauth?scheme?authcloseconfig?[-c]?[-w]?[-s]connect?host:portcreate?[-s]?[-e]?[-c]?[-t?ttl]?path?[data]?[acl]delete?[-v?version]?pathdeleteall?path?[-b?batch?size]delquota?[-n|-b|-N|-B]?pathget?[-s]?[-w]?pathgetAcl?[-s]?pathgetAllChildrenNumber?pathgetEphemerals?pathhistorylistquota?pathls?[-s]?[-w]?[-R]?pathprintwatches?on|offquitreconfig?[-s]?[-v?version]?[[-file?path]?|?[-members?serverID=host:port1:port2;port3[,...]*]]?|?[-add?serverId=host:port1:port2;port3[,...]]*?[-remove?serverId[,...]*]redo?cmdnoremovewatches?path?[-c|-d|-a]?[-l]set?[-s]?[-v?version]?path?datasetAcl?[-s]?[-v?version]?[-R]?path?aclsetquota?-n|-b|-N|-B?val?pathstat?[-w]?pathsync?pathversionwhoami
  • 大家都知道Redis是通過key-value的形式存儲數據的,而ZooKeeper是通過znode-value的形式存儲數據的,znode有點像目錄,而/目錄就是ZooKeeper中的根目錄,通過如下命令可以查看所有znode;

[zk:?127.0.0.1:2181(CONNECTED)?1]?ls?/ [zookeeper]
  • 創建一個znode叫做/zk_test,存儲字符串my_data,這用起來有點像Redis;

[zk:?127.0.0.1:2181(CONNECTED)?2]?create?/zk_test?my_data Created?/zk_test
  • 查看所有znode,可以看到zk_test這個znode;

[zk:?127.0.0.1:2181(CONNECTED)?3]?ls?/ [zk_test,?zookeeper]
  • 獲取znode中存儲的數據;

[zk:?127.0.0.1:2181(CONNECTED)?4]?get?/zk_test my_data
  • 修改znode中的數據;

[zk:?127.0.0.1:2181(CONNECTED)?5]?set?/zk_test?test_data [zk:?127.0.0.1:2181(CONNECTED)?6]?get?/zk_test test_data
  • 刪除znode中的數據;

[zk:?127.0.0.1:2181(CONNECTED)?7]?delete?/zk_test [zk:?127.0.0.1:2181(CONNECTED)?8]?ls?/ [zookeeper]

?

?

可視化管理

PrettyZoo是一款基于 Apache Curator 和 JavaFX 實現的 Zookeeper 圖形化管理客戶端。顏值很高,推薦使用。

  • 首先下載PrettyZoo的安裝包,下載地址:https://github.com/vran-dev/PrettyZoo/releases

  • 我們需要創建一個連接,連接到ZooKeeper,可以發現PrettyZoo是支持通過SSH通道連接的;

  • 雙擊連接,我們可以查看到ZooKeeper中存儲的數據,很清楚的發現,ZooKeeper是按目錄結構存儲數據的;

  • 右鍵目錄,我們可以創建和刪除znode,有了這個工具,基本上可以和命令行操作說再見了;

  • 如果你還是覺得命令行比較炫酷的話,PrettyZoo也實現了命令行功能,打開命令行標簽就可以愉快地敲命令了。

?

節點類型

ZooKeeper中的節點(znode)是有生命周期的,這取決于節點的類型。類型有主要有下面四種:

  • 持久節點(Persistent):默認節點類型,節點創建后,會一直存在。

  • 持久順序節點(Persistent Sequential):具有持久節點特性,節點名稱后會增加自增數字后綴。

  • 臨時節點(Ephemeral):臨時存在,當創建節點的會話關閉時,節點被刪除。

  • 臨時順序節點(Ephemeral Sequential):具有臨時節點特性,節點名稱后會增加自增數字后綴。

如果你用命令行創建節點的話,順序特性對應-s選項,臨時特性對應-e選項,比如如下命令:

#?創建持久順序節點 create?-s?/test/seq?segText #?創建臨時節點 create?-e?/test/tmp?tmpText #?創建臨時順序節點 create?-s?-e?/test/seqTmp?setTmpText

創建成功后顯示如下:

如果你用PrettyZoo來創建的話,只要勾選一個選項即可。

?

作為注冊中心使用

CAP是分布式架構中的重要理論,其包括一致性(Consistency)、可用性(Availability)和分區容忍性(Partition tolerance)。我們經常使用的Eureka支持AP,而ZooKeeper支持CP。接下來我們學習下ZooKeeper在Spring Cloud中作為注冊中心的應用。

  • ZooKeeper作為注冊中心使用,用法基本和Eureka和Consul相同,首先我們需要在pom.xml中添加ZooKeeper的服務發現組件;

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-zookeeper-discovery</artifactId> </dependency>
  • 之后修改配置文件application.yml,添加ZooKeeper相關配置;

spring:cloud:zookeeper:#?zookeeper連接地址connect-string:?localhost:2181discovery:#?作為服務注冊register:?true#?注冊時使用IP地址而不是hostnameprefer-ip-address:?true
  • 這里還是使用《Spring Cloud學習教程》中的例子,有兩個服務zookeeper-ribbon-service和zookeeper-user-service,前者通過Ribbon遠程調用后者;

  • 分別啟動兩個服務,我們通過PrettyZoo可以發現,當ZooKeeper作為注冊中心時,注冊服務的名稱、IP、端口都被存儲到了里面;

  • 我們調用zookeeper-ribbon-service中的接口測試下,發現可以正常訪問,接口地址:http://localhost:8301/user/1

  • 如果這時候我們把zookeeper-user-service服務關掉的話,我們可以發現ZooKeeper會自動刪除存儲的數據;

  • 由此可以看出,ZooKeeper作為微服務的注冊中心是通過臨時節點來實現的,當服務上線時會向ZooKeeper中注冊,當服務下線時會被ZooKeeper刪除,保障了微服務的高可用。

?

總結

今天我們學習了下ZooKeeper的安裝、可視化工具PrettyZoo的使用以及ZooKeeper在Spring Cloud中作為注冊中心的應用。其實ZooKeeper在分布式系統中還有很多應用,比如說做分布式鎖、實現選主功能、取代UUID來生成唯一ID,大家感興趣的話可以深入研究下!


參考資料

官方文檔:https://zookeeper.apache.org/doc/current/zookeeperStarted.html

項目源碼地址

https://github.com/macrozheng/springcloud-learning

?

有道無術,術可成;有術無道,止于術

歡迎大家關注Java之道公眾號

好文章,我在看??

總結

以上是生活随笔為你收集整理的顶级分布式开源项目,配上这款可视化工具,真香!的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 不卡av免费观看 | 中文字幕乱码一区二区 | 亚欧美色图 | 日日摸夜夜添夜夜添高潮喷水 | 悟空影视大全免费高清观看在线 | 亚洲色图图片区 | 教练含着她的乳奶揉搓揉捏动态图 | 无码人妻久久一区二区三区 | 欧美日韩一区二区三区四区五区 | 99精品欧美一区二区三区 | 麻豆视屏| 天天久| 七月色| 好色婷婷| 小柔的裸露日记h | 91免费在线视频 | 久草视频2 | 欧美一区二区三区在线视频 | h视频网站在线观看 | 搞黄视频在线观看 | 人妻一区二区在线 | 久久高清一区 | 蜜桃视频久久一区免费观看入口 | 中文日韩 | 久操热线| av三级网站 | 亚洲免费中文字幕 | 欧美日韩综合在线 | 成年人看的羞羞网站 | 干干天天 | 在线天堂在线 | 香蕉黄视频 | 97精品国产97久久久久久春色 | 97在线免费公开视频 | av性在线| 秋霞一级视频 | 亚洲精品蜜桃 | 色婷婷久久| 欧美性受xxxx黑人xyx性爽 | 91操人视频 | 国产成人无码av在线播放dvd | mdyd—856冲田杏梨在线 | 色妞视频 | 欧美乱妇狂野欧美在线视频 | 女人囗交吞精囗述 | 毛片大全免费看 | 琪琪色网| 亚洲品质自拍视频网站 | 777理伦三级做爰 | 日本99视频 | 9999re| 久久人人插 | 超碰毛片 | 亚洲AV无码一区二区三区性 | 亚洲综合色网站 | 亚洲4p | 久久国产人妻一区二区免色戒电影 | 欧洲一区二区三区在线 | 亚洲国产精一区二区三区性色 | 自拍偷拍视频在线观看 | 手机免费看av | 性猛交xxxx乱大交孕妇2十 | 欧美亚洲一级 | 极品毛片| 国产精品黄 | 高清无码视频直接看 | 精品黑人一区二区三区国语馆 | 欧美巨乳在线观看 | 自拍偷在线精品自拍偷无码专区 | 落日余晖 | 91猎奇在线观看 | 在线不卡日韩 | 亚洲性色视频 | 亚洲欧洲在线播放 | 人妻一区二区三区免费 | 欧美日韩亚洲在线 | 中文乱码人妻一区二区三区视频 | 亚洲一区二区三区麻豆 | 国产乱一区二区三区 | 日日拍夜夜拍 | 99热在线观看 | 视频在线a | 成人一区二区在线观看 | 99国产超薄肉色丝袜交足 | 欧美一级黄色录像 | 黄色视屏网站 | 国产精品综合久久久久久 | 91在线观看欧美日韩 | 草草色| 国产chinese男男网站大全 | 国产成人免费片在线观看 | 男人天堂av网| 亚洲免费看黄 | 亚洲深夜福利视频 | jizzjizzjizz亚洲女 | 成人黄色免费在线观看 | 欧美一区二区三区久久成人精品 | 一区二区伦理 | av电影在线观看网址 |