Kri*_*psv 0 php redis logstash redis-sentinel predis
我们有一个设置:
2个php服务器
2个redis服务器作为主/从
1 运行1个日志服务器,它存储所有类型的日志在elastcisearch
我们想为redis服务器实现自动故障转移,现在在php服务器redis主地址ir硬编码.
并且在日志服务器中,其具有来自master的redis输入的logstash实例也在logstash配置中被编码.
我们已在两台redis服务器上安装了redis sentinel,但它运行正常.
但问题是如何在php和logstash中获取master或者这不是正确的方法.
对于PHP我发现这个客户端包装器https://github.com/Sparkcentral/PSRedis
但是没有为logstash找到任何东西,我认为我只是在错误的方向搜索
所以问题是,如果没有人能指出我,这是否是正确的方向.
为了使用Sentinel,请记住您需要三个实例,因此在您的设置中,请确保在日志服务器中安装Sentinel实例,并在每个redis服务器实例中安装一个实例.Sentinel的三个副本应该在被认为以彼此独立的方式失败的计算机/ VM上运行(因此同一物理主机中的多个VM不是一个好主意).
也就是说,为了为Sentinel工作,您的客户需要实现此处指定的Sentinel协议:http://redis.io/topics/sentinel-clients.
在https://github.com/Sparkcentral/PSRedis页面中,我找不到任何关于它们确切实现的提示,是否正在实现上面我的消息中指定的最新Sentinel协议?我会打开一个问题并询问他们是否实现了记录的Sentinel协议:如果不是,他们应该,如果是,他们应该在README中记录它们.
显然,Predis本身尚未实施对Sentinel的支持:https://github.com/nrk/predis/issues/131
如果您有时间花钱,我建议:
快乐的黑客.