缓存(三)

软件相关

?
1
2
3
4
java软件: jdk-8u151-linux-x64. tar .gz
zookeeper:  zookeeper-3.4.10. tar .gz
go软件:   go1.8.linux-amd64. tar .gz
codis       codis-3.2.11

 端口相关

?
1
2
3
4
5
6
7
zookeeper:  2181(客户端连接的端口)
         2888(服务器与集群中的 Leader 服务器交换信息的端口),
         3888(选举时服务器相互通信的端口),
 
codis-dashboard:18080(dashboard接口端口)
codis-proxy:    19000(proxy端口)
codis-fe:   9090(集群管理面板FE)

 1.zookeeper安装,zk依赖Java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#zookeeper 依赖java 环境
cd /usr/local/src/
#wget http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz --no-check-certificate
tar -zxvf jdk-8u151-linux-x64. tar .gz
mv jdk1.8.0_151 /usr/local/
cd /usr/local/
ln -sv jdk1.8.0_151 jdk
vim /etc/profile
export JAVA_HOME= /usr/local/jdk
export PATH=$JAVA_HOME /bin :$JAVA_HOME /jre/bin :$PATH
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME /lib :$JAVA_HOME /jre/lib :$JAVA_HOME /lib/tools .jar
#export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar
source /etc/profile
 
[root@salt-master src] # java -version
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b11, mixed mode)

 2.zookeeper安装,=========================================zk node01===============================================

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 安装zookeeper(节点1,2,3需要安装java环境)  zk节点1
cd /usr/local/src/
wget https: //mirrors .tuna.tsinghua.edu.cn /apache/zookeeper/stable/zookeeper-3 .4.10. tar .gz
tar -zxvf zookeeper-3.4.10. tar .gz
mv zookeeper-3.4.10 /usr/local/
cd /usr/local/
ln -sv zookeeper-3.4.10 zookeeper
cd /usr/local/zookeeper/conf/
cp zoo_sample.cfg zoo.cfg
 
vim zoo.cfg
# example sakes.
dataDir= /data/zookeeper/data
dataLogDir= /data/zookeeper/log
# the port at which the clients will connect
clientPort=2181
server.1=172.16.1.10:2888:3888
server.2=172.16.1.11:2888:3888
server.3=172.16.1.12:2888:3888
 
mkdir /data/zookeeper/data -p
echo "1" > /data/zookeeper/data/myid
 
vim /etc/profile
export PATH=$PATH: /usr/local/zookeeper/bin
 
source /etc/profile

 =========================================zk node02===============================================

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 安装zookeeper(节点1,2,3需要安装java环境)  zk节点2
cd /usr/local/src/
wget https: //mirrors .tuna.tsinghua.edu.cn /apache/zookeeper/stable/zookeeper-3 .4.10. tar .gz
tar -zxvf zookeeper-3.4.10. tar .gz
mv zookeeper-3.4.10 /usr/local/
cd /usr/local/
ln -sv zookeeper-3.4.10 zookeeper
cd /usr/local/zookeeper/conf/
cp zoo_sample.cfg zoo.cfg
 
vim zoo.cfg
# example sakes.
dataDir= /data/zookeeper/data
dataLogDir= /data/zookeeper/log
# the port at which the clients will connect
clientPort=2181
server.1=172.16.1.10:2888:3888
server.2=172.16.1.11:2888:3888
server.3=172.16.1.12:2888:3888
 
mkdir /data/zookeeper/data -p
echo "2" > /data/zookeeper/data/myid
vim /etc/profile
export PATH=$PATH: /usr/local/zookeeper/bin
 
source /etc/profile

 =========================================zk node03===============================================

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 安装zookeeper(节点1,2,3需要安装java环境)  zk节点3
cd /usr/local/src/
wget https: //mirrors .tuna.tsinghua.edu.cn /apache/zookeeper/stable/zookeeper-3 .4.10. tar .gz
tar -zxvf zookeeper-3.4.10. tar .gz
mv zookeeper-3.4.10 /usr/local/
cd /usr/local/
ln -sv zookeeper-3.4.10 zookeeper
cd /usr/local/zookeeper/conf/
cp zoo_sample.cfg zoo.cfg
 
vim zoo.cfg
# example sakes.
dataDir= /data/zookeeper/data
dataLogDir= /data/zookeeper/log
# the port at which the clients will connect
clientPort=2181
server.1=172.16.1.10:2888:3888
server.2=172.16.1.11:2888:3888
server.3=172.16.1.12:2888:3888
 
mkdir /data/zookeeper/ {data,log} -p
echo "3" > /data/zookeeper/data/myid
 
