国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【分布式技術】注冊中心zookeeper

這篇具有很好參考價值的文章主要介紹了【分布式技術】注冊中心zookeeper。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

一、ZooKeeper是什么

二、ZooKeeper的工作機制

三、ZooKeeper特點

四、ZooKeeper數據結構

五、ZooKeeper應用場景

●統(tǒng)一命名服務

●統(tǒng)一配置管理

●統(tǒng)一集群管理

●服務器動態(tài)上下線

●軟負載均衡

六、ZooKeeper的選舉機制

七、實操部署ZooKeeper集群

步驟一:先部署java環(huán)境

步驟二:完成zookeeper安裝包下載

步驟三:完成部署啟動


一、ZooKeeper是什么

Zookeeper是一個開源的分布式的,為分布式框架提供協(xié)調服務的Apache項目。

二、ZooKeeper的工作機制

Zookeeper從設計模式角度來理解:是一個基于觀察者模式設計的分布式服務管理框架,它負責存儲和管理大家都關心的數據,然后接受觀察者的注冊,一旦這些數據的狀態(tài)發(fā)生變化,Zookeeper就將負責通知已經在Zookeeper上注冊的那些觀察者做出相應的反應。也就是說

Zookeeper = 注冊中心+文件系統(tǒng) + 通知機制。

三、ZooKeeper特點

(1)Zookeeper:一個領導者(Leader),多個跟隨者(Follower)組成的集群
(2)Zookeeper集群中只要有半數以上節(jié)點存活,Zookeeper集群就能正常服務。所以Zookeeper適合安裝奇數臺服務器。
(3)全局數據一致:每個Server保存一份相同的數據副本,Client無論連接到哪個Server,數據都是一致的。
(4)更新請求順序執(zhí)行,來自同一個Client的更新請求按其發(fā)送順序依次執(zhí)行,即先進先出。
(5)數據更新原子性,一次數據更新要么成功,要么失敗。
(6)實時性,在一定時間范圍內,Client能讀到最新數據。

四、ZooKeeper數據結構

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

【分布式技術】注冊中心zookeeper,分布式,zookeeper,kafka

五、ZooKeeper應用場景

提供的服務包括:

統(tǒng)一命名服務、統(tǒng)一配置管理、統(tǒng)一集群管理、服務器節(jié)點動態(tài)上下線、軟負載均衡等。

●統(tǒng)一命名服務

在分布式環(huán)境下,經常需要對應用/服務進行統(tǒng)一命名,便于識別。例如:IP不容易記住,而域名容易記住。

●統(tǒng)一配置管理

(1)分布式環(huán)境下,配置文件同步非常常見。一般要求一個集群中,所有節(jié)點的配置信息是一致的,比如Kafka集群。對配置文件修改后,希望能夠快速同步到各個節(jié)點上。
(2)配置管理可交由ZooKeeper實現(xiàn)。可將配置信息寫入ZooKeeper上的一個Znode。各個客戶端服務器監(jiān)聽這個Znode。一旦Znode中的數據被修改,ZooKeeper將通知各個客戶端服務器。

●統(tǒng)一集群管理

(1)分布式環(huán)境中,實時掌握每個節(jié)點的狀態(tài)是必要的??筛鶕?jié)點實時狀態(tài)做出一些調整。
(2)ZooKeeper可以實現(xiàn)實時監(jiān)控節(jié)點狀態(tài)變化??蓪⒐?jié)點信息寫入ZooKeeper上的一個ZNode。監(jiān)聽這個ZNode可獲取它的實時狀態(tài)變化。

●服務器動態(tài)上下線

客戶端能實時洞察到服務器上下線的變化。

●軟負載均衡

在Zookeeper中記錄每臺服務器的訪問數,讓訪問數最少的服務器去處理最新的客戶端請求(這邊最小連接調度算法嘛)。

六、ZooKeeper的選舉機制

  • 第一次啟動選舉機制

