Default heartbeat configurable (#12241)
This commit is contained in:
parent
8b65828767
commit
0a7a960f39
|
|
@ -143,6 +143,7 @@ public interface Constants {
|
|||
String DEFAULT_PROMPT = "dubbo>";
|
||||
String TELNET_KEY = "telnet";
|
||||
String HEARTBEAT_KEY = "heartbeat";
|
||||
String HEARTBEAT_CONFIG_KEY = "dubbo.protocol.default-heartbeat";
|
||||
int DEFAULT_HEARTBEAT = 60 * 1000;
|
||||
String HEARTBEAT_TIMEOUT_KEY = "heartbeat.timeout";
|
||||
String CONNECTIONS_KEY = "connections";
|
||||
|
|
|
|||
|
|
@ -47,7 +47,16 @@ public class UrlUtils {
|
|||
}
|
||||
|
||||
public static int getHeartbeat(URL url) {
|
||||
return url.getParameter(Constants.HEARTBEAT_KEY, Constants.DEFAULT_HEARTBEAT);
|
||||
String configuredHeartbeat = System.getProperty(Constants.HEARTBEAT_CONFIG_KEY);
|
||||
int defaultHeartbeat = Constants.DEFAULT_HEARTBEAT;
|
||||
if (StringUtils.isNotEmpty(configuredHeartbeat)) {
|
||||
try {
|
||||
defaultHeartbeat = Integer.parseInt(configuredHeartbeat);
|
||||
} catch (NumberFormatException e) {
|
||||
// use default heartbeat
|
||||
}
|
||||
}
|
||||
return url.getParameter(Constants.HEARTBEAT_KEY, defaultHeartbeat);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@
|
|||
package org.apache.dubbo.remoting.utils;
|
||||
|
||||
import org.apache.dubbo.common.URL;
|
||||
import org.apache.dubbo.remoting.Constants;
|
||||
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
|
@ -37,4 +38,12 @@ class UrlUtilsTest {
|
|||
URL url = URL.valueOf("dubbo://127.0.0.1:12345?heartbeat=10000");
|
||||
Assertions.assertEquals(UrlUtils.getHeartbeat(url), 10000);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testConfiguredHeartbeat() {
|
||||
System.setProperty(Constants.HEARTBEAT_CONFIG_KEY, "200");
|
||||
URL url = URL.valueOf("dubbo://127.0.0.1:12345");
|
||||
Assertions.assertEquals(200, UrlUtils.getHeartbeat(url));
|
||||
System.clearProperty(Constants.HEARTBEAT_CONFIG_KEY);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue