Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1604345
  • 博文数量: 695
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 4027
  • 用 户 组: 普通用户
  • 注册时间: 2013-11-20 21:22
文章分类

全部博文(695)

文章存档

2018年(18)

2017年(74)

2016年(170)

2015年(102)

2014年(276)

2013年(55)

分类: 数据库开发技术

2017-06-15 15:31:32

spring整合redis 连接 redis服务是 要在sentinel.conf 中添加protected-mode no

虚机环境
三个redis安装在 /home/redis目录下
redis-3.2.1-master
redis-3.2.1-slave-1
redis-3.2.1-slave-2


只配置了一个sentinel.conf(生成环境时为了保证senti高可用。也要配置多个,哨兵的端口不一样就行,其他内容都一样)

通过./src/redis-server redis.conf 分别启动三个redis服务

sentinel.conf配置在了 master文件下 通过./src/redis-server sentinel.conf  启动哨兵监控

具体配置文件可以参照一下两个链接写的很详细

一、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。此外 slave 的redis.conf 中的slaveof 后边也要是真实IP

sentinel在对外管理MASTER IP时,只是简单的将配置文件中的IP保存,而不会在对外提供服务时,动态转换为127.0.0.1所在机器的真实IP


三、sentinel不共享配置

每一个sentinel结点,各自保存自己的配置信息,这在搭建集群时,容易出现某一个sentinel结点配置和其它不一致而导致的诡异系统问题。

jedis pool在连接到sentinel列表后,会从第一个可用的sentinel结点获取redis集群的信息,来构建pool,这样就可能会导致构建异常


四、集群状态ODOWN

ODOWN是sentinel认为整个集群不可用。有一种情况导致的ODOWN是由于配置不当导致,而非真的集群不可用。

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



http://www.cnblogs.com/ssslinppp/p/5661419.html
http://www.cnblogs.com/ssslinppp/p/5663788.html#_introduction
http://blog.csdn.net/peterwanghao/article/details/44980085

阅读(972) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~