一、課程名稱:配置 Codis 集羣
前端
二、具體內容java
Codis 的最大特色是利用了 codis-proxy 程序代理了全部的 Redis 服務組(每一個組有主從),那麼下面爲了方便處理,單獨創建幾組 redis 服務,而且爲了方便,讓每個主機上運行三個 redis。git
在 Codis 之中已經不直接使用 redis-server 來啓動 redis 服務了,全部的服務要經過 codis-server 來啓動,若是要想在一臺主機上配置多個 redis 服務,那麼就必須保證各自的端口以及數據文件的位置不同。github
CodisProxy 是整個的 Codis 處理靈魂所在,也就是說利用 codis-proxy 來代理全部的 codis-server,這樣若是 codis-server 中有一臺主機出現了問題,那麼也可使用它默認的 HA 機制,保證全部的 codis 服務可用。而 codis-proxy 主機上必定要單獨配置ZooKeeper 進行協調,由於全部的與 codis 配置的元數據信息都保存在 ZooKeeper 下,若是你如今的信息要進行更換,那麼就將 zookeeper 中的指定數據的節點刪除掉。redis
本次要參與運算的主機有以下幾臺:json
配置的時候強烈建議先配置好一臺 codis-server-*主機,然後分別進行復制後就能夠出現多臺主機了,理論上如今模擬的是 9vim
臺 redis 服務器的整合處理。api
2.1 、配置 Codis-Server
Codis-Server 主要負責來啓動 Redis 服務,千萬要記住一點,這個時候不須要再額外的配置 redis 軟件包了,由於在以前編譯的時候全部的軟件包都已經具有了。瀏覽器
一、 【codis-server-01】拷貝 redis 的配置文件到 codis 目錄之中;服務器
· 因爲本次要使用的 redis 腳本會不少的,那麼創建一個目錄:mkdir -p /usr/local/codis/conf/redis_conf/;
· cp /usr/data/gowork/src/github.com/CodisLabs/codis/extern/redis-3.2.4/redis.conf /usr/local/codis/conf/redis_conf/redis-6379.conf拷貝一個文件到此目錄之中,改名爲:redis-6379.conf;
· 先拷貝一個文件,然後改完以後再將其複製爲 redis-6380.conf、redis-6381.conf 兩個文件。
# bind 127.0.0.1port 6379 daemonize yesrequirepass mldnjavapidfile /usr/data/redis/redis-6379/run/redis_6379.pid logfile /usr/data/redis/redis-6379/logs/logs_6379.log dir /usr/data/redis/redis-6379/db二、 【codis-server-01】編輯 redis-6369.conf 文件:vim /usr/local/codis/conf/redis_conf/redis-6379.conf
三、 【codis-server-01】將 redis-6379.conf 文件複製爲 redis-6380.conf、redis-6381.conf 兩個文件;
· cp /usr/local/codis/conf/redis_conf/redis-6379.conf /usr/local/codis/conf/redis_conf/redis-6380.conf複製 redis-6379.conf 爲 redis-6380.conf 文件:
· 複製 redis-6379.conf 爲 redis-6381.conf 文件:
cp /usr/local/codis/conf/redis_conf/redis-6379.conf /usr/local/codis/conf/redis_conf/redis-6381.conf
· 編輯 redis-6380.conf 與 redis-6381.conf 兩個配置文件:
四、 【codis-server-01】創建相應的目錄:
· 創建 redis-6379 目錄:mkdir -p /usr/data/redis/redis-6379/{db,logs,run};
· 創建 redis-6380 目錄:mkdir -p /usr/data/redis/redis-6380/{db,logs,run};
· 創建 redis-6381 目錄:mkdir -p /usr/data/redis/redis-6381/{db,logs,run};
echo "vm.overcommit_memory=1" >> /etc/sysctl.conf五、 【codis-server-01】配置 Linux 的環境參數,將全部的可用內存交給 redis 服務:
六、 【codis-server-01】爲了測試方便,先進行各自服務的啓動,此時的啓動使用的不是 redis-server,而是 codis-server 啓動:
· 啓動 6379 的 Redis 服務:/usr/local/codis/bin/codis-server /usr/local/codis/conf/redis_conf/redis-6379.conf;
· 啓動 6380 的 Redis 服務:/usr/local/codis/bin/codis-server /usr/local/codis/conf/redis_conf/redis-6380.conf;
· 啓動 6381 的 Redis 服務:/usr/local/codis/bin/codis-server /usr/local/codis/conf/redis_conf/redis-6381.conf;七、 【codis-server-01】能夠啓動一個 redis 客戶端進行登陸測試;
八、 【codis-server-01】將當前的虛擬機關閉,然後爲其複製兩份:codis-server-0二、codis-server-03。
九、 【codis-server-*】啓動各自相應的 codis-server 服務;
2.2 、配置 ZooKeeper
在整個的 Codis 架構之中,Codis-Proxy 將做爲全部的 Codis-Server 的對外的代理,而在整個的處理之中,Codis-Proxy 所保存的數據必定是全部的 Codis-Server 信息,那麼這些信息都會保存在 ZooKeeper 的組件裏面,因此如今須要在"codis-proxy-01"主機上配置 ZooKeeper 組件,如今的配置是在單機下運行。
tar xzvf /srv/ftp/zookeeper-3.4.9.tar.gz -C /usr/local/一、 【codis-proxy-01】將 Zookeeper 的組件上傳到系統之中,然後進行解壓縮控制;
二、 【codis-proxy-01】爲了配置方便將目錄改名爲 zookeeper;
mv /usr/local/zookeeper-3.4.9/ /usr/local/zookeeper
三、 【codis-proxy-01】創建 zookeeper 的數據保存路徑:mkdir -p /usr/data/zookeeper;四、 【codis-proxy-01】修改 zookeeper 配置文件;
· 經過模版複製一個 zoo.cfg 文件:cp /usr/local/zookeeper/conf/zoo_sample.cfg /usr/local/zookeeper/conf/zoo.cfg;
· dataDir=/usr/data/zookeeperserver.1=192.168.122.186:2888:3888打開編譯此文件:vim /usr/local/zookeeper/conf/zoo.cfg;
五、 【codis-proxy-01】創建服務器標記的 myid 文件:
echo 1 >> /usr/data/zookeeper/myid
六、 【codis-proxy-01】啓動 ZooKeeper:/usr/local/zookeeper/bin/zkServer.sh start;
· 查看 ZooKeeper 狀態:/usr/local/zookeeper/bin/zkServer.sh status;
2.3 、配置 Codis-Dashboard
"codis-dashboard"主要是進行 Codis 配置使用的,也就是說全部的相關的配置項必須經過此進程才能夠完成。codis 有一點很是方便,就是說利用它自己提供的命令能夠自動生成配置文件;
/usr/local/codis/bin/codis-dashboard --default-config | tee /usr/local/codis/conf/dashboard.ini一、 【codis-proxy-01】生成 dashboard.ini 的配置文件:
此時會自動的在指定路徑中"/usr/local/codis/conf/dashboard.ini"生成配置文件;
二、 【codis-proxy-01】編輯此配置文件:vim /usr/local/codis/conf/dashboard.ini;
如今 codis-dashboard 服務主機的 IP 爲:192.168.122.186,因此服務的地址爲"192.168.122.186:18080"。
三、 【codis-proxy-01】啓動 dashboard 進程:
--log=/usr/local/codis/logs/dashboard.log --log-level=WARN > /dev/null 2>& 1 &--config=/usr/local/codis/conf/dashboard.ini--ncpu=2/usr/local/codis/bin/codis-dashboardnohup
若是要想確認當前的配置是否已經成功了,那麼就能夠經過日誌來觀察。
· 抓取日誌信息:more /usr/local/codis/logs/dashboard.log.2016-11-24;
2.4 、配置 Codis-FE(管理界面)
Codis 全部的配置項能夠有兩種方式進行管理:經過圖形界面進行配置,另一種是經過命令配置。
一、 【codis-proxy-01】經過配置文件生成 codis-fe 的啓動文件;
· 經過 codis 的管理工具完成:/usr/local/codis/bin/codis-admin;
· 經過"--help"查看這個命令的組成:/usr/local/codis/bin/codis-admin --help;
若是有須要也能夠查看生成的 codis.json 文件:cat /usr/local/codis/conf/codis.json。二、 【codis-proxy-01】啓動 codis-fe 的程序打開前端的圖形管理界面;
· --dashboard-list=/usr/local/codis/conf/codis.json --listen=192.168.122.186:18090 > /dev/null 2>& 1 &--log-level=WARN--log=/usr/local/codis/logs/fe.log--ncpu=2/usr/local/codis/bin/codis-fenohup啓動命令:/usr/local/codis/bin/codis-fe;
三、 打開瀏覽器,經過 WEB 進行相應的配置了。
· 訪問地址:http://192.168.122.186:18090/;
四、 首先若是要想進行配置,那麼必需要求進行分組處理;
· group1:
|- master:192.168.122.185:6379;
|- slave1:192.168.122.185:6380;
|- slave2:192.168.122.185:6381;
· group2:
|- master:192.168.122.187:6379;
|- slave1:192.168.122.187:6380;
|- slave2:192.168.122.187:6381;
· group3:
|- master:192.168.122.188:6379;
|- slave1:192.168.122.188:6380;
|- slave2:192.168.122.188:6381;
本文分享自微信公衆號 - 純潔的明依(chenmingyi20181223)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。