文档章节

redis分布式集群配置

o
 osc_gu9d45li
发布于 2019/04/17 16:29
字数 1297
阅读 14
收藏 0

精选30+云产品,助力企业轻松上云!>>>

1.1     系统配置

IP

MEM

CPU

DISK

Description

192.168.16.11

4G

4C

50G

Redis-g1-m; codis-proxy1

192.168.16.13

4G

4C

50G

Redis-g1-s; codis-proxy2

192.168.16.14

4G

4C

50G

Redis-g2-m;zk1;sentinel

192.168.16.15

4G

4C

50G

Redis-g2-s;zk2;sentinel

192.168.16.16

4G

4C

50G

Redis-g3-m;zk3;sentinel

192.168.16.17

4G

4C

50G

Redis-g3-s;codis-dashborad:18080;codis-fe:18090

 

1.1     系统依赖配置

Zookeeper-3.4.14(stable release)

https://www.apache.org/dist/zookeeper/

Codis3.2

https://github.com/CodisLabs/codis

 

集群中每台主机可解析对方hostname,当前配置为修改/etc/hosts


 

2.1     总体说明

Golang依赖安装使用yum安装。

Codis及zookeeper使用源码安装,

Zookeeper-3.4.14(stable release)

https://www.apache.org/dist/zookeeper/

Codis3.2

https://github.com/CodisLabs/codis

 

2.2     系统安装部署步骤

2.2.1   基础环境

全部节点执行:

systemctl stop firewalld.service

systemctl disable firewalld.service

setenforce 0

sed "s#SELINUX=enforcing#SELINUX=disabled#g" /etc/selinux/config  -i

 

设置编译环境

注意 $GOPATH 是本机所有第三方库 go 项目所在目录,Codis 仅是其中之一。

 

添加 $GOPATH/bin 到 $PATH,例如:PATH=$PATH:$GOPATH/bin。

cat ~/.bash_profile

 

export JAVA_HOME=/home/app/jdk1.8.0_73

export GOROOT=/usr/lib/golang

export GOPATH=/home/app/godir

export PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$GOPATH/bin:$GOROOT/bin

下载 Codis 源代码

Codis 源代码需要下载到 $GOPATH/src/github.com/CodisLabs/codis:

 

mkdir -p $GOPATH/src/github.com/CodisLabs

cd $_ && git clone https://github.com/CodisLabs/codis.git -b release3.2

 

编译 Codis 源代码

直接通过 make 进行编译,会看到如下输出:

cd $GOPATH/src/github.com/CodisLabs/codis

make

ll bin/        查看编译后的命令

cat bin/version

 

完成编译后,将会在bin目录中看到codis-admin、codis-dashboard、codis-fe、codis-ha、codis-proxy、codis-server六个可执行文件。另外,bin/assert文件夹是codis-dashboard的http服务需要的前端资源,其需要和codis-dashboard放置在同一个文件夹中。

补充:在目录./extern/redis-3.2.11/src/中可以找到redis-sentinel可执行文件,其将会用于集群主从的切换。

 

 

mkdir -p ~/codis/bin

mkdir -p ~/codis/config

mkdir -p ~/codis/admin

 

