成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一文簡單了解并部署Zookeeper集群

數據庫 其他數據庫
Zookeeper從設計模式角度來理解,是一個基于觀察者模式設計的分布式服務管理框架。是一個文件系統,負責存儲和管理大家都關心的數據,然后接受觀察者的注冊;也是一種通知機制,一旦這些數據的狀態發生變化,Zookeeper就將負責通知已經在Zookeeper上注冊的那些觀察者做出相應的反應。

1.Zookeeper概述

Zookeeper對于很多人開始可能都有所耳聞,他的使用場景也很多,可以以節點的形式存儲持久化數據,也可以使用這一特性來作為微服務的服務注冊中心,簡單來說,Zookeeper 是一個開源的分布式的,為分布式框架提供協調服務的 Apache 項目。

Zookeeper從設計模式角度來理解,是一個基于觀察者模式設計的分布式服務管理框架。是一個文件系統,負責存儲和管理大家都關心的數據,然后接受觀察者的注冊;也是一種通知機制,一旦這些數據的狀態發生變化,Zookeeper就將負責通知已經在Zookeeper上注冊的那些觀察者做出相應的反應。

2.Zookeeper的應用場景和一些注意事項

ZooKeeper 數據模型的結構與 Unix 文件系統很類似,整體上可以看作是一棵樹,每個節點稱做一個 ZNode。每一個 ZNode 默認能夠存儲 1MB 的數據,每個 ZNode 都可以通過其路徑唯一標識。

Zookeeper的應用場景有許多,比如統一的配置管理,在許多分布式環境中,通常一個服務集群的配置文件信息是一致的,如果需要修改配置信息內容,不可能逐個對每個服務做修改,而是希望修改一次配置信息就可以同步給所有服務節點,Zookeeper就可以實現這個業務,十分簡單,可以將服務的配置信息寫入ZooKeeper上的一個Znode中,讓每個集群節點的服務器都去監聽這個Znode,一旦數據被修改,ZooKeeper將通知各個服務器,達到同步的效果。還可以做統一的集群管理、服務器的動態上下線、以及軟負載均衡的效果。

在實踐Zookeeper前還需要注意的內容:

  • Zookeeper:一個領導者(Leader),多個跟隨者(Follower)組成的集群。
  • 集群正常運行的前提條件是集群節點大于半數,因此集群節點數最好采用奇數個。
  • 全局數據一致:每個Server保存一份相同的數據副本,Client無論連接到哪個Server,數據都是一致的。
  • 更新請求順序執行,來自同一個Client的更新請求按其發送順序依次執行。
  • 數據更新原子性,一次數據更新要么成功,要么失敗。
  • 實時性,在一定時間范圍內,Client能讀到最新數據。

3.簡單部署Zookeeper集群

官網地址:https://zookeeper.apache.org/,本文采用VMware創建3臺虛擬機構建集群,XShell工具連接虛擬機進行操作:

首先為機子安裝jdk,采用yum源安裝,注意設置yum,靜等安裝成功出現“Complete”即可:

[root@localhost ~]# yum install -y java-1.8.0-openjdk.x86_64
  • 進入/usr/local/目錄,將提前準備好的“zookeeper-3.4.5.tar.gz”文件傳入目錄,并解壓:
[root@localhost ~]# cd /usr/local/
[root@localhost local]# tar zxvf zookeeper-3.4.5.tar.gz
  • 修改文件名為“zookeeper”:
[root@localhost local]# mv zookeeper-3.4.5 zookeeper
  • 修改環境變量:
[root@localhost local]# vi /etc/profile
# 進入insert模式后在上方添加一下內容后保存退出
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
  • 重新編譯“/etc/profile”:
[root@localhost zookeeper]# source /etc/profile
  • 進入conf目錄下,將“zoo_sample.cfg”拷貝生成“zoo.cfg”文件作為zookeeper的配置文件:
[root@localhost zookeeper]# cd conf/
[root@localhost conf]# cp zoo_sample.cfg zoo.cfg
  • 修改“zoo.cfg”文件:
  • 配置文件中主要要配置數據存放路徑和日志路徑,zookeeper默認的數據存放路徑為"dataDir=/tmp/zookeeper",為臨時數據,會過期,本文將重新指定相關位置,存放在“自己”的路徑下,當然也可以根據需要建立單獨路徑進行存放。
# 將配置文件中的dataDir替換為此路徑
dataDir=/usr/local/zookeeper/data
# 在配置文件中添加以下配置,ip地址根據規劃
# 其中server.1代表集群的第幾胎集群,后續會配置myid文件,myid文件內容和對應的數字保存一致,例如1.131這臺機器myid就是1
# ip地址為集群的三臺機器,也可以配置host使用主機名,兩個端口號心跳端口和數據端口
dataLogDir=/usr/local/zookeeper/log
server.1=192.168.1.11:2888:3888
server.2=192.168.1.12:2888:3888
server.3=192.168.1.13:2888:3888
  • 簡單解釋下集群配置:
  • server.A=B:C:D
  • A 是一個數字,表示這個是第幾號服務器;集群模式下配置一個文件 myid,這個文件在 dataDir 目錄下,這個文件里面有一個數據就是 A 的值,Zookeeper 啟動時讀取此文件,拿到里面的數據與 zoo.cfg 里面的配置信息比較從而判斷到底是哪個 server。
  • B 是這個服務器的地址;
  • C 是這個服務器 Follower 與集群中的 Leader 服務器交換信息的端口;
  • D 是萬一集群中的 Leader 服務器掛了,需要一個端口來重新進行選舉,選出一個新的Leader,而這個端口就是用來執行選舉時服務器相互通信的端口。
  • 回到”zookeeper“目錄下,創建配置文件中提到的兩個路徑并賦予權限:
