前言:
在學習完分佈式和大數據基礎之後,很多高可用的系統都是基於集羣來完成的,所謂集羣就是將系統部署到多臺服務器上面,多臺服務器提供相同的服務,這樣在某一臺或者某幾臺出現問題的時候依然能能夠提供穩定的服務。
下面介紹幾個常用的服務集羣的搭建。
一、zookeeper集羣搭建
在分佈式系統中少不了一個重要的角色,服務中心,zookeeper,作爲uoge分佈式的協調中心,主要進行統一的數據管理,提供了以文件系統和監聽機制等功能。zookeeper使用選舉機制,所以集羣一般以奇數個服務搭建,這裏我們採用三臺機器來搭建。
1、再虛擬機安裝好zookeeper之後,修改zookeeper的配置文件zoo_sample.conf 修改成zoo.conf,修改配置文件,增加集羣配置,
server.1=linux001:2888:3888
server.2=linux002:2888:3888
server.3=linux003:2888:3888
其中的1、2、3分別爲3臺zookeeper的id,這裏可以自定義,後面的linux01分別對應3臺機器的ip,2888爲zookeeper服務器端口,3888爲zookeeper服務間的通信端口。
2、在配置文件的datadir目錄下新增一個文件myid,裏面內容爲該臺機器的id,
3、到此zookeeper集羣已經配置好了,分別啓動三臺機器三的zookeeper,通過命令行 zkServer.sh status查看zookeeper在集羣中的角色。
二、Redis集羣的搭建
集羣的搭建可以有效的實現高可用,在Redis集羣之中同樣是使用主從的模式,一臺主機可以搭配多臺從機,在redis中,主機負責寫,從機負責讀,此處我們採用三主三從的模式,因此一共需要6臺虛擬機,或者配置6個不同的配置文件來實現僞集羣。
1、安裝好redis之後,在安裝目錄下增加集羣目錄
2、在redis-cluster目錄下新建6個文件夾用來保存模擬6臺機器的數據文件和配置文件
3、修改配置文件redis.conf
3.1、daemonize yes 設置redis以守護線程方式啓動;
3.2、 port 900**(根據每個機器設置相應的端口號),設置端口號;
3.3、bind xxxxxx 綁定當前機器IP;
3.4、dir /usr/local/redis-cluster/900*/ 指定數據文件的存放位置,必須指定不同的目錄位置;
3.5、cluster-enabled yes (啓動集羣模式)
cluster-config-file nodes-700*.conf (設置本機的配置文件)
cluster-node-timeout 15000(設置集羣的超時時間)
4、redis集羣使用ruby命令,先下載安裝ruby
yum install ruby
yum install rubygems
gem install redis(安裝redis和ruby的接口)
5、分別啓動6個redis ,並堅持redis是否都啓動成功
ps -el |grep redis
6、在redis的安裝目錄src下執行命令來創建集羣
./redis-trib.rb create –replicas 1 ip1:port1 ip2:port2 .. .. ..(創建集羣)
注:1*******只主節點和從節點的比例,並且主節點寫在前面,後面爲對應的從節點
7、連接集羣客戶端
./redis-cli -c -h ip -p port
-c 表示登錄集羣
-h 表示ip
-p 表示端口號
三、Kafka集羣搭建
kafaka是一個分佈式的分佈訂閱式的消息系統,
1、修改broker的id
2、修改log日誌的地址
kafka的日誌默認是保存在臨時文件tmp中,每次重啓系統的時候,文件會丟失,因此,建議修改日誌的保存路徑。
3、修改zookeeper的鏈接地址
kafka基於zookeeper實現訂閱-通知模式,並自帶有zookeeper,高可用的消息中心要基於zookeeper集羣,這裏,我們使用剛剛配置的zookeeper 集羣。端口使用默認端口。
4、配置環境變量,增加Kafka的安裝路徑
在/etc/profile 下配置Kafka的安裝路徑。
5、啓動
5.1、先啓動zookeeper
5.2、啓動Kafka集羣 ./bin/kafka-server-start.sh -daemon ./config/server.properties
5.3、創建主題
5.4、查看集羣狀態
可以看到該主題的分區以及備份在哪些Kafka集羣下。