新版腾讯分分彩走势图 | 財經 | 資源 | 理財 | 考研 | 職場 | 論文 | 資格 | 股票學院 |

股票學院: 股票入門 - 股票知識 - 股票術語 - 炒股技巧 - 選股技巧 - 跟莊技巧 - 炒股經驗 - 投資策略 - K線圖 - 均線 - 分時圖 - 成交量 - 波浪理論 - 基本面分析 - 心理分析 - 漲停研究 - 趨勢線 - 江恩理論 - MACD - KDJ - 技術指標 - 財經股票書籍在線閱讀 - 金融類書籍下載 - 銀行學院 - 保險學院 - 外匯學院 - 債券學院 - 股票學院 - 基金學院 - 港股學院 - 黃金學院

當前位置:新版腾讯分分彩走势图 > 金融云 > 文章正文

浙江11选开奖:ZooKeeper 原理與服務器集群部署

時間:2019-07-26 21:46:42來源:kefeng.wang博客作者:佚名

    新版腾讯分分彩走势图 www.atbwx.com ZooKeeper 是大型分布式系統中可靠的協調系統,它以樹狀結構存儲數據,以領導選舉和信息同步機制保證了集群的高可用性,以事件通知機制協助事件訂閱者及時捕獲數據的變化,可協助實現 Dubbo、Kafka 等架構。本文以 CentOS 和 Windows 為例,總結了 ZooKeeper 集群的部署操作,并以自帶的腳本命令操作其數據。

    ZooKeeper 原理與服務器集群部署

    1.概述

    ZooKeeper 是 Hadoop 的一個子項目,是大型分布式系統中可靠的協調系統。分布式應用程序以此實現更高級別的服務,可用于分布式系統的配置維護、名字服務、分布式同步、組服務等:

    用于 Dubbo: 作為配置中心;

    用于 Kafka: 作為 Broker/Producer/Consumer 共享的配置中心。

    官網首頁: https://zookeeper.apache.org/

    官網文檔: https://zookeeper.apache.org/doc/current/

    1.1 ZAB協議

    ZooKeeper 原理與服務器集群部署

    集群間通過 ZAB(ZooKeeper Atomic Broadcast)協議保持數據一致性,該協議包括兩個階段:

    1.1.1 領導選舉(Leader Election)

    選舉出一個 Leader(所有寫操作傳送給 Leader),其他機器被稱為 Follower;

    當前 Leader 崩?;蚴ゴ蠖嗍?Follower 后,會選舉出新的 Leader;

    1.1.2 信息同步(Atomic broadcast)

    用于同步 Leader 與 Follower 之間的信息,保證數據一致。

    1.2 內部原理

    https://zookeeper.apache.org/doc/current/zookeeperOver.html

    存儲方式與標準文件系統非常相似,每個節點稱作 znode,本身包含數據,還可以擁有子節點。

    客戶端以TCP連接一臺節點,該節點故障時,客戶端會切換至其他節點。

    客戶端可以訂閱某些節點的事件(watcher機制),當節點內容或其子節點有變化時,客戶端會收到通知。

    ZooKeeper 原理與服務器集群部署

    • 高性能:多讀少寫的情況下,速度很快;存儲于內存中,并有持久存儲中的事務日志和快照;
    • 高可用性(無中心化結構可避免單點故障): 個別節點故障不影響整體使用;
    • 監視機制: 客戶端可以監視一個結點(node),當結點斷開或有修改時,客戶端會收到通知;
    • 順序一致性: 來自客戶端的更新將按照它們發送的順序進行應用。
    • 原子性: 保證數據完整、一致,更新成功或失敗,沒有部分結果。
    • 單系統映像: 無論服務器連接到哪個服務器,客戶端都會看到相同的服務視圖。
    • 可靠性: 一旦更新被應用,它將一直持續到客戶覆蓋更新。
    • 及時性: 系統的客戶觀點在一定的時間范圍內保證是最新的。

    1.3 系統要求

    ZooKeeper 以 Java 版本運行,Java 版本要求為 1.6+;

    支持的操作系統包括: GNU/Linux, Solaris, FreeBSD, Windows。

    2.Linux 下安裝

    https://zookeeper.apache.org/doc/current/zookeeperStarted.html

    2.1 下載并解壓(35M)

    1. # https://archive.apache.org/dist/zookeeper/ 
    2. # https://archive.apache.org/dist/zookeeper/zookeeper-3.4.11/ 
    3. wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.11/zookeeper-3.4.11.tar.gz 
    4. sudo rm -rf /opt/zookeeper-3.4.11 
    5. sudo tar -zxf zookeeper-3.4.11.tar.gz -C /opt 
    6. sudo chown -R root:root /opt/zookeeper-3.4.11 
    7. sudo rm -rf /opt/zookeeper-3.4.11/bin/*.cmd 

    2.2 設置環境變量

    1. ## sudo vim /etc/profile ## 所有用戶有效 
    2. export ZOOKEEPER_HOME=/opt/zookeeper-3.4.11 
    3. export PATH=$PATH:$ZOOKEEPER_HOME/bin 

    文件保存后,Linux用戶重新登錄后生效。

    2.3 準備目錄與配置文件

    1. # sudo vim $ZOOKEEPER_HOME/bin/zkInit.sh 
    2. # sudo -E sh $ZOOKEEPER_HOME/bin/zkInit.sh 
    3. for INDEX in {1..3}; do 
    4.     sudo rm -rf $ZOOKEEPER_HOME/{data,logs}/$INDEX 
    5.     sudo mkdir -p $ZOOKEEPER_HOME/{data,logs}/$INDEX 
    6.     echo $INDEX | sudo tee $ZOOKEEPER_HOME/data/$INDEX/myid > /dev/null 
    7.  
    8.     # zoo.cfg 參考: grep -v "^#" $ZOOKEEPER_HOME/conf/zoo_sample.cfg 
    9.     cat > $ZOOKEEPER_HOME/conf/zoo-$INDEX.cfg << EOF 
    10. tickTime=2000 ## ZooKeeper 的最小時間單位(ms) 
    11. initLimit=10 ## 投票選舉新 leader 的初始化時間(以 tickTime 為單位) 
    12. syncLimit=5 ## Leader 檢測 Follower 可用性心跳的超時時間(以 tickTime 為單位) 
    13. clientPort=218$INDEX ## 客戶端用來連接 ZooKeeper 的端口 
    14. dataDir=$ZOOKEEPER_HOME/data/$INDEX ## 數據目錄(存儲內存數據庫快照) 
    15. dataLogDir=$ZOOKEEPER_HOME/logs/$INDEX ## 日志目錄(存儲事務日志) 
    16. server.1=localhost:2281:2291 
    17. server.2=localhost:2282:2292 
    18. server.3=localhost:2283:2293 
    19. EOF 
    20. done 

    其中的 clientPort=218$INDEX 是提供給客戶端連接的端口(2181,2182,2183);

    相關閱讀

    焦點圖文

    關于我們 | 廣告服務 | 商務合作 | 網站地圖

    版權所有 Copyright(C)2018-2020 蘇州騏云躍網絡科技有限公司,未經授權禁止復制或建立鏡像,否則將依法追究法律責任!
    聲明:我們不做任何形式的代客理財及投資指導,凡是以天下金融網名義做股票推薦的行為均屬違法!
    廣告商的言論與行為均與天下金融網無關!股市有風險,投資需謹慎。
    蘇公網安備 32050502000166號
    蘇ICP備14018528號
    商務合作:新版腾讯分分彩走势图

    天下金融網版權所有