偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

一文簡(jiǎn)單了解并部署Zookeeper集群

數(shù)據(jù)庫(kù) 其他數(shù)據(jù)庫(kù)
Zookeeper從設(shè)計(jì)模式角度來(lái)理解,是一個(gè)基于觀察者模式設(shè)計(jì)的分布式服務(wù)管理框架。是一個(gè)文件系統(tǒng),負(fù)責(zé)存儲(chǔ)和管理大家都關(guān)心的數(shù)據(jù),然后接受觀察者的注冊(cè);也是一種通知機(jī)制,一旦這些數(shù)據(jù)的狀態(tài)發(fā)生變化,Zookeeper就將負(fù)責(zé)通知已經(jīng)在Zookeeper上注冊(cè)的那些觀察者做出相應(yīng)的反應(yīng)。

1.Zookeeper概述

Zookeeper對(duì)于很多人開(kāi)始可能都有所耳聞,他的使用場(chǎng)景也很多,可以以節(jié)點(diǎn)的形式存儲(chǔ)持久化數(shù)據(jù),也可以使用這一特性來(lái)作為微服務(wù)的服務(wù)注冊(cè)中心,簡(jiǎn)單來(lái)說(shuō),Zookeeper 是一個(gè)開(kāi)源的分布式的,為分布式框架提供協(xié)調(diào)服務(wù)的 Apache 項(xiàng)目。

Zookeeper從設(shè)計(jì)模式角度來(lái)理解,是一個(gè)基于觀察者模式設(shè)計(jì)的分布式服務(wù)管理框架。是一個(gè)文件系統(tǒng),負(fù)責(zé)存儲(chǔ)和管理大家都關(guān)心的數(shù)據(jù),然后接受觀察者的注冊(cè);也是一種通知機(jī)制,一旦這些數(shù)據(jù)的狀態(tài)發(fā)生變化,Zookeeper就將負(fù)責(zé)通知已經(jīng)在Zookeeper上注冊(cè)的那些觀察者做出相應(yīng)的反應(yīng)。

2.Zookeeper的應(yīng)用場(chǎng)景和一些注意事項(xiàng)

ZooKeeper 數(shù)據(jù)模型的結(jié)構(gòu)與 Unix 文件系統(tǒng)很類(lèi)似,整體上可以看作是一棵樹(shù),每個(gè)節(jié)點(diǎn)稱(chēng)做一個(gè) ZNode。每一個(gè) ZNode 默認(rèn)能夠存儲(chǔ) 1MB 的數(shù)據(jù),每個(gè) ZNode 都可以通過(guò)其路徑唯一標(biāo)識(shí)。

Zookeeper的應(yīng)用場(chǎng)景有許多,比如統(tǒng)一的配置管理,在許多分布式環(huán)境中,通常一個(gè)服務(wù)集群的配置文件信息是一致的,如果需要修改配置信息內(nèi)容,不可能逐個(gè)對(duì)每個(gè)服務(wù)做修改,而是希望修改一次配置信息就可以同步給所有服務(wù)節(jié)點(diǎn),Zookeeper就可以實(shí)現(xiàn)這個(gè)業(yè)務(wù),十分簡(jiǎn)單,可以將服務(wù)的配置信息寫(xiě)入ZooKeeper上的一個(gè)Znode中,讓每個(gè)集群節(jié)點(diǎn)的服務(wù)器都去監(jiān)聽(tīng)這個(gè)Znode,一旦數(shù)據(jù)被修改,ZooKeeper將通知各個(gè)服務(wù)器,達(dá)到同步的效果。還可以做統(tǒng)一的集群管理、服務(wù)器的動(dòng)態(tài)上下線(xiàn)、以及軟負(fù)載均衡的效果。