cp -a $GOPATH/src/github.com/CodisLabs/codis/bin/* ~/codis/bin/

cp -a $GOPATH/src/github.com/CodisLabs/codis/config/* ~/codis/config/

cp –a $GOPATH/src/github.com/CodisLabs/codis/admin  ~/codis/

 

2.2.2   安装zookeeper

IP

MEM

CPU

DISK

Description

192.168.16.14

4G

4C

50G

Zk1

192.168.16.15

4G

4C

50G

Zk2

192.168.16.16

4G

4C

50G

Zk3

 

cat ~/zookeeper-3.4.14/conf/zoo.cfg

配置如下:

=============================================

tickTime=2000

initLimit=10

syncLimit=5

dataDir=/home/app/zookeeper-3.4.14/dataDir/zookeeper

clientPort=2181

server.1=192.168.16.14:2888:3888

server.2=192.168.16.15:2888:3888

server.3=192.168.16.16:2888:3888

===============================================

2.2.3   Codis-server

作用:基于 redis-3.2.11 分支开发。增加了额外的数据结构,以支持 slot 有关的操作以及数据迁移指令。具体的修改可以参考文档 redis 的修改。

按照部署规划,将在如下机器上部署该程序

 

IP

MEM

CPU

DISK

Description

192.168.16.11

4G

4C

50G

Redis-g1-master

192.168.16.13

4G

4C

50G

Redis-g1-slave

192.168.16.14

4G

4C

50G

Redis-g2-master

192.168.16.15

4G

4C

50G

Redis-g2-slave

192.168.16.16

4G

4C

50G

Redis-g3-master

192.168.16.17

4G

4C

50G

Redis-g3-slave

 

cat ~/codis/config/redis.conf

修改以下参数。其余保持默认。

timeout 86400

pidfile /home/app/codis/run/redis_6379.pid

logfile "/home/app/codis/log/redis_6379.log"

dir /home/app/codis/data/

maxmemory 3gb                                  //内存大小

 

warning提示:

add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1'

run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot.

修正warning信息:

echo "'vm.overcommit_memory = 1" >>/etc/sysctl.d/codis.conf

sysctl -a

sysctl vm.overcommit_memory=1

 

echo never > /sys/kernel/mm/transparent_hugepage/enabled

echo "echo never > /sys/kernel/mm/transparent_hugepage/enabled" >>/etc/rc.local

 

启动:

sh admin/codis-server-admin.sh start

关闭:                       

sh admin/codis-server-admin.sh stop

 

2.2.4   dashboard

部署节点:192.168.16.17

./codis-dashboard - -default-conifg | tee ../config/dashboard.conf #生成配置

 

启动:

nohup ./codis-dashboard --ncpu=4 --config="/home/app/codis/config/dashboard.conf" --log=~/codis/log/dashboard.log --log-level=WARN &

关闭:

./codis-admin   --dashboard=192.168.16.17:18080  --shutdown

 

./codis-admin   --dashboard=192.168.16.17:18080  -auth=123456 –shutdown        //如配置了密码,需加认证。

 

 

 

 

2.2.5   Proxy:

192.168.16.11    192.168.16.13          2台

./bin/codis-proxy   --default-config | tee ./config/proxy.conf                 //生成配置文件

启动

nohup ./codis-proxy --ncpu=4 --config=../config/proxy.conf --log=../log/proxy.log --log-level=WARN &

关闭:

Kill -15 $pid

 

2.2.6   Sentinel

作用:Redis官方推荐的高可用性(HA)解决方案。它可以实现对Redis的监控、通知、自动故障转移。如果Master不能工作,则会自动启动故障转移进程,将其中的一个Slave提升为Master,其他的Slave重新设置新的Master服务。

部署:按照部署规划,将在如下机器上部署该程序。

192.168.16.14  192.168.16.15  192.168.16.16

 

1. 拷贝程序

# cp -a $GOPATH/src/github.com/CodisLabs/codis/extern/redis-3.2.11/src/redis-sentinel ~/codis/bin/

 

2. 拷贝配置

#cp -a $GOPATH/src/github.com/CodisLabs/codis/extern/redis-3.2.11/sentinel.conf  ~/codis/config/

 

3. 修改配置

#vim ./config/sentinel.conf

修改以下配置:

删除所有sentinel开头的配置。

sed "/^sentinel/d" sentinel.conf  -i

sed "/^dir/d" sentinel.conf  -i 

新增以下配置

bind 0.0.0.0

protected-mode no

port 26379

dir  “/home/app/codis/data_sentinel/”                                     #dir按需更改(默认dir /tmp)

 

备注:其余配置保持默认,其他结点的配置与此一致。

 

4. 启动程序

 

cd  ~/codis/bin/

nohup ./redis-sentinel  ../config/sentinel.conf &

 

 

2.2.7   codis-fe

192.168.16.17

作用:集群管理界面。

 

1.多个集群实例共享可以共享同一个前端展示页面;

2.通过配置文件管理后端codis-dashboard列表,配置文件可自动更新。

 

安装:

1. 生成配置

#./codis-admin  --dashboard-list  --zookeeper=192.168.16.14:2181 | tee  ../config/codis.json

2. 启动程序

 

#nohup ./codis-fe --ncpu=4 --log=../log/fe.log --log-level=WARN  --dashboard-list=../config/codis.json   --listen=0.0.0.0:18090 &

2.3     集群配置

2.3.1   概览

打开浏览器,输入http://192.168.16.17:18090便可看到codis集群的监控界面。如下图所示:

 

 

 

 

 

2.3.2   加入集群配置:

步骤:

1. Codis-proxy

在proxy栏的输入框中输入相应ip和端口可将proxy添加到集群中,如下图所示:

 

 

 

 

2.Codis-Server

 

 

 

 

 

3. 配置Slots

 

 

 

 

4. Sentinel

 

 

 

3.1     故障排查

待续

3.2     Q&A

待续

 

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
轻松搭建Redis缓存高可用集群

1、Redis集群方案比较 哨兵模式 在redis3.0以前的版本要实现集群一般是借助哨兵sentinel工具来监控master节点的状态,如果master节点异常,则会做主从切换,将某一台slave作为master,哨兵的...

小猴大叔
2018/03/29
1.7K
0
Redis笔记整理(二):Java API使用与Redis分布式集群环境搭建

Redis Java API使用(一):单机版本Redis API使用 Redis的Java API通过Jedis来进行操作,因此首先需要Jedis的第三方库,因为使用的是Maven工程,所以先给出Jedis的依赖: 基本代码示例 Redi...

osc_8j6k14dq
2019/09/13
3
0
推荐几个自己写的Java后端相关的范例项目(转载)

http://wosyingjun.iteye.com/blog/2312553 这里推荐几个自己写的范例项目,主要采用SSM(Spring+SpringMVC+Mybatis)框架,分布式架构采用的是(dubbo+zookeeper)。范例项目的好处是简单易...

指尖的舞者
2016/09/27
502
0
Redis笔记整理(二):Java API使用与Redis分布式集群环境搭建

[TOC] Redis Java API使用(一):单机版本Redis API使用 Redis的Java API通过Jedis来进行操作,因此首先需要Jedis的第三方库,因为使用的是Maven工程,所以先给出Jedis的依赖: 基本代码示例...

xpleaf
2018/06/26
0
0
Redis集群下过期key监听

1. 前言 在使用redis集群时,发现过期key始终监听不到。网上也没有现成的解决方案。于是想,既然不能监听集群,那我可以建立多个redis连接,分别对每个redis的key过期进行监听。以上做法可能...

osc_kwrafgul
04/16
13
0

没有更多内容

加载失败,请刷新页面

加载更多

Hacker News 简讯 2020-07-11

更新时间: 2020-07-11 01:01 Disabling Google 2FA Doesn't Need 2FA - (infoq.com) 禁用google2fa不需要2FA 得分:98 | 评论:33 Rackspace S-1 - (sec.gov) 机架空间S-1 得分:59 | 评论:20 S......

FalconChen
今天
142
0
是否有可能从另一个git存储库中挑选一个提交? - Is it possible to cherry-pick a commit from another git repository?

问题: I'm working with a git repository that needs a commit from another git repository that knows nothing of the first. 我正在使用一个git存储库,需要从另一个不知道第一个存储库......

技术盛宴
昨天
29
0
【LeetCode】53 盛最多水的容器

题目 解题思路 双指针法: https://leetcode-cn.com/problems/container-with-most-water/solution/sheng-zui-duo-shui-de-rong-qi-by-leetcode-solution/ 代码 public class Solution { ......

JaneRoad
昨天
20
0
阿里云OSS配置CDN加速

首先购买CDN流量包 然后添加域名 添加好后 然后将域名OSS.xxxx.com 解析到 生成的CDN域名上 这样就完成了

可达鸭眉头一皱
昨天
16
0
js 整数与小数正则替换片段

说明 /(\d+)/g 整数 /(\d+\.\d+)rem/g 小数 /(\d+\.\d+|\d+)rem/g 其中 | 或 条件 例子 全局查找带 rem 单位的,替换成 px 单位 let text = text.replace(/(\d+\.\d+|\d+)rem/g, function(s......

DrChenXX
昨天
17
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部