1背景
codis的github地址,裏面很全,而且是中文的,可是按照他的步驟仍是有些坑哈
https://github.com/CodisLabs/codisjava
codis是一種基於高可用的redis集羣的一種帶來,使用go語言編寫。被普遍使用到豌豆莢和其餘公司。
https://github.com/CodisLabs/codis/releases 能夠下載各類版本
codis特色:
圖形化操做和管理員工具
支持大部分redis命令,徹底兼容Twemproxy
代理數據在zookeeper中,能夠實現高可用。redis cluster也能夠經過主從實現高可用。python
中文使用文檔:
https://github.com/CodisLabs/codis/blob/release3.2/doc/tutorial_zh.mdlinux
本文測試版本
codis3.1
go1.6.2.linux-amd64
zookeeper-3.4.6
jdk8git
一安裝環境
只有一臺虛擬機,模擬的一個codis環境
安裝目錄:
go:/usr/local/go
codis:/usr/local/codis
jdk:/usr/local/jdk
zk:/usr/local/zookeeper-3.4.6github
下載軟件目錄:
/home/dowload/:我習慣下載到這個目錄,而後在cp,解壓,更名什麼的golang
同一修改配置文件:
GOROOT就是go的安裝目錄,codis編譯的時候,會根據這個目錄來找go。
GOPATH就是codis的根目錄,以後下載的時候會直接下載到這個目錄。redis
1安裝go
wget https://storage.googleapis.com/golang/go1.6.2.linux-amd64.tar.gz
官方推薦的https://golang.org/doc/install須要外網哈,坑apache
1.1修改環境變量,上面已經修改,source /etc/profile
1.2解壓,移動到規定安裝目錄
tar -zxvf go1.6.2.linux-amd64.tar.gz
移到安裝目錄
cp -r go /usr/local/vim
1.3驗證
go version
centos
寫個helloword,go來運行,若是運行成功,那麼沒有問,而且go版本不能過低哈,否則codis編譯要失敗的。
vim hello.go
go run hello.go
2安裝jdk
主要是zk要使用
略:上傳-解壓-更名-修改配置文件
java -version
3安裝zk
下載到/home/dowload/目錄
wcd get http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz -P /home/dowload/
3.1安裝配置zk單機
移動
cp /home/dowload/zookeeper-3.4.6.tar.gz /usr/local/
解壓
tar -zxvf zookeeper-3.4.6.tar.gz
刪除
rm -rf zookeeper-3.4.6.tar.gz
修改配置文件:
cd /usr/local/zookeeper-3.4.6/conf
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
這裏是單機zk,就不修改配置文件了
注意在dataDir目錄下,新建一個myid,寫入1
cd /tmp/zookeeper
vim myid
3.2啓動
/usr/local/zookeeper-3.4.6/bin/zkServer.sh start
二安裝codis與組件
2.1新建目錄與下載:
mkdir -p
GOPATH/src/github.com/CodisLabs
git clone https://github.com/CodisLabs/codis.git -b release3.1
2.2編譯
cd $GOPATH/src/github.com/CodisLabs/codis
make
這裏有個報錯,說找不到 autoconf
yum install autoconf
從新make
這裏make
go build了dashboard,proxy,admin,ha,fe哈,這些codis的一些組件哈
這裏編譯已經完成了。
注意的是,目錄結構必定要是,gopath的本身的定義,單後後面的目錄須要新建,必須和官網同樣,不同,要報錯。
$GOPATH/src/github.com/CodisLabs/
這裏有個快速啓動-這個就不嘗試了哈,且須要python3才能夠哈,通常centos自帶的是Python2
三codis組件啓動
3.1啓動dashboard
修改配置文件
cd /usr/local/codis/src/github.com/CodisLabs/codis/config
vim dashboard.toml
主要就是修改ip,把admin_addr的0.0.0.0修改成本身的ip,192.168.247.140,
由於zk是單機,因此不用修改
使用命令啓動dashboard
cd /usr/local/codis/src/github.com/CodisLabs/codis
nohup ./bin/codis-dashboard –ncpu=1 –config=./config/dashboard.toml –log=dashboard.log –log-level=WARN &
nohup是後臺把進程在後臺啓動哈,–ncpu爲分配的cpu個數,配置文件在哪裏,日誌寫在哪裏,日誌級別。
中止dashboard:
./bin/codis-admin –dashboard=192.168.247.140:18080 –shutdown
這裏必須使用命令來中止dashboard,否則會報錯哈。報錯的緣由是,已經在zk中註冊了,可是沒有正常關閉的話,zk中的信息就不能刪除,再次啓動會報錯。這裏有2種解決方法:
1使用zk直接刪除
./zkClie.sh -server 192.168.247.140進入zk命令行
ls /
查看zk保存了那些信息,而後
rmr /codis3
而後重啓dashborad就能夠了
2是使用admin命令來實現,這裏必需要保證dashboard進程以及中止了。
查看方法爲ps -ef | grep codis
./bin/codis-admin –remove-lock –product=codis-demo –zookeeper=127.0.0.1:2181
3.2啓動Codis Proxy
修改配置文件
cd /usr/local/codis/src/github.com/CodisLabs/codis/config
vim proxy.toml
主要是把0.0.0.0的ip改成192.168.247.140,本身本機ip.其餘的參數,工程名等就保持默認就好
啓動proxy
nohup ./bin/codis-proxy –ncpu=1 –config=./config/proxy.toml –log=proxy.log –log-level=WARN
參數含義和啓動dashboard同樣哈
中止
./bin/codis-admin –proxy=192.168.247.140:11080 –auth=」」 –shutdown
而且,proxy若是異常退出,請使用下面命令,緣由和dashboard同樣,
./bin/codis-admin –dashboard=192.168.247.140:18080 –remove-proxy –addr=192.168.247.140:11080 –force
codis-proxy 啓動後,處於 waiting 狀態,監聽 proxy_addr 地址,可是不會 accept 鏈接-就是尚未在集羣中,添加到集羣並完成集羣狀態的同步,才能改變狀態爲 online。從圖片能夠看出,proxy一直在等待online。這是從日誌中查看 tail proxy.log.2017-03-23
添加的方法有如下兩種:
第一種:經過 codis-fe 添加:經過 Add Proxy 按鈕添加
第二種:經過admin命令添加
./bin/codis-admin –dashboard=192.168.247.140:18080 –create-proxy -x 192.168.247.140:11080
分別爲dashboard和proxy的地址端口
而後在查看,proxy的日誌,截圖以下
proxy已經oline,而且正在工做中哈。
這裏我使用的是命令來添加哈。
添加的時候會完成以下操做:
● 獲取 proxy 信息,對集羣 name 以及 auth 進行驗證,並將其信息寫入到外部存儲中;
● 同步 slots 狀態;
● 標記 proxy 狀態爲 online,此後 proxy 開始 accept 鏈接並開始提供服務;
3.3啓動Codis Server
首先,修改配置文件
原本在conif文件夾中有一個reids.conf的配置文件的,可是codis3.1沒有,這就尷尬了。
本身從redis中拷貝一個過來就行了,這個就是通常的redis的配置文件,這裏我是從codis3.2中下載的哈,都同樣。
vim ./config/redis.conf
主要修改2點,1是redis綁定的ip,2是保護模式修改成NO
bind 192.168.247.140
pretected-mode no
啓動命令
nohup ./bin/codis-server ./config/redis.conf
這個就和通常的redis同樣哈
3.4啓動Codis FE
nohup ./bin/codis-fe –ncpu=1 –log=fe.log –log-level=WARN –zookeeper=127.0.0.1:2181 –listen=192.168.247.140:8080 &
前一個參數是zk的地址端口,後面一個是fe的地址端口
添加一個group,而後把剛纔啓動的server添加到group中
剛纔已經經過set a 100,設置了一個key哈
上面就有數據了哈
3.5HA
官方收了不推薦使用codis ha,推薦使用sentinel 做爲HA。就不搞了
這裏基本的組件以及開啓了。下面來看下界面的使用。
四coids集羣界面
修改防火牆,把對外端口開發,否則不能訪問的哈
vim /etc/sysconfig/iptables
-A INPUT -m state –state NEW -m tcp -p tcp –dport 8080 -j ACCEPT
-A INPUT -m state –state NEW -m tcp -p tcp –dport 18080 -j ACCEPT
-A INPUT -m state –state NEW -m tcp -p tcp –dport 18087 -j ACCEPT
-A INPUT -m state –state NEW -m tcp -p tcp –dport 11080 -j ACCEPT
重啓防火牆
service iptables restart
輸入http://192.168.247.140:8080/就能夠查看集羣了哈。
這裏先使用redis-cli命令在redis中添加一個key
./redis-cli -h 192.168.247.140
set a 100
get a
在這個界面中,你能夠管理codis集羣,加一個proxy,加一個redis server,查看dashboard的狀況等。