(1)服務器1啟動,發(fā)起一次選舉。服務器1投自己一票。此時服務器1票數一票,不夠半數以上(3票),選舉無法完成,服務器1狀態(tài)保持為LOOKING;
(2)服務器2啟動,再發(fā)起一次選舉。服務器1和2分別投自己一票并交換選票信息:此時服務器1發(fā)現(xiàn)服務器2的myid比自己目前投票推舉的(服務器1)大,更改選票為推舉服務器2。此時服務器1票數0票,服務器2票數2票,沒有半數以上結果,選舉無法完成,服務器1,2狀態(tài)保持LOOKING
(3)服務器3啟動,發(fā)起一次選舉。此時服務器1和2都會更改選票為服務器3。此次投票結果:服務器1為0票,服務器2為0票,服務器3為3票。此時服務器3的票數已經超過半數,服務器3當選Leader。服務器1,2更改狀態(tài)為FOLLOWING,服務器3更改狀態(tài)為LEADING;
(4)服務器4啟動,發(fā)起一次選舉。此時服務器1,2,3已經不是LOOKING狀態(tài),不會更改選票信息。交換選票信息結果:服務器3為3票,服務器4為1票。此時服務器4服從多數,更改選票信息為服務器3,并更改狀態(tài)為FOLLOWING;(5)服務器5啟動,同4一樣當小弟。

總結:比較服務器的myid大小,誰的myid越大則獲取其他節(jié)點的選票,當選票數量超過服務器節(jié)點數量的半數以后,則當選leader,其他節(jié)點為follower。即使有新的更大myid節(jié)點加入集群,也不變

  • 非第一次啟動選舉機制

1.EPOCH大的直接勝出
2.EPOCH相同,事務id大的勝出
3.事務id相同,服務器id大的勝出

SID:服務器ID。用來唯一標識一臺ZooKeeper集群中的機器,每臺機器不能重復,和myid一致。(表示服務器的唯一標志id)
ZXID:事務ID。ZXID是一個事務ID,用來標識一次服務器狀態(tài)的變更。在某一時刻,集群中的每臺機器的ZXID值不一定完全一致,這和ZooKeeper服務器對于客戶端“更新請求”的處理邏輯速度有關。(表示處理任務的數量)
Epoch:每個Leader任期的代號。沒有Leader時同一輪投票過程中的邏輯時鐘值是相同的。每投完一次票這個數據就會增加(表示參與選舉的次數)

七、實操部署ZooKeeper集群

步驟一:先部署java環(huán)境

【分布式技術】注冊中心zookeeper,分布式,zookeeper,kafka

步驟二:完成zookeeper安裝包下載

//安裝 JDK
yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
java -version

//下載安裝包
官方下載地址:https://archive.apache.org/dist/zookeeper/

cd /opt
方法一:wget https://archive.apache.org/dist/zookeeper/zookeeper-3.5.7/apache-zookeeper-3.5.7-bin.tar.gz

2.安裝 Zookeeper
cd /opt
方法二:
tar -zxvf apache-zookeeper-3.6.4-bin.tar.gz
mv apache-zookeeper-3.6.4-bin /usr/local/zookeeper

//修改配置文件
cd /usr/local/zookeeper/conf/
cp zoo_sample.cfg zoo.cfg

vim zoo.cfg
tickTime=2000   #通信心跳時間,Zookeeper服務器與客戶端心跳時間,單位毫秒
initLimit=10    #Leader和Follower初始連接時能容忍的最多心跳數(tickTime的數量),這里表示為10*2s
syncLimit=5     #Leader和Follower之間同步通信的超時時間,這里表示如果超過5*2s,Leader認為Follwer死掉,并從服務器列表中刪除Follwer
dataDir=/usr/local/zookeeper-3.5.7/data      ●修改,指定保存Zookeeper中的數據的目錄,目錄需要單獨創(chuàng)建
dataLogDir=/usr/local/zookeeper-3.5.7/logs   ●添加,指定存放日志的目錄,目錄需要單獨創(chuàng)建
clientPort=2181   #客戶端連接端口
#添加集群信息
server.1=192.168.20.12:3188:3288
server.2=192.168.20.15:3188:3288
server.3=192.168.20.16:3188:3288

-------------------------------------------------------------------------------------
server.A=B:C:D
●A是一個數字,表示這個是第幾號服務器。集群模式下需要在zoo.cfg中dataDir指定的目錄下創(chuàng)建一個文件myid,這個文件里面有一個數據就是A的值,Zookeeper啟動時讀取此文件,拿到里面的數據與zoo.cfg里面的配置信息比較從而判斷到底是哪個server。
●B是這個服務器的地址。
●C是這個服務器Follower與集群中的Leader服務器交換信息的端口。
●D是萬一集群中的Leader服務器掛了,需要一個端口來重新進行選舉,選出一個新的Leader,而這個端口就是用來執(zhí)行選舉時服務器相互通信的端口。
-------------------------------------------------------------------------------------

//拷貝配置好的 Zookeeper 配置文件到其他機器上
scp /usr/local/zookeeper/conf/zoo.cfg 192.168.20.15:/usr/local/zookeeper/conf/
scp /usr/local/zookeeper/conf/zoo.cfg 192.168.20.16:/usr/local/zookeeper/conf/