vim /etc/profile
export PATH=$PATH: /usr/local/zookeeper/bin
source /etc/profile

 ================================zookpeeer管理=====================================================

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 启动、停止
/usr/local/zookeeper/bin/zkServer .sh start
/usr/local/zookeeper/bin/zkServer .sh stop
/usr/local/zookeeper/bin/zkServer .sh status
 
# 查看状态
/usr/local/zookeeper/bin/zkServer .sh status /usr/local/zookeeper/conf/zoo .cfg
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/conf/zoo .cfg
Mode: leader
# zk管理
/usr/local/zookeeper/bin/zkCli .sh  -server 172.16.1.10:2181
help
ls /
ls /zookeeper
rmr /zk/codis/db_xiao/dasbboarsh  # 删除

###################################################################

1.codis依赖go环境

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
##codis依赖go环境
cd /usr/local/src
#wget http://golangtc.com/static/go/1.8/go1.8.linux-amd64.tar.gz
wget https: //redirector .gvt1.com /edgedl/go/go1 .8.5.linux-amd64. tar .gz --no-check-certificate
tar -zxvf go1.8.5.linux-amd64. tar .gz
mv go /usr/local
mkdir /usr/local/go/work
 
vim /etc/profile
export GOARCH=amd64
export GOOS=linux
export GOROOT= /usr/local/go
export GOPATH= /usr/local/go/work
export PATH=$PATH:$GOROOT /bin :$GOPATH /bin
 
source /etc/profile
 
[root@salt-master src] # go version
go version go1.8 linux /amd64

 2.安装codis

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
============================安装codis========================================
yum install gcc glibc gcc -c++ make git autoconf -y
 
mkdir $GOPATH /src/github .com /CodisLabs -p
cd $GOPATH /src/github .com /CodisLabs
git clone https: //github .com /CodisLabs/codis .git -b release3.2
cd codis
make
 
[root@node01 codis] # ll /usr/local/go/work/src/github.com/CodisLabs/codis/bin/
total 104088
drwxr-xr-x 4 root root     4096 Apr 30 18:42 assets
-rwxr-xr-x 1 root root 15220177 Apr 30 18:42 codis-admin
-rwxr-xr-x 1 root root 16801198 Apr 30 18:41 codis-dashboard
-rwxr-xr-x 1 root root 14949889 Apr 30 18:42 codis-fe
-rwxr-xr-x 1 root root 13333633 Apr 30 18:42 codis-ha
-rwxr-xr-x 1 root root 18996769 Apr 30 18:42 codis-proxy
-rwxr-xr-x 1 root root  7985953 Apr 30 18:41 codis-server
-rwxr-xr-x 1 root root  5580703 Apr 30 18:41 redis-benchmark
-rwxr-xr-x 1 root root  5712499 Apr 30 18:41 redis-cli
-rwxr-xr-x 1 root root  7985953 Apr 30 18:41 redis-sentinel
-rw-r--r-- 1 root root      166 Apr 30 18:41 version
 
======================================codis 安装目录===============================================
mkdir /usr/local/codis/ {data,log} -p
cp -ar  /usr/local/go/work/src/github .com /CodisLabs/codis/bin /usr/local/codis/
cp -ar  /usr/local/go/work/src/github .com /CodisLabs/codis/config /usr/local/codis/
cp -ar  /usr/local/go/work/src/github .com /CodisLabs/codis/admin /usr/local/codis/
 
vim /etc/profile
export PATH=$PATH: /usr/local/codis/bin
source /etc/profile

 3.codis-dashboard 部署

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
======================================codis-dashboard 部署===========================================
cd /usr/local/codis/config/
vim dashboard.toml
[root@salt-master config] # grep -Ev '^#|^$' dashboard.toml
coordinator_name = "zookeeper"
coordinator_addr = "192.168.10.5:2181,192.168.10.6:2181,192.168.10.7:2181"
product_name = "codis-ph"
product_auth = ""
admin_addr = "0.0.0.0:18080"
migration_method = "semi-async"
migration_parallel_slots = 100
migration_async_maxbulks = 200
migration_async_maxbytes = "32mb"
migration_async_numkeys = 500
migration_timeout = "30s"
sentinel_quorum = 2
sentinel_parallel_syncs = 1
sentinel_down_after = "30s"
sentinel_failover_timeout = "5m"
sentinel_notification_script = ""
sentinel_client_reconfig_script = ""
 
# 启动codis-dashboard服务,停止服务
/usr/local/codis/admin/codis-dashboard-admin .sh start
/usr/local/codis/admin/codis-dashboard-admin .sh stop
 
