codis 集群

1、豌豆荚Codis优点

codis-proxy基于GO和C语言,并发处理能力强劲。

后端基于solt概念,支持灵活、对用户透明的扩容和缩容操作,基于一键式auto-rebalance。

基于zookeeper提供了高可用的codis-proxy代理服务。

集群管理工具丰富:不仅有命令行工具集,也支持页面配置,十分方便

搭建简单codis

安装JDK

yum install jdk-8u171-linux-x64.rpm

这里写图片描述
安装zookeeper


tar zxf zookeeper-3.4.9.tar.gz -C /usr/local/
mv /usr/local/zookeeper-3.4.9/ /usr/local/zookeeper

这里写图片描述

编译zookeeper配置文件/usr/local/zookeeper/conf/zoo_sample.cfg

server7=172.25.20.7:2888:3888
server8=172.25.20.8:2888:3888
server9=172.25.20.9:2888:3888

这里写图片描述

其中2888表示zookeeper程序监听端口,3888表示zookeeper选举通信端口。

mkdir /data/zookeeper/{db,log} -p
echo 1 > /data/zookeeper/db/myid
vim /etc/profile    #最后面添加
export PATH=$PATH:/usr/local/zookeeper/bin/
source /etc/profile    #刷新环境变量
zkServer.sh start    #主机都启动服务

这里写图片描述
这里写图片描述
这里写图片描述

zkServer.sh status
这里写图片描述
基础依赖,使用如下命令:
yum install -y git gcc make g++ gcc-c++ automake openssl-devel zlib-*
这里写图片描述
各组件安装目录

安装gcc 安装mercurial包 安装git包

扫描二维码关注公众号,回复: 2720877 查看本文章
yum insatll gcc
yum install mercurial
yum install git

安装go运行环境

tar -zxvf go1.8.linux-amd64.tar.gz -C /usr/local/
vim /etc/profile.d/go.sh    #修改环境变量

#!/bin/bash

export GOROOT=/usr/local/go
export GOPATH=/usr/local/codis/
export PATH=$PATH:$GOROOT/bin
chmod +x /etc/profile.d/go.sh
source /etc/profile.d/go.sh
go version
go version go1.8 linux/amd64

这里写图片描述

下载并编译安装codis 3.2

cd
mkdir /usr/local/codis/src/github.com/CodisLabs -p
cd /usr/local/codis/src/github.com/CodisLabs/
unzip codis-release3.2.zip
mv codis-release3.2  codis
cd codis
make  

编译完成
这里写图片描述

vim /etc/profile.d/go.sh    #修改环境变量

export GOROOT=/usr/local/go
export GOPATH=/usr/local/codis/
export PATH=$PATH:$GOROOT/bin
export PATH=$GOROOT/bin:$GOPATH/bin:$PATH
export PATH=$PATH:/usr/local/codis/src/github.com/CodisLabs/codis/bin/
#export PATH=$PATH:/data/codis/redis/bin
source /etc/profile.d/go.sh

为Codis创建标准目录

mkdir -p /data/codis/sh
mkdir -p /data/codis/conf
mkdir -p /data/codis/log
mkdir -p /data/codis/run
mkdir -p /data/codis/redis/bin
mkdir -p /data/codis/redis/redis-6379
mkdir -p /data/codis/redis/redis-6380

添加环境变量

vim /etc/profile.d/go.sh

#!/bin/bash

export GOROOT=/usr/local/go
export GOPATH=/usr/local/codis/
export PATH=$PATH:$GOROOT/bin
export PATH=$GOROOT/bin:$GOPATH/bin:$PATH
export PATH=$PATH:/usr/local/codis/src/github.com/CodisLabs/codis/bin/
export PATH=$PATH:/data/codis/redis/bin
source /etc/profile.d/go.sh

这里写图片描述

配置启动Codis各组件—-启动Redis
codis服务器
vim /data/codis/redis/redis-6379/redis.conf

daemonize yes
pidfile /data/codis/run/redis-6379.pid
port 6379
tcp-backlog 65535
bind 0.0.0.0
timeout 0
tcp-keepalive 0
loglevel notice
logfile "/data/codis/log/redis-6379.log"
databases 16
lua-time-limit 5000
maxclients 10000

###慢日志参数###
slowlog-log-slower-than 10000
slowlog-max-len 128

###内存参数###
maxmemory 3G
maxmemory-policy noeviction

###RDB持久化参数###
#save 3600 1
#stop-writes-on-bgsave-error yes
#rdbcompression yes
#rdbchecksum yes
#dbfilename dump.rdb

###AOF持久化参数###
#no-appendfsync-on-rewrite yes
#appendonly yes
#appendfilename "appendonly.aof"
#appendfsync no
#auto-aof-rewrite-min-size 512mb
#auto-aof-rewrite-percentage 100
#aof-load-truncated yes
#aof-rewrite-incremental-fsync yes

###客户端Buffer参数### 
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60

###其他参数###
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
latency-monitor-threshold 0

###安全参数###
#requirepass  123456789

vim /data/codis/redis/redis-6380/redis.conf

daemonize yes
pidfile /data/codis/run/redis-6380.pid
port 6380
tcp-backlog 65535
bind 0.0.0.0
timeout 0
tcp-keepalive 0
loglevel notice
logfile "/data/codis/log/redis-6380.log"
databases 16
lua-time-limit 5000
maxclients 10000

###慢日志参数###
slowlog-log-slower-than 10000
slowlog-max-len 128

###内存参数###
maxmemory 3G
maxmemory-policy noeviction

###RDB持久化参数###
#save 3600 1
#stop-writes-on-bgsave-error yes
#rdbcompression yes
#rdbchecksum yes
#dbfilename dump.rdb

###AOF持久化参数###
no-appendfsync-on-rewrite yes
appendonly yes
appendfilename "appendonly.aof"
appendfsync no
auto-aof-rewrite-min-size 512mb
auto-aof-rewrite-percentage 100
aof-load-truncated yes
aof-rewrite-incremental-fsync yes

###客户端Buffer参数### 
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60

###其他参数###
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
latency-monitor-threshold 0

###安全参数###
#requirepass  123456789

使用codis-server启动redis

codis-server /data/codis/redis/redis-6379/redis.conf
codis-server /data/codis/redis/redis-6380/redis.conf

配置启动Codis各组件—启动dashboard

codis-dashboard --default-config | tee /data/codis/conf/dashboard.toml

这里写图片描述
修改配置文件
这里写图片描述

启动codis-proxy

nohup codis-proxy --ncpu=2 --config=/data/codis/conf/proxy.toml --log=/data/codis/log/proxy.log --log-level=WARN &

vim /data/codis/conf/codis.json

{
    {
        "name": "codis-demo",
        "dashboard": "172.25.21.4:18080"
    }
}

启动codis-fe,注意启动codis-fe的时候,必须要使用codis-fe的全路径进行启动

nohup /usr/local/codis/src/github.com/CodisLabs/codis/bin/codis-fe --ncpu=2 --log=/data/codis/log/fe.log --log-level=WARN --dashboard-list=/data/codis/conf/codis.json --listen=0.0.0.0:8080 &

可以用ps ax 看进程
这里写图片描述
web监控端口是8080端口,我们可以在浏览器打开http://172.25.21.4:8080看看图形化界面。
这里写图片描述

猜你喜欢

转载自blog.csdn.net/hello_xiaozhuang/article/details/81603232