Linux Zookeeper 安裝, 帶視頻

瘋狂創客圈 Java 高併發【 億級流量聊天室實戰】實戰系列 【博客園總入口html

面試必備+面試必備之 高併發基礎書籍 【Netty Zookeeper Redis 高併發實戰java


《SpringCloud Nginx 高併發核心編程》 環境搭建 圖文教程和演示視頻:面試

組件 連接地址
【必須】 虛擬機Linux 開發環境準備 windows vmware 擴展硬盤 + 共享文件
Linux openresty 安裝 Linux openresty 安裝
【必須】Linux Redis 安裝(帶視頻) Linux Redis 安裝(帶視頻)
【必須】Linux Zookeeper 安裝(帶視頻) Linux Zookeeper 安裝, 帶視頻
Windows Redis 安裝(帶視頻) Windows Redis 安裝(帶視頻)
RabbitMQ 離線安裝(帶視頻) RabbitMQ 離線安裝(帶視頻)
ElasticSearch 安裝, 帶視頻 ElasticSearch 安裝, 帶視頻
Nacos 安裝(帶視頻) Nacos 安裝(帶視頻)
【必須】Eureka Eureka 入門,帶視頻
【必須】springcloud Config 入門,帶視頻 springcloud Config 入門,帶視頻
【必須】Zuul 詳解,帶視頻 Zuul 詳解,帶視頻
【必須】SpringCloud 腳手架打包與啓動 SpringCloud腳手架打包與啓動

1 何爲僞集羣模式

在學習環境中,若是沒有多餘的服務器,這裏就將三個ZooKeeper 節點都安裝到本地機器上,故稱謂僞集羣模式。
雖然,僞集羣模式只是便於開發、普通測試,儘可能不用於生產環境。從學習的角度來講,若是瞭解了僞集羣模式下的安裝和配置,生產環境下的安裝和配置的方法,也是大體差很少的。spring

安裝ZooKeeper以前,須要規劃一下僞集羣節點的個數,ZooKeeper節點數有如下要求:
(1)ZooKeeper集羣節點數必須是基數。
爲何呢?ZooKeeper 集羣中,須要一個主節點,稱之爲leader節點。leader節點是集羣經過選舉的規則,從全部節點中選舉出來的。選舉的規則中很重要的一條是:要求可用節點數量 > 總節點數量/2 。若是是偶數個節點,則可能會出現不知足這個規則的狀況。
(2)ZooKeeper集羣至少是3個。
ZooKeeper能夠經過一個節點,正常啓動和提供服務。可是,一個節點的ZooKeeper服務,不能叫作集羣,其可靠性大打折扣,僅僅做爲學習使用。正常狀況下,搭建ZooKeeper集羣,至少須要3個節點。apache

這裏,做爲學習案例,在本地機器上,規劃搭建一個3個節點的僞集羣。 實際上,啓動的時候,啓動兩個節點,Zookeeper就能夠正常工做了。編程

2 下載並解壓縮

首先是下載。在apache的官方網站提供了好多鏡像下載地址,而後找到對應的版本,目前最新的是3.4.13。vim

http://mirrors.cnnic.cn/apache/ZooKeeper/ZooKeeper-3.4.13/ZooKeeper-3.4.13.tar.gzwindows

瘋狂創客圈網盤,已經備好的安裝包,也能夠直接下載服務器

mkdir -p  /work/zookeeper/zooKeeper-3.4.13
tar  -zxvf  /work/zookeeper/zooKeeper-3.4.13.tar.gz   -C   /work/zookeeper/zooKeeper-3.4.13

3 安裝Zookeeper

安裝集羣的第一步,在安裝目錄下,建立好兩個目錄:日誌目錄、數據目錄。併發

mkdir -p  /work/zookeeper/zooKeeper-3.4.13/data

mkdir -p   /work/zookeeper/zooKeeper-3.4.13/logs

進入 /work/zookeeper/zooKeeper-3.4.13/conf目錄,把zoo_sample.cfg文件複製一份名字改爲zoo.cfg。

cp zoo_sample.cfg zoo.cfg

4 修改zoo.cfg 配置文件

修改zoo.cfg 配置文件,設置日誌目錄、數據目錄、客戶端鏈接端口、僞集羣節點的配置

dataDir=/work/zookeeper/zookeeper_01/data

dataLogDir=/work/zookeeper/zookeeper_01/logs

clientPort=2181


server.1=192.168.71.82:2881:3881

server.2=192.168.71.82:2882:3882

server.3=192.168.71.82:2883:3883

兩個目錄設置選項的介紹以下:

dataDir=/work/zookeeper/zookeeper_01/data

dataLogDir=/work/zookeeper/zookeeper_01/logs

(1)dataDir:數據目錄選項,配置爲前面準備的數據目錄。myid文件,處於此目錄下。
(2) dataLogDir:日誌目錄選項, 配置爲前面準備的日誌目錄。若是沒有設置該參數,默認將使用和dataDir相同的設置。