[root@localhost conf]# cd ..
[root@localhost zookeeper]# mkdir -m 755 data
[root@localhost zookeeper]# mkdir -m 755 log
  • 來到“data/”路徑下,創建myid文件,并給相應值1
[root@localhost zookeeper]# cd data/
[root@localhost data]# vi myid
  • 此刻對于集群節點的第一臺機器就配置完成了,另外兩臺機器需要在準備好環境并設置好環境變量的前提下進行
  • 通過第一臺機器將配置好的zookeeper及集群配置下發到另外兩臺機器上,注意修改對應機器的myid:
[root@localhost data]# scp -r /usr/local/zookeeper root@192.168.1.12:/usr/local/
[root@localhost data]# scp -r /usr/local/zookeeper root@192.168.1.13:/usr/local/
  • 修改myid值為2和3后,集群部署完畢。
  • 進入到01機器的zookeeper目錄下,啟動zookeeper:
[root@localhost zookeeper]# bin/zkServer.sh start
JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@localhost zookeeper]# bin/zkServer.sh status
JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.
  • 此時集群沒辦法起來,因為目前只有一個節點開啟
  • 當第二臺啟動以后,集群節點超過半數,第二臺機器就會選舉成為leader
[root@localhost zookeeper]# bin/zkServer.sh start
JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@localhost zookeeper]# bin/zkServer.sh status
JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: leader
[root@localhost zookeeper]#
  • 第一臺就變成follower了
[root@localhost zookeeper]# bin/zkServer.sh status
JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: follower
  • 開啟第三臺后,第二臺機器已經是leader了,除非機器宕機會觸發重新選舉
  • 關于zookeeper的操作可以通過啟動啟動客戶端:
[root@localhost zookeeper]# bin/zkCli.sh

WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:2181(CONNECTED) 0]
  • 至此測試完成,zookeeper集群部署完畢,更多zookeeper操作可以參照zookeeper官方文檔。
責任編輯:武曉燕 來源: GreatSQL社區
相關推薦

2020-08-27 07:34:50

Zookeeper數據結構

2023-04-18 08:45:28

MongoDB部署模式

2023-09-02 21:44:24

TCP/IP通信協議

2023-04-26 15:43:24

容器編排容器編排工具

2023-11-20 08:18:49

Netty服務器

2022-02-25 07:34:36

MQTT協議RabbitMQ

2022-06-08 08:11:56

威脅建模網絡安全網絡攻擊

2023-11-06 08:16:19

APM系統運維

2025-05-23 09:38:54

JWT開發Go

2022-11-11 19:09:13

架構

2019-07-03 15:32:26

路由器網絡系統

2024-01-19 11:53:29

文件系統操作系統存儲

2024-02-01 11:57:31

this指針代碼C++

2023-10-27 08:15:45

2022-02-24 07:34:10

SSL協議加密

2023-11-08 08:15:48

服務監控Zipkin

2023-08-26 20:56:02

滑動窗口協議

2024-07-26 00:00:10

2023-12-26 07:33:45

Redis持久化COW

2020-02-02 15:14:24

HTTP黑科技前端
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品国产欧美 | 亚洲国产情侣 | 欧美精品一二区 | 欧美精品一区三区 | 中文字幕亚洲区一区二 | 草草视频在线免费观看 | 欧美综合一区二区 | 久久精品在线 | 日韩在线不卡 | 请别相信他免费喜剧电影在线观看 | 亚洲精品乱码8久久久久久日本 | 日韩精品视频一区二区三区 | 成人啊啊啊 | 国产精品久久久久久影院8一贰佰 | www.99热.com| 精品一区二区在线观看 | 97精品国产一区二区三区 | 99热在线免费 | 久草.com| 夜夜爽99久久国产综合精品女不卡 | 欧美一区二区三区四区视频 | 最新日韩在线视频 | 羞羞在线视频 | 国产婷婷色综合av蜜臀av | 在线视频一区二区三区 | 久久久国产一区二区三区四区小说 | 国产在线拍偷自揄拍视频 | 国产成人精品一区二区三区在线 | 成人午夜视频在线观看 | 在线观看深夜视频 | 99久久亚洲 | 亚洲视频免费播放 | 中文字幕视频网 | 国产区精品视频 | 色www精品视频在线观看 | 久久久久九九九女人毛片 | 中文字幕 欧美 日韩 | 亚洲美女av网站 | 嫩草视频网站 | 国产美女一区二区 | 一区二区三区国产视频 |