#nohup /usr/local/codis/bin/codis-dashboard --ncpu=2 -c /usr/local/codis/config/dashboard.toml --log=/usr/local/codis/log/dashboard.log --log-level=WARN &
#/usr/local/codis/bin/codis-admin --dashboard=192.168.10.5:18080 --shutdown

 4.codis-porxy 部署(本机启动了dashboard时)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
======================================codis-porxy 部署(本机启动了dashboard时)================================================
cd /usr/local/codis/config/
[root@salt-master config] # vim proxy.toml
[root@salt-master config] # grep -Ev '^#|^$' proxy.toml
product_name = "codis-ph"
product_auth = ""
session_auth = ""
admin_addr = "0.0.0.0:11080"
proto_type = "tcp4"
proxy_addr = "0.0.0.0:19000"
jodis_name = "zookeeper"
jodis_addr = "172.16.1.10:2181,172.16.1.11:2181,172.16.1.12:2181"
jodis_timeout = "20s"
jodis_compatible = false
proxy_datacenter = ""
proxy_max_clients = 1000
proxy_max_offheap_size = "1024mb"
proxy_heap_placeholder = "256mb"
backend_ping_period = "5s"
backend_recv_bufsize = "128kb"
backend_recv_timeout = "30s"
backend_send_bufsize = "128kb"
backend_send_timeout = "30s"
backend_max_pipeline = 1024
backend_primary_only = false
backend_primary_parallel = 1
backend_replica_parallel = 1
backend_keepalive_period = "75s"
backend_number_databases = 16
session_recv_bufsize = "128kb"
session_recv_timeout = "30m"
session_send_bufsize = "64kb"
session_send_timeout = "30s"
session_max_pipeline = 10000
session_keepalive_period = "75s"
session_break_on_failure = false
metrics_report_server = ""
metrics_report_period = "1s"
metrics_report_influxdb_server = ""
metrics_report_influxdb_period = "1s"
metrics_report_influxdb_username = ""
metrics_report_influxdb_password = ""
metrics_report_influxdb_database = ""
metrics_report_statsd_server = ""
metrics_report_statsd_period = "1s"
metrics_report_statsd_prefix = ""
 
# 启动codis-proxy服务,关闭
/usr/local/codis/admin/codis-proxy-admin .sh start
/usr/local/codis/admin/codis-proxy-admin .sh stop
 
# 启动codis-proxy服务、关闭
#nohup /usr/local/codis/bin/codis-proxy --ncpu=2 --config=/usr/local/codis/config/proxy.toml --log=/usr/local/codis/log/proxy.log --log-level=WARN &
#/usr/local/codis/bin/codis-admin --proxy=192.168.10.5:11080 --shutdown
#/usr/local/codis/bin/codis-admin --proxy=192.168.10.5:11080 --auth="xxx"(有密码就加,没有就不加) --shutdown

 5.codis-porxy 部署(本机没有启动了dashboard时)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
======================================codis-porxy 部署(本机没有启动了dashboard时)================================================
cd /usr/local/codis/config/
[root@salt-master config] # vim proxy.toml
[root@salt-master config] # grep -Ev '^#|^$' proxy.toml
product_name = "codis-ph"
product_auth = ""
session_auth = ""
admin_addr = "0.0.0.0:11080"
proto_type = "tcp4"
proxy_addr = "0.0.0.0:19000"
jodis_name = "zookeeper"
jodis_addr = "172.16.1.10:2181,172.16.1.11:2181,172.16.1.12:2181"
jodis_timeout = "20s"
jodis_compatible = false
proxy_datacenter = ""
proxy_max_clients = 1000
proxy_max_offheap_size = "1024mb"
proxy_heap_placeholder = "256mb"
backend_ping_period = "5s"
backend_recv_bufsize = "128kb"
backend_recv_timeout = "30s"
backend_send_bufsize = "128kb"
backend_send_timeout = "30s"
backend_max_pipeline = 1024
backend_primary_only = false
backend_primary_parallel = 1
backend_replica_parallel = 1
backend_keepalive_period = "75s"
backend_number_databases = 16
session_recv_bufsize = "128kb"
session_recv_timeout = "30m"
session_send_bufsize = "64kb"
session_send_timeout = "30s"
session_max_pipeline = 10000
session_keepalive_period = "75s"
session_break_on_failure = false
metrics_report_server = ""
metrics_report_period = "1s"
metrics_report_influxdb_server = ""
metrics_report_influxdb_period = "1s"
metrics_report_influxdb_username = ""
metrics_report_influxdb_password = ""
metrics_report_influxdb_database = ""
metrics_report_statsd_server = ""
metrics_report_statsd_period = "1s"
metrics_report_statsd_prefix = ""
 