在實(shí)踐Zookeeper前還需要注意的內(nèi)容:

  • Zookeeper:一個(gè)領(lǐng)導(dǎo)者(Leader),多個(gè)跟隨者(Follower)組成的集群。
  • 集群正常運(yùn)行的前提條件是集群節(jié)點(diǎn)大于半數(shù),因此集群節(jié)點(diǎn)數(shù)最好采用奇數(shù)個(gè)。
  • 全局?jǐn)?shù)據(jù)一致:每個(gè)Server保存一份相同的數(shù)據(jù)副本,Client無(wú)論連接到哪個(gè)Server,數(shù)據(jù)都是一致的。
  • 更新請(qǐng)求順序執(zhí)行,來(lái)自同一個(gè)Client的更新請(qǐng)求按其發(fā)送順序依次執(zhí)行。
  • 數(shù)據(jù)更新原子性,一次數(shù)據(jù)更新要么成功,要么失敗。
  • 實(shí)時(shí)性,在一定時(shí)間范圍內(nèi),Client能讀到最新數(shù)據(jù)。

3.簡(jiǎn)單部署Zookeeper集群

官網(wǎng)地址:https://zookeeper.apache.org/,本文采用VMware創(chuàng)建3臺(tái)虛擬機(jī)構(gòu)建集群,XShell工具連接虛擬機(jī)進(jìn)行操作:

首先為機(jī)子安裝jdk,采用yum源安裝,注意設(shè)置yum,靜等安裝成功出現(xiàn)“Complete”即可:

[root@localhost ~]# yum install -y java-1.8.0-openjdk.x86_64
  • 進(jìn)入/usr/local/目錄,將提前準(zhǔn)備好的“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
  • 修改環(huán)境變量:
[root@localhost local]# vi /etc/profile
# 進(jìn)入insert模式后在上方添加一下內(nèi)容后保存退出
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
  • 重新編譯“/etc/profile”:
[root@localhost zookeeper]# source /etc/profile
  • 進(jìn)入conf目錄下,將“zoo_sample.cfg”拷貝生成“zoo.cfg”文件作為zookeeper的配置文件:
[root@localhost zookeeper]# cd conf/
[root@localhost conf]# cp zoo_sample.cfg zoo.cfg
  • 修改“zoo.cfg”文件:
  • 配置文件中主要要配置數(shù)據(jù)存放路徑和日志路徑,zookeeper默認(rèn)的數(shù)據(jù)存放路徑為"dataDir=/tmp/zookeeper",為臨時(shí)數(shù)據(jù),會(huì)過(guò)期,本文將重新指定相關(guān)位置,存放在“自己”的路徑下,當(dāng)然也可以根據(jù)需要建立單獨(dú)路徑進(jìn)行存放。
# 將配置文件中的dataDir替換為此路徑
dataDir=/usr/local/zookeeper/data
# 在配置文件中添加以下配置,ip地址根據(jù)規(guī)劃
# 其中server.1代表集群的第幾胎集群,后續(xù)會(huì)配置myid文件,myid文件內(nèi)容和對(duì)應(yīng)的數(shù)字保存一致,例如1.131這臺(tái)機(jī)器myid就是1
# ip地址為集群的三臺(tái)機(jī)器,也可以配置host使用主機(jī)名,兩個(gè)端口號(hào)心跳端口和數(shù)據(jù)端口
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
  • 簡(jiǎn)單解釋下集群配置:
  • server.A=B:C:D
  • A 是一個(gè)數(shù)字,表示這個(gè)是第幾號(hào)服務(wù)器;集群模式下配置一個(gè)文件 myid,這個(gè)文件在 dataDir 目錄下,這個(gè)文件里面有一個(gè)數(shù)據(jù)就是 A 的值,Zookeeper 啟動(dòng)時(shí)讀取此文件,拿到里面的數(shù)據(jù)與 zoo.cfg 里面的配置信息比較從而判斷到底是哪個(gè) server。
  • B 是這個(gè)服務(wù)器的地址;
  • C 是這個(gè)服務(wù)器 Follower 與集群中的 Leader 服務(wù)器交換信息的端口;
  • D 是萬(wàn)一集群中的 Leader 服務(wù)器掛了,需要一個(gè)端口來(lái)重新進(jìn)行選舉,選出一個(gè)新的Leader,而這個(gè)端口就是用來(lái)執(zhí)行選舉時(shí)服務(wù)器相互通信的端口。
  • 回到”zookeeper“目錄下,創(chuàng)建配置文件中提到的兩個(gè)路徑并賦予權(quán)限:
[root@localhost conf]# cd ..
[root@localhost zookeeper]# mkdir -m 755 data
[root@localhost zookeeper]# mkdir -m 755 log
  • 來(lái)到“data/”路徑下,創(chuàng)建myid文件,并給相應(yīng)值1
[root@localhost zookeeper]# cd data/
[root@localhost data]# vi myid
  • 此刻對(duì)于集群節(jié)點(diǎn)的第一臺(tái)機(jī)器就配置完成了,另外兩臺(tái)機(jī)器需要在準(zhǔn)備好環(huán)境并設(shè)置好環(huán)境變量的前提下進(jìn)行
  • 通過(guò)第一臺(tái)機(jī)器將配置好的zookeeper及集群配置下發(fā)到另外兩臺(tái)機(jī)器上,注意修改對(duì)應(yīng)機(jī)器的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后,集群部署完畢。
  • 進(jìn)入到01機(jī)器的zookeeper目錄下,啟動(dòng)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.
  • 此時(shí)集群沒(méi)辦法起來(lái),因?yàn)槟壳爸挥幸粋€(gè)節(jié)點(diǎn)開(kāi)啟
  • 當(dāng)?shù)诙_(tái)啟動(dòng)以后,集群節(jié)點(diǎn)超過(guò)半數(shù),第二臺(tái)機(jī)器就會(huì)選舉成為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]#
  • 第一臺(tái)就變成follower了
[root@localhost zookeeper]# bin/zkServer.sh status
JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: follower
  • 開(kāi)啟第三臺(tái)后,第二臺(tái)機(jī)器已經(jīng)是leader了,除非機(jī)器宕機(jī)會(huì)觸發(fā)重新選舉
  • 關(guān)于zookeeper的操作可以通過(guò)啟動(dòng)啟動(dòng)客戶(hù)端:
[root@localhost zookeeper]# bin/zkCli.sh

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

2020-08-27 07:34:50

Zookeeper數(shù)據(jù)結(jié)構(gòu)

2023-04-18 08:45:28

MongoDB部署模式

2023-09-02 21:44:24

TCP/IP通信協(xié)議

2023-04-26 15:43:24

容器編排容器編排工具

2023-11-20 08:18:49

Netty服務(wù)器

2022-06-08 08:11:56

威脅建模網(wǎng)絡(luò)安全網(wǎng)絡(luò)攻擊

2025-05-23 09:38:54

JWT開(kāi)發(fā)Go

2022-11-11 19:09:13

架構(gòu)

2022-02-25 07:34:36

MQTT協(xié)議RabbitMQ

2023-11-06 08:16:19

APM系統(tǒng)運(yùn)維

2019-07-03 15:32:26

路由器網(wǎng)絡(luò)系統(tǒng)

2024-02-01 11:57:31

this指針代碼C++

2024-01-19 11:53:29

文件系統(tǒng)操作系統(tǒng)存儲(chǔ)

2023-10-27 08:15:45

2023-11-08 08:15:48

服務(wù)監(jiān)控Zipkin

2022-02-24 07:34:10

SSL協(xié)議加密

2023-08-26 20:56:02

滑動(dòng)窗口協(xié)議

2024-07-26 00:00:10

2021-05-12 10:59:39

Kubernetes容器集群

2022-08-09 09:10:43

Kubernetes容器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)