Skip to content

Commit e5d1e19

Browse files
authored
session disconnect delay configurable (#141)
1 parent fb22342 commit e5d1e19

File tree

3 files changed

+26
-2
lines changed

3 files changed

+26
-2
lines changed

server/server/data/src/main/java/com/alipay/sofa/registry/server/data/bootstrap/DataServerConfig.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,8 @@ public class DataServerConfig {
123123

124124
private int dataSyncNotifyRetry = 3;
125125

126+
private int sessionDisconnectDelayMs = 30000;
127+
126128
/**
127129
* constructor
128130
* @param commonConfig
@@ -848,6 +850,24 @@ public void setDataSyncNotifyRetry(int dataSyncNotifyRetry) {
848850
this.dataSyncNotifyRetry = dataSyncNotifyRetry;
849851
}
850852

853+
/**
854+
* Getter method for property <tt>sessionDisconnectDelayMs</tt>.
855+
*
856+
* @return property value of sessionDisconnectDelayMs
857+
*/
858+
public int getSessionDisconnectDelayMs() {
859+
return sessionDisconnectDelayMs;
860+
}
861+
862+
/**
863+
* Setter method for property <tt>sessionDisconnectDelayMs</tt>.
864+
*
865+
* @param sessionDisconnectDelayMs value to be assigned to property sessionDisconnectDelayMs
866+
*/
867+
public void setSessionDisconnectDelayMs(int sessionDisconnectDelayMs) {
868+
this.sessionDisconnectDelayMs = sessionDisconnectDelayMs;
869+
}
870+
851871
@Override
852872
public String toString() {
853873
return ToStringBuilder.reflectionToString(this, ToStringStyle.MULTI_LINE_STYLE);

server/server/data/src/main/java/com/alipay/sofa/registry/server/data/remoting/sessionserver/SessionServerConnectionFactory.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import java.util.concurrent.ConcurrentHashMap;
2626
import java.util.concurrent.atomic.AtomicInteger;
2727

28+
import com.alipay.sofa.registry.server.data.bootstrap.DataServerConfig;
2829
import org.springframework.beans.factory.annotation.Autowired;
2930

3031
import com.alipay.remoting.Connection;
@@ -45,7 +46,6 @@ public class SessionServerConnectionFactory {
4546
private static final Logger LOGGER = LoggerFactory
4647
.getLogger(SessionServerConnectionFactory.class);
4748

48-
private static final int DELAY = 30 * 1000;
4949
private static final Map EMPTY_MAP = new HashMap(0);
5050

5151
/**
@@ -69,6 +69,9 @@ public class SessionServerConnectionFactory {
6969
@Autowired
7070
private DisconnectEventHandler disconnectEventHandler;
7171

72+
@Autowired
73+
private DataServerConfig dataServerConfig;
74+
7275
/**
7376
* register connection
7477
*
@@ -125,7 +128,7 @@ public void sessionDisconnected(String sessionConnAddress) {
125128
// The SessionServerDisconnectEvent is triggered only when the last connection is broken
126129
if (pair == null || pair.getConnections().isEmpty()) {
127130
disconnectEventHandler.receive(new SessionServerDisconnectEvent(processId,
128-
sessionConnAddress, DELAY));
131+
sessionConnAddress, dataServerConfig.getSessionDisconnectDelayMs()));
129132
}
130133
}
131134
}

server/server/data/src/main/resources/application.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,5 @@ data.server.metaServerPort=9611
1717
data.server.storeNodes=3
1818
data.server.numberOfReplicas=1000
1919
data.server.datumTimeToLiveSec=900
20+
data.server.sessionDisconnectDelayMs=30000
2021

0 commit comments

Comments
 (0)