; # 注意:修改codis-proxy服务启动脚本,把codis-dashboard-addr地址指向dashborad机器上,不然会报错。
vim /usr/local/codis/admin/codis-proxy-admin .sh
  19 #CODIS_DASHBOARD_ADDR="127.0.0.1:18080"
  20 CODIS_DASHBOARD_ADDR= "172.16.1.10:18080"
 
# 启动codis-proxy服务,关闭
/usr/local/codis/admin/codis-proxy-admin .sh start
/usr/local/codis/admin/codis-proxy-admin .sh stop
 
# 启动codis-proxy服务、关闭
#nohup /usr/local/codis/bin/codis-proxy --ncpu=2 --config=/usr/local/codis/config/proxy.toml --log=/usr/local/codis/log/proxy.log --log-level=WARN &
#/usr/local/codis/bin/codis-admin --proxy=192.168.10.5:11080 --shutdown
#/usr/local/codis/bin/codis-admin --proxy=192.168.10.5:11080 --auth="xxx"(有密码就加,没有就不加) --shutdown

 6.codis-fe 部署

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# Codis-FE文件生产,配置name及dashboard的地址
cd /usr/local/codis/config
vim codis-fe.json
[
         {
                 "name" : "codis-pinhui" ,
                 "dashboard" : "192.169.10.5:18080"
         }
]
 
; # codis自带了fe运行脚本,需要修改启动脚本,注释第40行,修改为41行
vim /usr/local/codis/admin/codis-fe-admin .sh
  40     #nohup "$CODIS_FE_BIN" "--assets-dir=${CODIS_FE_ASSETS_DIR}" "--$COORDINATOR_NAME=$COORDINATOR_ADDR" \
  41     nohup "$CODIS_FE_BIN" "--dashboard-list=/usr/local/codis/config/codis-fe.json" \
 
# 启动codis-fe服务,,停止
/usr/local/codis/admin/codis-fe-admin .sh start
/usr/local/codis/admin/codis-fe-admin .sh stop
 
# 启动codis-fe服务
#nohup /usr/local/codis/bin/codis-fe --ncpu=2 --log=/usr/local/codis/log/codis-fe.log --log-level=WARN --dashboard-list=/usr/local/codis/config/codis-fe.json --listen=0.0.0.0:18090  &
# 关闭codis-fe服务
#kill 进程
 
# 访问codis-fe
http: //172 .16.1.10:9090/ #codis-pinhui

 7.codis-server 部署

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# 配置codis-server文件
[root@node04] # cd /usr/local/codis/config/
[root@node04 config] # grep -Ev "^$|^#" redis.conf
bind 127.0.0.1 172.16.1.20
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile /usr/local/codis/log/redis_6379 .pid
loglevel notice
logfile "/usr/local/codis/log/redis_6379.log"
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir /usr/local/codis/data/
...
appendonly no
appendfilename "appendonly.aof"
...
 
# 配置codis-server启动脚本
[root@node04 config] # vim /usr/local/codis/admin/codis-server-admin.sh
CODIS_SERVER_BIN=$CODIS_BIN_DIR /codis-server
CODIS_SERVER_PID_FILE= /usr/local/codis/log/redis_6379 .pid
 
CODIS_SERVER_LOG_FILE= /usr/local/codis/log/redis_6379 .log
CODIS_SERVER_DAEMON_FILE=$CODIS_LOG_DIR /codis-server .out
 
# 启动codis-server
/usr/local/codis/admin/codis-server-admin .sh start
/usr/local/codis/admin/codis-server-admin .sh stop

 8.codis-server sentinel 部署

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 配置sentinel
cd /usr/local/codis/config/
cp sentinel.conf sentinel.conf.bak
# vim sentinel.conf
bind 127.0.0.1 172.16.1.20
port 26379
daemonize yes
logfile "/usr/local/codis/log/sentinel.log"
pidfile "/usr/local/codis/log/sentinel.pid"
 
 
 
# 启动sentinel服务
/usr/local/codis/bin/redis-sentinel /usr/local/codis/config/sentinel .conf

 9.codis集群管理界面

http://blog.csdn.net/fuyuwei2015/article/details/71131780
https://segmentfault.com/a/1190000009365772
http://blog.51cto.com/xiumin/1954795
http://www.cnblogs.com/reblue520/p/6874925.html
https://github.com/CodisLabs/codis/blob/release3.2/doc/tutorial_zh.md
http://redisdoc.com/server/info.html

软件相关

