Der*_*gan 7 java amazon-web-services nosql redis jedis
在一个简单的情况下,有3个服务器,1个主服务器和2个从服务器,没有分片.是否有经过验证的解决方案,java和Jedis没有单点故障,并且会自动处理单个服务器,即主服务器或从服务器(自动故障转移).例如,在没有任何数据丢失的情况下促进主人和重置.
在我看来它应该是一个解决的问题,但我找不到任何代码,只是对可能的方法的高级描述.
谁实际上已经覆盖并在生产中工作?
您可能想尝试使用Redis Sentinel来实现:
Redis Sentinel是一个旨在帮助管理Redis实例的系统.它执行以下三个任务:
监控.Sentinel会不断检查主实例和从属实例是否按预期工作.
通知.Sentinel可以通过API通知系统管理员或其他计算机程序,其中一个受监控的Redis实例出现问题.
自动故障转移.如果主服务器未按预期工作,Sentinel可以启动故障转移过程,其中从服务器被提升为主服务器,其他其他服务器将重新配置为使用新主服务器,并且使用Redis服务器的应用程序会通知有关新服务器的地址.连接.
...或使用Zookeeper和Jedis_failover等外部解决方案:
JedisPool pool = new JedisPoolBuilder()
.withFailoverConfiguration(
"localhost:2838", // ZooKeeper cluster URL
Arrays.asList( // List of redis servers
new HostConfiguration("localhost", 7000),
new HostConfiguration("localhost", 7001)))
.build();
pool.withJedis(new JedisFunction() {
@Override
public void execute(final JedisActions jedis) throws Exception {
jedis.ping();
}
});
Run Code Online (Sandbox Code Playgroud)
[更新] ...或使用Jedis + Sentinel的纯Java解决方案是使用处理Redis Sentinel事件的包装器,请参阅SentinelBasedJedisPoolWrapper.
| 归档时间: |
|
| 查看次数: |
7316 次 |
| 最近记录: |