软件相关
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