?
1
2
3
4
java软件: jdk-8u151-linux-x64. tar .gz
zookeeper:  zookeeper-3.4.10. tar .gz
go软件:   go1.8.linux-amd64. tar .gz
codis       codis-3.2.11

 端口相关

?
1
2
3
4
5
6
7
zookeeper:  2181(客户端连接的端口)
         2888(服务器与集群中的 Leader 服务器交换信息的端口),
         3888(选举时服务器相互通信的端口),
 
codis-dashboard:18080(dashboard接口端口)
codis-proxy:    19000(proxy端口)
codis-fe:   9090(集群管理面板FE)

 1.zookeeper安装,zk依赖Java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#zookeeper 依赖java 环境
cd /usr/local/src/
#wget http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz --no-check-certificate
tar -zxvf jdk-8u151-linux-x64. tar .gz
mv jdk1.8.0_151 /usr/local/
cd /usr/local/
ln -sv jdk1.8.0_151 jdk
vim /etc/profile
export JAVA_HOME= /usr/local/jdk
export PATH=$JAVA_HOME /bin :$JAVA_HOME /jre/bin :$PATH
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME /lib :$JAVA_HOME /jre/lib :$JAVA_HOME /lib/tools .jar
#export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar
source /etc/profile
 
[root@salt-master src] # java -version
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b11, mixed mode)

 2.zookeeper安装,=========================================zk node01===============================================

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 安装zookeeper(节点1,2,3需要安装java环境)  zk节点1
cd /usr/local/src/
wget https: //mirrors .tuna.tsinghua.edu.cn /apache/zookeeper/stable/zookeeper-3 .4.10. tar .gz
tar -zxvf zookeeper-3.4.10. tar .gz
mv zookeeper-3.4.10 /usr/local/
cd /usr/local/
ln -sv zookeeper-3.4.10 zookeeper
cd /usr/local/zookeeper/conf/
cp zoo_sample.cfg zoo.cfg
 
vim zoo.cfg
# example sakes.
dataDir= /data/zookeeper/data
dataLogDir= /data/zookeeper/log
# the port at which the clients will connect
clientPort=2181
server.1=172.16.1.10:2888:3888
server.2=172.16.1.11:2888:3888
server.3=172.16.1.12:2888:3888
 
mkdir /data/zookeeper/data -p
echo "1" > /data/zookeeper/data/myid
 
vim /etc/profile
export PATH=$PATH: /usr/local/zookeeper/bin
 
source /etc/profile

 =========================================zk node02===============================================

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 安装zookeeper(节点1,2,3需要安装java环境)  zk节点2
cd /usr/local/src/
wget https: //mirrors .tuna.tsinghua.edu.cn /apache/zookeeper/stable/zookeeper-3 .4.10. tar .gz
tar -zxvf zookeeper-3.4.10. tar .gz
mv zookeeper-3.4.10 /usr/local/
cd /usr/local/
ln -sv zookeeper-3.4.10 zookeeper
cd /usr/local/zookeeper/conf/
cp zoo_sample.cfg zoo.cfg
 
vim zoo.cfg
# example sakes.
dataDir= /data/zookeeper/data
dataLogDir= /data/zookeeper/log
# the port at which the clients will connect
clientPort=2181
server.1=172.16.1.10:2888:3888
server.2=172.16.1.11:2888:3888
server.3=172.16.1.12:2888:3888
 
mkdir /data/zookeeper/data -p
echo "2" > /data/zookeeper/data/myid
vim /etc/profile
export PATH=$PATH: /usr/local/zookeeper/bin
 
source /etc/profile

 =========================================zk node03===============================================

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 安装zookeeper(节点1,2,3需要安装java环境)  zk节点3
cd /usr/local/src/
wget https: //mirrors .tuna.tsinghua.edu.cn /apache/zookeeper/stable/zookeeper-3 .4.10. tar .gz
tar -zxvf zookeeper-3.4.10. tar .gz
mv zookeeper-3.4.10 /usr/local/
cd /usr/local/
ln -sv zookeeper-3.4.10 zookeeper
cd /usr/local/zookeeper/conf/
cp zoo_sample.cfg zoo.cfg
 
vim zoo.cfg
# example sakes.
dataDir= /data/zookeeper/data
dataLogDir= /data/zookeeper/log
# the port at which the clients will connect
clientPort=2181
server.1=172.16.1.10:2888:3888
server.2=172.16.1.11:2888:3888
server.3=172.16.1.12:2888:3888
 
mkdir /data/zookeeper/ {data,log} -p
echo "3" > /data/zookeeper/data/myid
 
