Skip to content

Commit 6646df3

Browse files
committed
Fixes #20: Fix runtime port and heartbeat sending logic
- Sentinel should not send heartbeat to dashboard until the runtime port has been settled down Signed-off-by: Eric Zhao <[email protected]>
1 parent 556d71d commit 6646df3

File tree

3 files changed

+10
-4
lines changed

3 files changed

+10
-4
lines changed

sentinel-transport/sentinel-transport-common/src/main/java/com/alibaba/csp/sentinel/transport/config/TransportConfig.java

+4
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,10 @@ public static String getConsoleServer() {
4242
return SentinelConfig.getConfig(CONSOLE_SERVER);
4343
}
4444

45+
public static int getRuntimePort() {
46+
return runtimePort;
47+
}
48+
4549
/**
4650
* Get Server port of this HTTP server.
4751
*

sentinel-transport/sentinel-transport-simple-http/src/main/java/com/alibaba/csp/sentinel/transport/command/SimpleHttpCommandCenter.java

+1-3
Original file line numberDiff line numberDiff line change
@@ -124,9 +124,7 @@ public void run() {
124124
}
125125
}
126126

127-
if (success) {
128-
tmpPort = port;
129-
} else {
127+
if (!success) {
130128
tmpPort = PORT_UNINITIALIZED;
131129
}
132130
TransportConfig.setRuntimePort(tmpPort);

sentinel-transport/sentinel-transport-simple-http/src/main/java/com/alibaba/csp/sentinel/transport/heartbeat/SimpleHttpHeartbeatSender.java

+5-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public class SimpleHttpHeartbeatSender implements HeartbeatSender {
5252
public SimpleHttpHeartbeatSender() {
5353
// Retrieve the list of default addresses.
5454
List<InetSocketAddress> newAddrs = getDefaultConsoleIps();
55-
RecordLog.info("Default console address list retrieved: " + newAddrs);
55+
RecordLog.info("[SimpleHttpHeartbeatSender] Default console address list retrieved: " + newAddrs);
5656
this.addressList = newAddrs;
5757
// Set interval config.
5858
String interval = System.getProperty(TransportConfig.HEARTBEAT_INTERVAL_MS, String.valueOf(DEFAULT_INTERVAL));
@@ -61,6 +61,10 @@ public SimpleHttpHeartbeatSender() {
6161

6262
@Override
6363
public boolean sendHeartbeat() throws Exception {
64+
if (TransportConfig.getRuntimePort() <= 0) {
65+
RecordLog.info("[SimpleHttpHeartbeatSender] Runtime port not initialized, won't send heartbeat");
66+
return false;
67+
}
6468
InetSocketAddress addr = getAvailableAddress();
6569
if (addr == null) {
6670
return false;

0 commit comments

Comments
 (0)