我们当前的Redis设置是一个Web应用程序客户端,使用Jedis直接连接一个JedisPool用于写入单个Redis主服务器,第二个JedisPool用于从单个Redis从服务器读取.从站设置为复制主站.
我们正在转向在客户端上使用JedisSentinelPool并引入Sentinel以更干净地处理故障转移.据我所知,似乎JedisSentinelPool只与当前选出的主设备通信,所以现在所有的写入/读取都转到主设备上.与之前读取可以分配给从属的情况相比.
有没有办法使用JedisSentinelPool将读取分配给从站以实现负载平衡?或者有必要使用JedisPool手动实现(如前所述)在这种情况下,如果主服务器失败,JedisSentinelPool现在将指向旧的从服务器(新主服务器),JedisPool仍然会笨拙地指向旧服务器,并且有效旧奴隶(新主人)现在会处理读写吗?
Redis Sentinel(或其他)是否具有任何负载平衡(而不是故障转移)功能?我们目前只有一个奴隶,可以添加更多的奴隶用于负载平衡吗?如果是这样,推荐的配置是什么?
任何建议,现实世界的经验将不胜感激.
我正在研究一个ANT任务,该任务调用一些使用JGit在git存储库上创建新分支并将其推送到远程的java.我正在使用JGit 2.1.0.
这是代码:
CreateBranchCommand bcc;
CheckoutCommand checkout;
Git git;
try {
Repository repo = new FileRepositoryBuilder().readEnvironment().findGitDir(src).build();
git = new Git(repo);
bcc = git.branchCreate();
checkout = git.checkout();
} catch (IOException e) {
throw new BuildException("Could not access repository " + src, e);
}
try {
bcc.setName(branch)
.setUpstreamMode(SetupUpstreamMode.SET_UPSTREAM)
.setStartPoint("origin/" + branch)
.setForce(force)
.call();
checkout.setName(branch);
checkout.call();
}
} catch (Exception e) {
throw new BuildException("Could not checkout repository " + src, e);
}
Run Code Online (Sandbox Code Playgroud)
该SRC变量被设置为git仓库的路径(其已经被克隆).该分支变量设置为:release_2_0_2 的力变量设置为:真 …