vim /etc/profile
export PATH=$PATH: /usr/local/zookeeper/bin
source /etc/profile

 ================================zookpeeer管理=====================================================

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 启动、停止
/usr/local/zookeeper/bin/zkServer .sh start
/usr/local/zookeeper/bin/zkServer .sh stop
/usr/local/zookeeper/bin/zkServer .sh status
 
# 查看状态
/usr/local/zookeeper/bin/zkServer .sh status /usr/local/zookeeper/conf/zoo .cfg
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/conf/zoo .cfg
Mode: leader
# zk管理
/usr/local/zookeeper/bin/zkCli .sh  -server 172.16.1.10:2181
help
ls /
ls /zookeeper
rmr /zk/codis/db_xiao/dasbboarsh  # 删除

1.codis依赖go环境

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
##codis依赖go环境
cd /usr/local/src
#wget http://golangtc.com/static/go/1.8/go1.8.linux-amd64.tar.gz
wget https: //redirector .gvt1.com /edgedl/go/go1 .8.5.linux-amd64. tar .gz --no-check-certificate
tar -zxvf go1.8.5.linux-amd64. tar .gz
mv go /usr/local
mkdir /usr/local/go/work
 
vim /etc/profile
export GOARCH=amd64
export GOOS=linux
export GOROOT= /usr/local/go
export GOPATH= /usr/local/go/work
export PATH=$PATH:$GOROOT /bin :$GOPATH /bin
 
source /etc/profile
 
[root@salt-master src] # go version
go version go1.8 linux /amd64

 2.安装codis

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
============================安装codis========================================
yum install gcc glibc gcc -c++ make git autoconf -y
 
mkdir $GOPATH /src/github .com /CodisLabs -p
cd $GOPATH /src/github .com /CodisLabs
git clone https: //github .com /CodisLabs/codis .git -b release3.2
cd codis
make
 
[root@node01 codis] # ll /usr/local/go/work/src/github.com/CodisLabs/codis/bin/
total 104088
drwxr-xr-x 4 root root     4096 Apr 30 18:42 assets
-rwxr-xr-x 1 root root 15220177 Apr 30 18:42 codis-admin
-rwxr-xr-x 1 root root 16801198 Apr 30 18:41 codis-dashboard
-rwxr-xr-x 1 root root 14949889 Apr 30 18:42 codis-fe
-rwxr-xr-x 1 root root 13333633 Apr 30 18:42 codis-ha
-rwxr-xr-x 1 root root 18996769 Apr 30 18:42 codis-proxy
-rwxr-xr-x 1 root root  7985953 Apr 30 18:41 codis-server
-rwxr-xr-x 1 root root  5580703 Apr 30 18:41 redis-benchmark
-rwxr-xr-x 1 root root  5712499 Apr 30 18:41 redis-cli
-rwxr-xr-x 1 root root  7985953 Apr 30 18:41 redis-sentinel
-rw-r--r-- 1 root root      166 Apr 30 18:41 version
 
======================================codis 安装目录===============================================
mkdir /usr/local/codis/ {data,log} -p
cp -ar  /usr/local/go/work/src/github .com /CodisLabs/codis/bin /usr/local/codis/
cp -ar  /usr/local/go/work/src/github .com /CodisLabs/codis/config /usr/local/codis/
cp -ar  /usr/local/go/work/src/github .com /CodisLabs/codis/admin /usr/local/codis/
 
vim /etc/profile
export PATH=$PATH: /usr/local/codis/bin
source /etc/profile

 3.codis-dashboard 部署

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
======================================codis-dashboard 部署===========================================
cd /usr/local/codis/config/
vim dashboard.toml
[root@salt-master config] # grep -Ev '^#|^$' dashboard.toml
coordinator_name = "zookeeper"
coordinator_addr = "192.168.10.5:2181,192.168.10.6:2181,192.168.10.7:2181"
product_name = "codis-ph"
product_auth = ""
admin_addr = "0.0.0.0:18080"
migration_method = "semi-async"
migration_parallel_slots = 100
migration_async_maxbulks = 200
migration_async_maxbytes = "32mb"
migration_async_numkeys = 500
migration_timeout = "30s"
sentinel_quorum = 2
sentinel_parallel_syncs = 1
sentinel_down_after = "30s"
sentinel_failover_timeout = "5m"
sentinel_notification_script = ""
sentinel_client_reconfig_script = ""
 
# 启动codis-dashboard服务,停止服务
/usr/local/codis/admin/codis-dashboard-admin .sh start
/usr/local/codis/admin/codis-dashboard-admin .sh stop
 