//在每個節(jié)點上創(chuàng)建數據目錄和日志目錄
mkdir /usr/local/zookeeper/data
mkdir /usr/local/zookeeper/logs

//在每個節(jié)點的dataDir指定的目錄下創(chuàng)建一個 myid 的文件
echo 1 > /usr/local/zookeeper/data/myid
echo 2 > /usr/local/zookeeper/data/myid
echo 3 > /usr/local/zookeeper/data/myid

【分布式技術】注冊中心zookeeper,分布式,zookeeper,kafka

【分布式技術】注冊中心zookeeper,分布式,zookeeper,kafka?

步驟三:完成部署啟動

【分布式技術】注冊中心zookeeper,分布式,zookeeper,kafka

【分布式技術】注冊中心zookeeper,分布式,zookeeper,kafka文章來源地址http://www.zghlxwxcb.cn/news/detail-817286.html

//配置 Zookeeper 啟動腳本
vim /etc/init.d/zookeeper
#!/bin/bash
#chkconfig: 2345 20 90
#description:Zookeeper Service Control Script
ZK_HOME='/usr/local/zookeeper'
case $1 in
start)
	echo "---------- zookeeper 啟動 ------------"
	$ZK_HOME/bin/zkServer.sh start
;;
stop)
	echo "---------- zookeeper 停止 ------------"
	$ZK_HOME/bin/zkServer.sh stop
;;
restart)
	echo "---------- zookeeper 重啟 ------------"
	$ZK_HOME/bin/zkServer.sh restart
;;
status)
	echo "---------- zookeeper 狀態(tài) ------------"
	$ZK_HOME/bin/zkServer.sh status
;;
*)
    echo "Usage: $0 {start|stop|restart|status}"
esac

//	設置開機自啟
chmod +x /etc/init.d/zookeeper
chkconfig --add zookeeper

//分別啟動 Zookeeper
service zookeeper start

//查看當前狀態(tài)
service zookeeper status

