CentOS 7 x64 Codis 群集 以及 單機 docker

來源:互聯網
上載者:User

標籤:codis



# 要安裝zookeeper



wget http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz


tar zxvf zookeeper-3.4.6.tar.gz


mv zookeeper-3.4.6 /opt/local/zookeeper


mkdir /opt/local/zookeeper/logs


cd /opt/local/zookeeper/conf/


cp zoo_sample.cfg zoo.cfg


vi zoo.cfg     修改設定檔


修改 dataDir

dataDir=/opt/local/zookeeper/data

並增加 日誌

dataLogDir=/opt/local/zookeeper/logs


啟動 zookeeper

/opt/local/zookeeper/bin/zkServer.sh start



以下為群集配置

-------------------------------------------------------

tickTime=2000

initLimit=5

syncLimit=2

dataDir=/opt/local/zookeeper/data

dataLogDir=/opt/local/zookeeper/logs

clientPort=2181

server.1=0.0.0.0:2888:3888

server.2=172.16.32.33:2888:3888

server.3=172.16.32.40:2888:3888

#maxClientCnxns=60

#autopurge.snapRetainCount=3

#autopurge.purgeInterval=1

-------------------------------------------------------


echo 1 > /opt/local/zookeeper/data/myid

echo 2 > /opt/local/zookeeper/data/myid

echo 3 > /opt/local/zookeeper/data/myid


啟動 zookeeper


/opt/local/zookeeper/bin/zkServer.sh start


查看啟動狀態

/opt/local/zookeeper/bin/zkServer.sh status






# 首先安裝 go 語言


wget https://storage.googleapis.com/golang/go1.4.2.linux-amd64.tar.gz


tar zxvf go1.4.2.linux-amd64.tar.gz


mv go /usr/local/



# 配置環境變數


vi /etc/profile


export GOROOT=/usr/local/go

export PATH=$PATH:$GOROOT/bin

export GOPATH=/usr/local/codis




source /etc/profile


執行

go version

查看版本





安裝codis


yum install -y git


go get -u -d github.com/wandoulabs/codis #這個需要幾分鐘下載共30M檔案

package github.com/wandoulabs/codis

imports github.com/wandoulabs/codis

imports github.com/wandoulabs/codis: no buildable Go source 

files in /usr/local/codis/src/github.com/wandoulabs/codis


cd /usr/local/codis/src/github.com/wandoulabs/codis


# 安裝配置


./bootstrap.sh    #這個需要十幾分鐘共下載50M檔案

make gotest



# 將編譯好後,把bin目錄和一些指令碼複製過去/usr/local/codis目錄下:


mkdir -p /usr/local/codis/{logs,conf,scripts}

mkdir -p /opt/local/codis_server/{logs,conf,data}


cp -rf bin /usr/local/codis/

cp sample/config.ini /usr/local/codis/conf/

cp sample/redis_conf/6381.conf /opt/local/codis_server/conf/

