From ec0e79d3af8c995f458e3122118a33958a70cb24 Mon Sep 17 00:00:00 2001 From: Nikita Koksharov Date: Sat, 29 Sep 2018 12:28:26 +0300 Subject: [PATCH 1/4] Update README.md --- redisson-tomcat/README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/redisson-tomcat/README.md b/redisson-tomcat/README.md index 798ea20a7..d5be77d8b 100644 --- a/redisson-tomcat/README.md +++ b/redisson-tomcat/README.md @@ -58,25 +58,25 @@ Usage **2** Copy two jars into `TOMCAT_BASE/lib` directory: 1. __For JDK 1.8+__ - [redisson-all-3.7.5.jar](https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.redisson&a=redisson-all&v=3.7.5&e=jar) + [redisson-all-3.8.1.jar](https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.redisson&a=redisson-all&v=3.8.1&e=jar) for Tomcat 6.x - [redisson-tomcat-6-3.7.5.jar](https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.redisson&a=redisson-tomcat-6&v=3.7.5&e=jar) + [redisson-tomcat-6-3.8.1.jar](https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.redisson&a=redisson-tomcat-6&v=3.8.1&e=jar) for Tomcat 7.x - [redisson-tomcat-7-3.7.5.jar](https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.redisson&a=redisson-tomcat-7&v=3.7.5&e=jar) + [redisson-tomcat-7-3.8.1.jar](https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.redisson&a=redisson-tomcat-7&v=3.8.1&e=jar) for Tomcat 8.x - [redisson-tomcat-8-3.7.5.jar](https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.redisson&a=redisson-tomcat-8&v=3.7.5&e=jar) + [redisson-tomcat-8-3.8.1.jar](https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.redisson&a=redisson-tomcat-8&v=3.8.1&e=jar) for Tomcat 9.x - [redisson-tomcat-9-3.7.5.jar](https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.redisson&a=redisson-tomcat-9&v=3.7.5&e=jar) + [redisson-tomcat-9-3.8.1.jar](https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.redisson&a=redisson-tomcat-9&v=3.8.1&e=jar) 2. __For JDK 1.6+__ - [redisson-all-2.12.5.jar](https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.redisson&a=redisson-all&v=2.12.5&e=jar) + [redisson-all-2.13.1.jar](https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.redisson&a=redisson-all&v=2.13.1&e=jar) for Tomcat 6.x - [redisson-tomcat-6-2.12.5.jar](https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.redisson&a=redisson-tomcat-6&v=2.12.5&e=jar) + [redisson-tomcat-6-2.13.1.jar](https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.redisson&a=redisson-tomcat-6&v=2.13.1&e=jar) for Tomcat 7.x - [redisson-tomcat-7-2.12.5.jar](https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.redisson&a=redisson-tomcat-7&v=2.12.5&e=jar) + [redisson-tomcat-7-2.13.1.jar](https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.redisson&a=redisson-tomcat-7&v=2.13.1&e=jar) for Tomcat 8.x - [redisson-tomcat-8-2.12.5.jar](https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.redisson&a=redisson-tomcat-8&v=2.12.5&e=jar) + [redisson-tomcat-8-2.13.1.jar](https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.redisson&a=redisson-tomcat-8&v=2.13.1&e=jar) From 81b4501b1a3212de015075f23ce390b3cd5e17fb Mon Sep 17 00:00:00 2001 From: Nikita Koksharov Date: Sat, 29 Sep 2018 12:28:58 +0300 Subject: [PATCH 2/4] Update README.md --- redisson-spring-boot-starter/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/redisson-spring-boot-starter/README.md b/redisson-spring-boot-starter/README.md index 08ca2491e..62c7864ea 100644 --- a/redisson-spring-boot-starter/README.md +++ b/redisson-spring-boot-starter/README.md @@ -17,13 +17,13 @@ Usage org.redisson redisson-spring-boot-starter - 3.8.0 + 3.8.1 ``` Gradle ```java - compile 'org.redisson:redisson-spring-boot-starter:3.8.0' + compile 'org.redisson:redisson-spring-boot-starter:3.8.1' ``` 2. __For JDK 1.6+__ @@ -33,13 +33,13 @@ Usage org.redisson redisson-spring-boot-starter - 2.13.0 + 2.13.1 ``` Gradle ```java - compile 'org.redisson:redisson-spring-boot-starter:2.13.0' + compile 'org.redisson:redisson-spring-boot-starter:2.13.1' ``` ### 2. Add settings into `application.settings` file From 3d62e2b3cb52c2905b6dcb812ee10e9d093a08e9 Mon Sep 17 00:00:00 2001 From: Nikita Koksharov Date: Sat, 29 Sep 2018 12:29:27 +0300 Subject: [PATCH 3/4] Update README.md --- redisson-spring-data/README.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/redisson-spring-data/README.md b/redisson-spring-data/README.md index b1895711a..02350257c 100644 --- a/redisson-spring-data/README.md +++ b/redisson-spring-data/README.md @@ -24,20 +24,20 @@ Usage redisson-spring-data-18 redisson-spring-data-20 - 3.8.0 + 3.8.1 ``` Gradle ```java // for Spring Data Redis v.1.6.x - compile 'org.redisson:redisson-spring-data-16:3.8.0' + compile 'org.redisson:redisson-spring-data-16:3.8.1' // for Spring Data Redis v.1.7.x - compile 'org.redisson:redisson-spring-data-17:3.8.0' + compile 'org.redisson:redisson-spring-data-17:3.8.1' // for Spring Data Redis v.1.8.x - compile 'org.redisson:redisson-spring-data-18:3.8.0' + compile 'org.redisson:redisson-spring-data-18:3.8.1' // for Spring Data Redis v.2.0.x - compile 'org.redisson:redisson-spring-data-20:3.8.0' + compile 'org.redisson:redisson-spring-data-20:3.8.1' ``` 2. __For JDK 1.6+__ @@ -54,20 +54,20 @@ Usage redisson-spring-data-18 redisson-spring-data-20 - 2.13.0 + 2.13.1 ``` Gradle ```java // for Spring Data Redis v.1.6.x - compile 'org.redisson:redisson-spring-data-16:2.13.0' + compile 'org.redisson:redisson-spring-data-16:2.13.1' // for Spring Data Redis v.1.7.x - compile 'org.redisson:redisson-spring-data-17:2.13.0' + compile 'org.redisson:redisson-spring-data-17:2.13.1' // for Spring Data Redis v.1.8.x - compile 'org.redisson:redisson-spring-data-18:2.13.0' + compile 'org.redisson:redisson-spring-data-18:2.13.1' // for Spring Data Redis v.2.0.x - compile 'org.redisson:redisson-spring-data-20:2.13.0' + compile 'org.redisson:redisson-spring-data-20:2.13.1' ``` From 6ffb79766b78b11976ff50cc2080d6313f452bca Mon Sep 17 00:00:00 2001 From: Nikita Date: Mon, 1 Oct 2018 18:28:18 +0300 Subject: [PATCH 4/4] Master node failover handling improvements --- .../redisson/client/handler/CommandsQueue.java | 2 +- .../cluster/ClusterConnectionManager.java | 16 ++++++++++++---- .../connection/MasterSlaveConnectionManager.java | 6 ++++-- .../redisson/connection/MasterSlaveEntry.java | 2 +- 4 files changed, 18 insertions(+), 8 deletions(-) diff --git a/redisson/src/main/java/org/redisson/client/handler/CommandsQueue.java b/redisson/src/main/java/org/redisson/client/handler/CommandsQueue.java index 448e24593..9e1b0fa94 100644 --- a/redisson/src/main/java/org/redisson/client/handler/CommandsQueue.java +++ b/redisson/src/main/java/org/redisson/client/handler/CommandsQueue.java @@ -78,7 +78,7 @@ public class CommandsQueue extends ChannelDuplexHandler { } command.getChannelPromise().tryFailure( - new WriteRedisConnectionException("Can't write command: " + command.getCommand() + " to channel: " + ctx.channel())); + new WriteRedisConnectionException("Channel has been closed! Can't write command: " + command.getCommand() + " to channel: " + ctx.channel())); } super.channelInactive(ctx); diff --git a/redisson/src/main/java/org/redisson/cluster/ClusterConnectionManager.java b/redisson/src/main/java/org/redisson/cluster/ClusterConnectionManager.java index 7c26ea6b6..974b97cca 100644 --- a/redisson/src/main/java/org/redisson/cluster/ClusterConnectionManager.java +++ b/redisson/src/main/java/org/redisson/cluster/ClusterConnectionManager.java @@ -507,7 +507,7 @@ public class ClusterConnectionManager extends MasterSlaveConnectionManager { Set lastPartitions = getLastPartitions(); for (final ClusterPartition newPart : newPartitions) { boolean masterFound = false; - for (ClusterPartition currentPart : lastPartitions) { + for (final ClusterPartition currentPart : lastPartitions) { if (!newPart.getMasterAddress().equals(currentPart.getMasterAddress())) { continue; } @@ -521,11 +521,19 @@ public class ClusterConnectionManager extends MasterSlaveConnectionManager { // does partition has a new master? if (!newMasterPart.getMasterAddress().equals(currentPart.getMasterAddress())) { URI newUri = newMasterPart.getMasterAddress(); - URI oldUri = currentPart.getMasterAddress(); + final URI oldUri = currentPart.getMasterAddress(); - changeMaster(slot, newUri); + RFuture future = changeMaster(slot, newUri); + future.addListener(new FutureListener() { + @Override + public void operationComplete(Future future) throws Exception { + if (!future.isSuccess()) { + currentPart.setMasterAddress(oldUri); + } + } + }); - currentPart.setMasterAddress(newMasterPart.getMasterAddress()); + currentPart.setMasterAddress(newUri); } } break; diff --git a/redisson/src/main/java/org/redisson/connection/MasterSlaveConnectionManager.java b/redisson/src/main/java/org/redisson/connection/MasterSlaveConnectionManager.java index 285800204..a167b2a73 100644 --- a/redisson/src/main/java/org/redisson/connection/MasterSlaveConnectionManager.java +++ b/redisson/src/main/java/org/redisson/connection/MasterSlaveConnectionManager.java @@ -504,10 +504,11 @@ public class MasterSlaveConnectionManager implements ConnectionManager { return slot2entry.get(slot); } - protected final void changeMaster(int slot, URI address) { + protected final RFuture changeMaster(int slot, URI address) { final MasterSlaveEntry entry = getEntry(slot); final RedisClient oldClient = entry.getClient(); - entry.changeMaster(address).addListener(new FutureListener() { + RFuture future = entry.changeMaster(address); + future.addListener(new FutureListener() { @Override public void operationComplete(Future future) throws Exception { if (future.isSuccess()) { @@ -516,6 +517,7 @@ public class MasterSlaveConnectionManager implements ConnectionManager { } } }); + return future; } protected final void addEntry(Integer slot, MasterSlaveEntry entry) { diff --git a/redisson/src/main/java/org/redisson/connection/MasterSlaveEntry.java b/redisson/src/main/java/org/redisson/connection/MasterSlaveEntry.java index eb06ce46a..03957704d 100644 --- a/redisson/src/main/java/org/redisson/connection/MasterSlaveEntry.java +++ b/redisson/src/main/java/org/redisson/connection/MasterSlaveEntry.java @@ -422,7 +422,7 @@ public class MasterSlaveEntry { @Override public void operationComplete(Future future) throws Exception { if (!future.isSuccess()) { - log.error("Can't change master to: {}", address); + log.error("Unable to change master from: " + oldMaster.getClient().getAddr() + " to: " + address, future.cause()); return; }