栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

docker进行Redis集群部署

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

docker进行Redis集群部署

环境:

(1)Centos7
(2)JDK1.8
(3)docker
(4)redis6.0

集群模式:

主从+哨兵,一个主节点,两个从节点,三个哨兵

概念: 哨兵(sentinel

主要功能:
监控(Monitoring):Sentinel会不断地检查你的主服务器和从服务器是否运作正常。
通知(Notification):当被监控的某个 Redis 服务器出现问题时, Sentinel可以通过API向管理员或者其他应用程序发送通知。
故障迁移:当主服务器不能正常工作时,Sentinel会自动进行故障迁移,也就是主从切换。
统一的配置管理:连接者询问sentinel取得主从的地址。

建议:

(1)服务器建议3台
只有两台的话一般是搭建一主一从两个哨兵,一旦有一个服务器宕机了,那么其所在redis和哨兵都没了,就只剩下另外一个,相当于单机版了。

部署: 1、手动新建redis配置文件 redis.conf

分别在三台服务器 /home/docker/redis/conf目录下 创建redis.conf文件,从节点配置文件需要配置
replicaof

cd /home/docker
mkdir redis
cd redis
mkdir conf
cd conf
vi  redis.conf

内容如下

# 绑定ip 允许所有ip访问
bind 0.0.0.0

# 端口
port 6379

# 是否开启保护模式 yes开启的情况下,只能通过设置bind绑定的ip或者密码验证访问
protected-mode no

# 以守护进程的方式运行
daemonize no

# 日志存放地址
logfile ./redis.log

# 密码验证
requirepass 123456

# 主节点访问密码 当master服务设置了密码保护时,slav服务连接master的密码
masterauth 123456

# 开启aof持久化 类似于mysql的binlog
appendonly yes

# 从节点需要设置主节点的IP和端口
#replicaof 192.168.8.49 6379
2、手动新建哨兵配置文件sentinel.conf
cd /home/docker
mkdir redis
cd redis
mkdir conf
cd conf
vi  sentinel.conf

内容如下:

# 端口
port 26379

# 是否开启保护模式
protected-mode no

# 以守护进程的方式运行
daemonize no

# 日志存放地址
logfile ./sentinel.log

# 哨兵sentinel监控的redis主节点的 ip port quorum 
# 配置多少个sentinel哨兵统一认为master主节点失联 那么这时客观上认为主节点失联了
sentinel monitor mymaster 192.168.8.49 6379 2

# 密码认证
sentinel auth-pass mymaster 123456

# master在连续多长时间无法响应PING指令后,就会主观判定节点下线
sentinel down-after-milliseconds mymaster 3000

# 主备切换时最多可以有多少个slave同时对新的master进行同步
sentinel parallel-syncs mymaster 1

# 故障转移的超时时间
sentinel failover-timeout mymaster 180000
3、获取镜像
docker pull redis:6.0
4、启动redis

三台服务器的启动命令都是一样
启动顺序:先主后从再哨兵

docker run -d -p 6379:6379 
-v /home/docker/redis/data:/data 
-v /home/docker/redis/conf/redis.conf:/etc/redis/redis.conf 
--name redis 
--network=host 
--restart=always 
-d redis redis-server /etc/redis/redis.conf
5、启动哨兵sentinel
docker run -p 26379:26379 
--name sentinel-26379 
--network=host 
--restart=always 
-v /home/docker/redis/conf/sentinel.conf:/etc/redis/sentinel.conf 
-v /home/docker/redis/data/sentinel:/data 
-d redis redis-sentinel /etc/redis/sentinel.conf
遇到的问题:

1、docekr 的网络模式 需要选择为host ,不然哨兵有时候无法连通
所以我们启动命令中使用了–network=host

参考博客:

https://blog.csdn.net/succing/article/details/121265307?spm=1001.2014.3001.5506
https://blog.csdn.net/IT_rookie_newbie/article/details/120430807?spm=1001.2014.3001.5506

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/973011.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号