cp -rf /usr/local/codis/src/github.com/wandoulabs/codis/sample/*.sh /usr/local/codis/scripts/

cp -rf /usr/local/codis/src/github.com/wandoulabs/codis/sample/usage.md /usr/local/codis/scripts/

cp /usr/local/codis/src/github.com/wandoulabs/codis/extern/redis-2.8.21/src/redis-cli /usr/local/codis/bin/redis-cli-2.8.21

ln -s /usr/local/codis/bin/redis-cli-2.8.21 /usr/local/codis/bin/redis-cli




# 修改設定檔


cd  /usr/local/codis/conf


vi config.ini


# 修改IP,配置WEB管理 預設 18087 連接埠


dashboard_addr


( zk  配置 zookeeper 地址,單機配置一個,群集配置多個~已,號隔開 )


proxy_id=codis_proxy_1  配置為唯一


product=     # zookeeper 節點資訊



cd /opt/local/codis_server/conf/


# 修改redis 設定檔 


6381.conf


cp 兩份 分別為 6379.conf    6380.conf  為 主與從配置


# 修改裡面的配置連接埠與配置 需要修改的配置如下:


daemonize yes      #後台模式運行

pidfile  var/run/redis_6379.pid   #pid 檔案

port 6379          #運行連接埠

timeout 50         #請求逾時時間,預設0

logfile "/opt/local/codis_server/logs/codis_6379.log"   #記錄檔

save 900 1                    #開啟儲存快照的條件( 第一個*表示多長時間 , 第三個*表示執行多少次寫操作 ) 

save 300 10

save 60 10000

dbfilename 6379.rdb                     #資料快照儲存的名字

dir /opt/local/codis_server/data        #資料快照的儲存目錄

appendfilename "6379_appendonly.aof"    #Redis更加高效的Database Backup及災難恢複方式。

appendfsync everysec                    # ( always: always表示每次有寫操作都進行同步. everysec: 表示對寫操作進行累積,每秒同步一次 )




# 啟動codis-server服務


/usr/local/codis/bin/codis-server /opt/local/codis_server/conf/6379.conf


/usr/local/codis/bin/codis-server /opt/local/codis_server/conf/6380.conf




# 修改 dashboard 啟動指令碼

vi /usr/local/codis/scripts/start_dashboard.sh    




# 修改為如下路徑:

nohup /usr/local/codis/bin/codis-config -c /usr/local/codis/conf/config.ini -L /opt/local/codis_server/logs/dashboard.log dashboard --addr=:18087 --http-log=/opt/local/codis_server/logs/requests.log &>/dev/

null &




# 啟動

/usr/local/codis/scripts/start_dashboard.sh




# 訪問dashboard

http://localhost:18087/admin/



------------------------------------------------------------------------------------

dashboard  禁止使用 kill -9 結束進程


如果使用kill -9 或者 意外關機導致進程關閉,需要將zookeeper 節點資訊刪除才能啟動。


或者修改 config.ini 中的 product  選項,填寫不相同的節點。


------------------------------------------------------------------------------------



# 添加redis組


/usr/local/codis/scripts/


vi /usr/local/codis/scripts/add_group.sh


-------------------------------------------------------------------------------------------------------------------------------------------

#!/bin/sh


let group=0


for port in 638{0..3}; do

    let group="1+group"

    echo "add group $group with a master(localhost:$port), Notice: do not use localhost when in produciton"

    /usr/local/codis/bin/codis-config -c /usr/local/codis/conf/config.ini -L /opt/local/codis_server/logs/cconfig.log server add $group localhost:$port master

done

-------------------------------------------------------------------------------------------------------------------------------------------



運行 /usr/local/codis/scripts/add_group.sh   自動添加




# Server Groups  -- > New Server Group -- > Add New Redis Instance


#通過管理頁面添加組ID,為組添加主從執行個體,一個組裡只能有一個redis-master:


第一個主一個從,預設每個組裡面第一個執行個體是主


group_1

127.0.0.1:6379   master

127.0.0.1:6380   slave


group_2


..............


group_3


..............


group_4


..............



必須有4組或以上,否則報錯




# 修改指令碼,初始化槽


vi /usr/local/codis/scripts/initslot.sh


---------------------------------------------------------------------------------------------------------------


#!/bin/sh

echo "slots initializing..."

/usr/local/codis/bin/codis-config -c /usr/local/codis/conf/config.ini slot init -f

echo "done"


echo "set slot ranges to server groups..."

for ((i=0;i<4;i++)); do

    let beg="256*i"

    let end="256*i + 255"

    let group="1+i"

    /usr/local/codis/bin/codis-config -c /usr/local/codis/conf/config.ini slot range-set $beg $end $group online

done

echo "done"


----------------------------------------------------------------------------------------------------------------




# 啟動指令碼  ( 初始化solt是在group設定好之後 )


/usr/local/codis/scripts/initslot.sh






# 修改start_proxy.sh,啟動codis-proxy服務


vi /usr/local/codis/scripts/start_proxy.sh


----------------------------------------------------------------------------------------------------------------------------------------

#!/bin/sh

echo "shut down proxy_1..."

/usr/local/codis/bin/codis-config -c /usr/local/codis/conf/config.ini proxy offline proxy_1

echo "done"


echo "start new proxy..."

nohup /usr/local/codis/bin/codis-proxy --log-level info -c /usr/local/codis/conf/config.ini -L /opt/local/codis_server/logs/proxy.log  --cpu=8 --addr=0.0.0.0:19000 --http-addr=0.0.0.0:11000 &

echo "done"


echo "sleep 3s"

sleep 3

tail -n 30 /opt/local/codis_server/logs/proxy.log


------------------------------------------------------------------------------------------------------------------------------------------






vi /usr/local/codis/scripts/set_proxy_online.sh


------------------------------------------------------------------------------------------------------------------------------------------

#!/bin/sh

echo "set proxy_1 online"

/usr/local/codis/bin/codis-config -c /usr/local/codis/conf/config.ini proxy online proxy_1

echo "done"


------------------------------------------------------------------------------------------------------------------------------------------




# 啟動proxy

/usr/local/codis/scripts/start_proxy.sh




# 上線proxy

/usr/local/codis/scripts/set_proxy_online.sh










docker 


172.16.1.52


docker run -h="Codis" --name Codis -d -v /opt/upload/zookeeper:/opt/local/zookeeper/data -v /opt/upload/codis/data:/opt/local/codis_server/data -v /opt/upload/codis/logs:/opt/local/codis_server/logs -p 2181:2181 -p 22:22 -p 6379:6379 -p 6380:6380 -p 19000:19000 -p 18087:18087 -p 11000:11000 centos/mx-codis



----------------------------------------------------------------------------------------

群集版 codis_proxy 


docker 需要配置 固定IP模式,否則 ip addr 讀取的為 docker 容器的網卡ip 


----------------------------------------------------------------------------------------


CentOS 7 x64 Codis 群集 以及 單機   docker

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.