clientPort = 2181 的介紹以下:

clientPort: 表示client客戶端鏈接ZooKeeper集羣中的節點的端口號。在生成環境的集羣中,不一樣的節點,處於不一樣的機器,端口號通常都相同,便於記憶和使用。因爲這裏是僞集羣模式,因此,三個節點集中在一臺機器上,因此3個端口號,配置爲不同。
clientPort:通常設置爲2181。僞集羣下,不一樣的節點,clientPort不能相同,能夠按照編號,進行累加。

集羣節點信息的配置,示例以下:

server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890

節點信息,須要配置集羣中全部節點的 (id)編號、IP、端口。在「.cfg」配置文件中,能夠按照這樣的格式進行配置,每一行都表明一個節點。一個節點格式爲:

server.id=host:port:port

在ZooKeeper集羣中,每一個節點都須要感知到整個集羣是哪些節點組成,因此,每個配置文件,都須要配置所有的節點。

整體來講,配置節點的時候,注意四點:
(1)不能有相同id的節點,須要確保每一個節點的myid文件中的id值不一樣;
(2)每一行 「server.id=host:port:port」中的id值,須要與所對應節點的數據目錄下的myid中的id值,保持一致;
(3)每個配置文件,都須要配置所有的節點信息。不只僅是配置本身的那份,而是須要全部節點的id、ip、端口配置。
(4)每一行 「server.id=host:port:port」中,須要配置兩個端口。前一個端口爲通訊端口(如示例中的2888)用於節點之間的通信使用,後一個端口爲選主端口(如上的3888)用於選舉 leader主節點使用。
(5)在僞集羣的模式下,每一行記錄,相同的端口必須修改都不同,主要是避免端口衝突。在分佈式集羣模式下,因爲不一樣節點的ip不一樣,每一行記錄,能夠端口相同。

5 建立myid文件文件

在data目錄下,爲每個節點,建立一個id文件。每個節點,須要有一個記錄節點id 的文本文件,文件名爲myid。myid文件的特色以下:
(1)myid文件的惟一做用,是記錄(僞)節點的編號;
(2)myid文件是一個文本文件,文件名稱爲myid;
(3)myid文件內容爲一個數字,表示節點的編號;
(4)myid文件中,只能有一個數字,不能有其餘的內容;
(5)myid文件的存放位置,默認處於數據目錄下面。

ZooKeeper對id的值,有何要求呢?
首先,myid文件中id的值,只能是一個數字,即一個節點的編號ID;
其次,id的範圍是1~255,表示集羣最多的節點個數爲255個。

6 複製節點

將zooKeeper-3.4.13 複製三份分別取名爲zookeeper_01和zookeeper_02和zookeeper_03。第三份能夠複製也能夠不復制。

cp  /work/zooKeeper/zooKeeper-3.4.13   /work/zooKeeper/zookeeper_01

cp  /work/zooKeeper/zooKeeper-3.4.13   /work/zooKeeper/zookeeper_02

cp  /work/zooKeeper/zooKeeper-3.4.13   /work/zooKeeper/zookeeper_03

而且在每一份的配置文件中,修改正確的路徑,端口號、以及myid 文件的編號。

好比 /work/zookeeper_02的/conf/zoo.cfg的配置項,修改以下。

dataDir=/data/zookeeper/zookeeper_02/data

dataLogDir=/data/zookeeper/zookeeper_02/logs

clientPort=2182

server.1=192.168.71.82:2881:3881

server.2=192.168.71.82:2882:3882

server.3=192.168.71.82:2883:3883

好比 /work/zookeeper_02/data/myid的數字,也須要對應修改成2。

7.啓動

分別進入啓動三臺服務。至少2臺。

/work/zookeeper/zookeeper-01/bin/zkServer.sh start

/work/zookeeper/zookeeper-02/bin/zkServer.sh start

10.啓動完成後,查看服務狀態。

/work/zookeeper/zookeeper-02/bin/zkServer.sh  status

8 設置開機啓動

在開機啓動命令文件中,加入兩行,命令以下:

vim /etc/rc.local

加入兩行,以下:

/usr/bin/su  - root  -c   "/work/zookeeper/zookeeper-01/bin/zkServer.sh start"
/usr/bin/su  - root  -c   "/work/zookeeper/zookeeper-02/bin/zkServer.sh start"

具體,請關注 Java 高併發研習社羣博客園 總入口


最後,介紹一下瘋狂創客圈:瘋狂創客圈,一個Java 高併發研習社羣博客園 總入口

瘋狂創客圈,傾力推出:面試必備 + 面試必備 + 面試必備 的基礎原理+實戰 書籍 《Netty Zookeeper Redis 高併發實戰

img


瘋狂創客圈 Java 死磕系列

  • Java (Netty) 聊天程序【 億級流量】實戰 開源項目實戰
相關文章
相關標籤/搜索