sentinel搭建redis集群经验总结

一、protected-mode 默认情况下,redis node和sentinel的protected-mode都是yes,在搭建集群时,若想从远程连接redis集群,需要将redis node和sentinel的protected-mode修改为no,若只修改redis node,从远程连接sentinel后,依然是无法正常使用的,且sentinel的配置文件中没有protected-mode配置项,需要手工添加。依据redis文档的说明,若protected-mode设置为no后,需要增加密码验证或是IP限制等保护机制,否则是极度危险的。

二、sentinel提供的master ip sentinel保存着所有可用node的IP,jedis pool通过sentinel来获取redis的可用master ip来创建连接池连接,这里有一个很坑的地方,若sentinel和redis node部署在同一台服务器,sentinel监控的master ip不能写成127.0.0.1,需要写成真实IP。sentinel在对外管理MASTER IP时,只是简单的将配置文件中的IP保存,而不会在对外提供服务时,动态转换为127.0.0.1所在机器的真实IP。

三、sentinel不共享配置 每一个sentinel结点,各自保存自己的配置信息,这在搭建集群时,容易出现某一个sentinel结点配置和其它不一致而导致的诡异系统问题。jedis pool在连接到sentinel列表后,会从第一个可用的sentinel结点获取redis集群的信息,来构建pool,这样就可能会导致构建异常。

四、集群状态 ODOWNODOWN是sentinel认为整个集群不可用。有一种情况导致的ODOWN是由于配置不当导致,而非真的集群不可用。sentienl会根据配置文件中的master IP和端口来获取整个集群的初始状态(包括MASTER结点是否可用,以及所有SLAVE结点的状态),若此时sentienl中的master配置和集群状态中的真正master不匹配时,sentinel就认为集群不可用。集群在master挂掉后,sentinel会进行failover处理 ,若failover后,很不幸所有sentinel都挂了,再重启后的sentinel就会因为找不到master,而认为集群ODOWN。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术问题

中小型局域网本地配置路由器的详细方法?

中小型企业配置路由器的方法和其他路由器配置很相似,这里我们主要讲解了中小型局域网本地配置路由器的详细方法,接着双击刚刚创建好的“PerformRouterDis...

160
来自专栏ccylovehs

javap查看class文件

通过JVM编译java文件生成class字节码文件,很多时候很想用工具打开看看,目前还不清楚哪一个软件专门查看class文件的,但是通过windows下的jav...

470
来自专栏王二麻子IT技术交流园地

Linux常用命令100个用法

平时用linux时,我有一个习惯就是把遇到的,比较有用,并且容易忘的命令,放到一个文本文件中,没事的时候可以拿出来看看,这样可以加深映像,时间长了这些命令的用法...

1805
来自专栏数值分析与有限元编程

PyCharm错误--module ImportError: No module named...

用pip安装了numpy这个moudle后,写程序import这个模块进来的时候,执行报错,说找不到这个module。 ? ? 去python的安装目录下找的话...

4178
来自专栏蓝天

lsof和tcpdump常用命令

lsof用法 A.查看端口被谁占用 lsof -i:port,如:lsof -i:80 B.查看tcp监听端口 netstat -lpnt ...

512
来自专栏Vamei实验室

Python标准库04 文件管理 (部分os包,shutil包)

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 在操作系统下,用户可以通过操作系统的命令来...

1849
来自专栏calmound

LINUX常用命令

修改密码: passwd 查看当前目录下的文件 ls 查看当前用户信息 whoami *可以匹配0个或任意多个字符 ?可以匹配1个字符 cat filename...

3098
来自专栏码云1024

linux tar解压命令

3526
来自专栏北京马哥教育

73条日常shell命令汇总,总有一条你需要!

1.检查远程端口是否对bash开放: echo >/dev/tcp/8.8.8.8/53 && echo "open" 2.让进程转入后台: Ctrl + z...

34811
来自专栏linux系统运维

linux任务计划, chkconfig工具,systemd管理服务, unit介绍,target介绍

1655

扫码关注云+社区