到了這里,關于【分布式技術】注冊中心zookeeper的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • zookeeper+kafka分布式消息隊列集群的部署

    zookeeper+kafka分布式消息隊列集群的部署

    目錄 一、zookeeper 1.Zookeeper 定義 2.Zookeeper 工作機制 3.Zookeeper 特點 4.Zookeeper 數據結構 5.Zookeeper 應用場景 (1)統(tǒng)一命名服務 (2)統(tǒng)一配置管理 (3)統(tǒng)一集群管理 (4)服務器動態(tài)上下線 6.Zookeeper 選舉機制 (1)第一次啟動選舉機制 (2)非第一次啟動選舉機制 7.部署zookeepe

    2024年02月14日
    瀏覽(25)
  • 分布式應用:Zookeeper 集群與kafka 集群部署

    分布式應用:Zookeeper 集群與kafka 集群部署

    目錄 一、理論 1.Zookeeper? ?2.部署 Zookeeper 集群 3.消息隊列 ?4.Kafka 5.部署 kafka 集群 6.Filebeat+Kafka+ELK 二、實驗 1.Zookeeper 集群部署 2.kafka集群部署 3.Filebeat+Kafka+ELK 三、問題 ? ? ? ? ?1.解壓文件異常 2.kafka集群建立失敗 3.啟動 filebeat報錯 4.VIM報錯 5.?kibana無法匹配 四、總結

    2024年02月14日
    瀏覽(99)
  • 使用Spring Cloud實現(xiàn)分布式系統(tǒng)的注冊中心——nacos詳解

    Nacos是一個全新的分布式系統(tǒng)服務框架,它能夠提供服務發(fā)現(xiàn)、配置管理、動態(tài)DNS、流量管理等多種功能。其中最為重要的功能之一就是服務發(fā)現(xiàn),可以使得開發(fā)者更加方便地管理和維護分布式系統(tǒng)的各個服務。 在Spring Cloud中,我們可以使用Nacos作為注冊中心,實現(xiàn)服務的注

    2024年02月05日
    瀏覽(92)
  • Zookeeper 實戰(zhàn) | Zookeeper 和Spring Cloud相結合解決分布式鎖、服務注冊與發(fā)現(xiàn)、配置管理

    Zookeeper 實戰(zhàn) | Zookeeper 和Spring Cloud相結合解決分布式鎖、服務注冊與發(fā)現(xiàn)、配置管理

    專欄集錦,大佬們可以收藏以備不時之需: Spring Cloud 專欄: Python 專欄: Redis 專欄: TensorFlow 專欄: Logback 專欄: 量子計算: 量子計算 | 解密著名量子算法Shor算法和Grover算法 AI機器學習實戰(zhàn): AI機器學習實戰(zhàn) | 使用 Python 和 scikit-learn 庫進行情感分析 AI機器學習 | 基于lib

    2024年02月05日
    瀏覽(26)
  • 【簡單認識zookeeper+kafka分布式消息隊列集群的部署】

    【簡單認識zookeeper+kafka分布式消息隊列集群的部署】

    Zookeeper是一個開源的分布式的,為分布式框架提供協(xié)調服務的Apache項目。 Zookeeper從設計模式角度來理解:是一個基于觀察者模式設計的分布式服務管理框架,它負責存儲和管理大家都關心的數據,然后接受觀察者的注冊,一旦這些數據的狀態(tài)發(fā)生變化,Zookeeper就將負責通知已

    2024年02月13日
    瀏覽(24)
  • 如何保證分布式系統(tǒng)中服務的高可用性:應對 ZooKeeper Leader 節(jié)點故障的注冊處理策略

    作者:zhaokk 在現(xiàn)代分布式系統(tǒng)中,高可用性是一個至關重要的。分布式系統(tǒng)中的各個組件需要保證在各種異常情況下仍然能夠正常工作,確保系統(tǒng)的穩(wěn)定性和可靠性。ZooKeeper(以下簡稱為zk)作為一種常用的分布式協(xié)調服務,為分布式系統(tǒng)中的各種任務提供了基礎支持

    2024年02月11日
    瀏覽(26)
  • 【分布式技術】消息隊列Kafka

    【分布式技術】消息隊列Kafka

    目錄 一、Kafka概述 二、消息隊列Kafka的好處 三、消息隊列Kafka的兩種模式 四、Kafka 1、Kafka 定義 2、Kafka 簡介 3、Kafka 的特性 五、Kafka的系統(tǒng)架構 六、實操部署Kafka集群 ?步驟一:在每一個zookeeper節(jié)點上完成kafka部署 ?編輯 步驟二:傳給其他節(jié)點 步驟三:啟動3個節(jié)點 kafka管理

    2024年01月23日
    瀏覽(27)
  • SpringCloud(17~21章):Alibaba入門簡介、Nacos服務注冊和配置中心、Sentinel實現(xiàn)熔斷與限流、Seata處理分布式事務

    SpringCloud(17~21章):Alibaba入門簡介、Nacos服務注冊和配置中心、Sentinel實現(xiàn)熔斷與限流、Seata處理分布式事務

    Spring Cloud Netflix項目進入維護模式 https://spring.io/blog/2018/12/12/spring-cloud-greenwich-rc1-available-now 說明 Spring Cloud Netflix Projects Entering Maintenance Mode 什么是維護模式 將模塊置于維護模式,意味著 Spring Cloud 團隊將不會再向模塊添加新功能。我們將修復 block 級別的 bug 以及安全問題,我

    2024年01月19日
    瀏覽(43)
  • Zookeeper+Hadoop+Spark+Flink+Kafka+Hbase+Hive 完全分布式高可用集群搭建(保姆級超詳細含圖文)

    Zookeeper+Hadoop+Spark+Flink+Kafka+Hbase+Hive 完全分布式高可用集群搭建(保姆級超詳細含圖文)

    說明: 本篇將詳細介紹用二進制安裝包部署hadoop等組件,注意事項,各組件的使用,常用的一些命令,以及在部署中遇到的問題解決思路等等,都將詳細介紹。 ip hostname 192.168.1.11 node1 192.168.1.12 node2 192.168.1.13 node3 1.2.1系統(tǒng)版本 1.2.2內存建議最少4g、2cpu、50G以上的磁盤容量 本次

    2024年02月12日
    瀏覽(38)
  • 【分布式技術專題】「Zookeeper中間件」zookeeper的服務器的log4j升級為log4j2的升級方案(忽略配置化兼容問題)

    【分布式技術專題】「Zookeeper中間件」zookeeper的服務器的log4j升級為log4j2的升級方案(忽略配置化兼容問題)

    目前希望可以升級將Zookeeper中l(wèi)og4j的版本升級到log4j2版本,并且要避開相關的log4j2的安全隱患問題,此時需要考慮的就是針對于如何將無縫銜接log4j2的版本jar包的安裝呢?我們接下來觀察一下看看問題所在。目前我采用的環(huán)境是windows環(huán)境,不過也同樣對其他操作系統(tǒng)有效,畢

    2024年02月20日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包