#nohup /usr/local/codis/bin/codis-dashboard --ncpu=2 -c /usr/local/codis/config/dashboard.toml --log=/usr/local/codis/log/dashboard.log --log-level=WARN &
#/usr/local/codis/bin/codis-admin --dashboard=192.168.10.5:18080 --shutdown

 4.codis-porxy 部署(本机启动了dashboard时)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
======================================codis-porxy 部署(本机启动了dashboard时)================================================
cd /usr/local/codis/config/
[root@salt-master config] # vim proxy.toml
[root@salt-master config] # grep -Ev '^#|^$' proxy.toml
product_name = "codis-ph"
product_auth = ""
session_auth = ""
admin_addr = "0.0.0.0:11080"
proto_type = "tcp4"
proxy_addr = "0.0.0.0:19000"
jodis_name = "zookeeper"
jodis_addr = "172.16.1.10:2181,172.16.1.11:2181,172.16.1.12:2181"
jodis_timeout = "20s"
jodis_compatible = false
proxy_datacenter = ""
proxy_max_clients = 1000
proxy_max_offheap_size = "1024mb"
proxy_heap_placeholder = "256mb"
backend_ping_period = "5s"
backend_recv_bufsize = "128kb"
backend_recv_timeout = "30s"
backend_send_bufsize = "128kb"
backend_send_timeout = "30s"
backend_max_pipeline = 1024
backend_primary_only = false
backend_primary_parallel = 1
backend_replica_parallel = 1
backend_keepalive_period = "75s"
backend_number_databases = 16
session_recv_bufsize = "128kb"
session_recv_timeout = "30m"
session_send_bufsize = "64kb"
session_send_timeout = "30s"
session_max_pipeline = 10000
session_keepalive_period = "75s"
session_break_on_failure = false
metrics_report_server = ""
metrics_report_period = "1s"
metrics_report_influxdb_server = ""
metrics_report_influxdb_period = "1s"
metrics_report_influxdb_username = ""
metrics_report_influxdb_password = ""
metrics_report_influxdb_database = ""
metrics_report_statsd_server = ""
metrics_report_statsd_period = "1s"
metrics_report_statsd_prefix = ""
 
# 启动codis-proxy服务,关闭
/usr/local/codis/admin/codis-proxy-admin .sh start
/usr/local/codis/admin/codis-proxy-admin .sh stop
 
# 启动codis-proxy服务、关闭
#nohup /usr/local/codis/bin/codis-proxy --ncpu=2 --config=/usr/local/codis/config/proxy.toml --log=/usr/local/codis/log/proxy.log --log-level=WARN &
#/usr/local/codis/bin/codis-admin --proxy=192.168.10.5:11080 --shutdown
#/usr/local/codis/bin/codis-admin --proxy=192.168.10.5:11080 --auth="xxx"(有密码就加,没有就不加) --shutdown

 5.codis-porxy 部署(本机没有启动了dashboard时)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
======================================codis-porxy 部署(本机没有启动了dashboard时)================================================
cd /usr/local/codis/config/
[root@salt-master config] # vim proxy.toml
[root@salt-master config] # grep -Ev '^#|^$' proxy.toml
product_name = "codis-ph"
product_auth = ""
session_auth = ""
admin_addr = "0.0.0.0:11080"
proto_type = "tcp4"
proxy_addr = "0.0.0.0:19000"
jodis_name = "zookeeper"
jodis_addr = "172.16.1.10:2181,172.16.1.11:2181,172.16.1.12:2181"
jodis_timeout = "20s"
jodis_compatible = false
proxy_datacenter = ""
proxy_max_clients = 1000
proxy_max_offheap_size = "1024mb"
proxy_heap_placeholder = "256mb"
backend_ping_period = "5s"
backend_recv_bufsize = "128kb"
backend_recv_timeout = "30s"
backend_send_bufsize = "128kb"
backend_send_timeout = "30s"
backend_max_pipeline = 1024
backend_primary_only = false
backend_primary_parallel = 1
backend_replica_parallel = 1
backend_keepalive_period = "75s"
backend_number_databases = 16
session_recv_bufsize = "128kb"
session_recv_timeout = "30m"
session_send_bufsize = "64kb"
session_send_timeout = "30s"
session_max_pipeline = 10000
session_keepalive_period = "75s"
session_break_on_failure = false
metrics_report_server = ""
metrics_report_period = "1s"
metrics_report_influxdb_server = ""
metrics_report_influxdb_period = "1s"
metrics_report_influxdb_username = ""
metrics_report_influxdb_password = ""
metrics_report_influxdb_database = ""
metrics_report_statsd_server = ""
metrics_report_statsd_period = "1s"
metrics_report_statsd_prefix = ""
 
; # 注意:修改codis-proxy服务启动脚本,把codis-dashboard-addr地址指向dashborad机器上,不然会报错。
vim /usr/local/codis/admin/codis-proxy-admin .sh
  19 #CODIS_DASHBOARD_ADDR="127.0.0.1:18080"
  20 CODIS_DASHBOARD_ADDR= "172.16.1.10:18080"
 
# 启动codis-proxy服务,关闭
/usr/local/codis/admin/codis-proxy-admin .sh start
/usr/local/codis/admin/codis-proxy-admin .sh stop
 
# 启动codis-proxy服务、关闭
#nohup /usr/local/codis/bin/codis-proxy --ncpu=2 --config=/usr/local/codis/config/proxy.toml --log=/usr/local/codis/log/proxy.log --log-level=WARN &
#/usr/local/codis/bin/codis-admin --proxy=192.168.10.5:11080 --shutdown
#/usr/local/codis/bin/codis-admin --proxy=192.168.10.5:11080 --auth="xxx"(有密码就加,没有就不加) --shutdown

 6.codis-fe 部署

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# Codis-FE文件生产,配置name及dashboard的地址
cd /usr/local/codis/config
vim codis-fe.json
[
         {
                 "name" : "codis-pinhui" ,
                 "dashboard" : "192.169.10.5:18080"
         }
]
 
; # codis自带了fe运行脚本,需要修改启动脚本,注释第40行,修改为41行
vim /usr/local/codis/admin/codis-fe-admin .sh
  40     #nohup "$CODIS_FE_BIN" "--assets-dir=${CODIS_FE_ASSETS_DIR}" "--$COORDINATOR_NAME=$COORDINATOR_ADDR" \
  41     nohup "$CODIS_FE_BIN" "--dashboard-list=/usr/local/codis/config/codis-fe.json" \
 
# 启动codis-fe服务,,停止
/usr/local/codis/admin/codis-fe-admin .sh start
/usr/local/codis/admin/codis-fe-admin .sh stop
 
# 启动codis-fe服务
#nohup /usr/local/codis/bin/codis-fe --ncpu=2 --log=/usr/local/codis/log/codis-fe.log --log-level=WARN --dashboard-list=/usr/local/codis/config/codis-fe.json --listen=0.0.0.0:18090  &
# 关闭codis-fe服务
#kill 进程
 
# 访问codis-fe
http: //172 .16.1.10:9090/ #codis-pinhui

 7.codis-server 部署

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# 配置codis-server文件
[root@node04] # cd /usr/local/codis/config/
[root@node04 config] # grep -Ev "^$|^#" redis.conf
bind 127.0.0.1 172.16.1.20
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile /usr/local/codis/log/redis_6379 .pid
loglevel notice
logfile "/usr/local/codis/log/redis_6379.log"
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir /usr/local/codis/data/
...
appendonly no
appendfilename "appendonly.aof"
...
 
# 配置codis-server启动脚本
[root@node04 config] # vim /usr/local/codis/admin/codis-server-admin.sh
CODIS_SERVER_BIN=$CODIS_BIN_DIR /codis-server
CODIS_SERVER_PID_FILE= /usr/local/codis/log/redis_6379 .pid
 
CODIS_SERVER_LOG_FILE= /usr/local/codis/log/redis_6379 .log
CODIS_SERVER_DAEMON_FILE=$CODIS_LOG_DIR /codis-server .out
 
# 启动codis-server
/usr/local/codis/admin/codis-server-admin .sh start
/usr/local/codis/admin/codis-server-admin .sh stop

 8.codis-server sentinel 部署

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 配置sentinel
cd /usr/local/codis/config/
cp sentinel.conf sentinel.conf.bak
# vim sentinel.conf
bind 127.0.0.1 172.16.1.20
port 26379
daemonize yes
logfile "/usr/local/codis/log/sentinel.log"
pidfile "/usr/local/codis/log/sentinel.pid"
 
 
 
# 启动sentinel服务
/usr/local/codis/bin/redis-sentinel /usr/local/codis/config/sentinel .conf

 9.codis集群管理界面

http://blog.csdn.net/fuyuwei2015/article/details/71131780
https://segmentfault.com/a/1190000009365772
http://blog.51cto.com/xiumin/1954795
http://www.cnblogs.com/reblue520/p/6874925.html
https://github.com/CodisLabs/codis/blob/release3.2/doc/tutorial_zh.md
http://redisdoc.com/server/info.html

猜你喜欢

转载自www.cnblogs.com/wuhg/p/11772088.html