From f2733b7472e8af1fcf905e91f75204ba0a255e48 Mon Sep 17 00:00:00 2001 From: "Nick.Tan" Date: Sat, 24 Nov 2018 22:03:22 +0800 Subject: [PATCH 1/2] config client ip --- .../transport/config/TransportConfig.java | 16 ++++++++++++++++ .../transport/heartbeat/HttpHeartbeatSender.java | 2 +- .../transport/heartbeat/HeartbeatMessage.java | 2 +- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/sentinel-transport/sentinel-transport-common/src/main/java/com/alibaba/csp/sentinel/transport/config/TransportConfig.java b/sentinel-transport/sentinel-transport-common/src/main/java/com/alibaba/csp/sentinel/transport/config/TransportConfig.java index 5f934a9808..dfb1da10f4 100755 --- a/sentinel-transport/sentinel-transport-common/src/main/java/com/alibaba/csp/sentinel/transport/config/TransportConfig.java +++ b/sentinel-transport/sentinel-transport-common/src/main/java/com/alibaba/csp/sentinel/transport/config/TransportConfig.java @@ -16,6 +16,8 @@ package com.alibaba.csp.sentinel.transport.config; import com.alibaba.csp.sentinel.config.SentinelConfig; +import com.alibaba.csp.sentinel.util.HostNameUtil; +import com.alibaba.csp.sentinel.util.StringUtil; /** * @author leyou @@ -25,6 +27,7 @@ public class TransportConfig { public static final String CONSOLE_SERVER = "csp.sentinel.dashboard.server"; public static final String SERVER_PORT = "csp.sentinel.api.port"; public static final String HEARTBEAT_INTERVAL_MS = "csp.sentinel.heartbeat.interval.ms"; + public static final String CLIENT_IP = "csp.sentinel.client.ip"; private static int runtimePort = -1; @@ -66,4 +69,17 @@ public static String getPort() { public static void setRuntimePort(int port) { runtimePort = port; } + + /** + * Get client local ip. + * If the client ip not configured,it will be the address of local host + * @return the local ip. + */ + public static String getClientIp() { + String ip = SentinelConfig.getConfig(CLIENT_IP); + if (StringUtil.isBlank(ip)) { + ip = HostNameUtil.getIp(); + } + return ip; + } } diff --git a/sentinel-transport/sentinel-transport-netty-http/src/main/java/com/alibaba/csp/sentinel/transport/heartbeat/HttpHeartbeatSender.java b/sentinel-transport/sentinel-transport-netty-http/src/main/java/com/alibaba/csp/sentinel/transport/heartbeat/HttpHeartbeatSender.java index f92e47449d..7522674de5 100755 --- a/sentinel-transport/sentinel-transport-netty-http/src/main/java/com/alibaba/csp/sentinel/transport/heartbeat/HttpHeartbeatSender.java +++ b/sentinel-transport/sentinel-transport-netty-http/src/main/java/com/alibaba/csp/sentinel/transport/heartbeat/HttpHeartbeatSender.java @@ -85,7 +85,7 @@ public boolean sendHeartbeat() throws Exception { .setParameter("v", Constants.SENTINEL_VERSION) .setParameter("version", String.valueOf(System.currentTimeMillis())) .setParameter("hostname", HostNameUtil.getHostName()) - .setParameter("ip", HostNameUtil.getIp()) + .setParameter("ip", TransportConfig.getClientIp()) .setParameter("port", TransportConfig.getPort()) .setParameter("pid", String.valueOf(PidUtil.getPid())); diff --git a/sentinel-transport/sentinel-transport-simple-http/src/main/java/com/alibaba/csp/sentinel/transport/heartbeat/HeartbeatMessage.java b/sentinel-transport/sentinel-transport-simple-http/src/main/java/com/alibaba/csp/sentinel/transport/heartbeat/HeartbeatMessage.java index 8292c7a349..9ecc249f64 100755 --- a/sentinel-transport/sentinel-transport-simple-http/src/main/java/com/alibaba/csp/sentinel/transport/heartbeat/HeartbeatMessage.java +++ b/sentinel-transport/sentinel-transport-simple-http/src/main/java/com/alibaba/csp/sentinel/transport/heartbeat/HeartbeatMessage.java @@ -36,7 +36,7 @@ public class HeartbeatMessage { public HeartbeatMessage() { message.put("hostname", HostNameUtil.getHostName()); - message.put("ip", HostNameUtil.getIp()); + message.put("ip", TransportConfig.getClientIp()); message.put("app", AppNameUtil.getAppName()); message.put("port", String.valueOf(TransportConfig.getPort())); } From c33489571cc116b99ad2241b951f278204e893ea Mon Sep 17 00:00:00 2001 From: "Nick.Tan" Date: Sat, 1 Dec 2018 14:28:44 +0800 Subject: [PATCH 2/2] add heartbeat client config unit test --- .../transport/config/TransportConfig.java | 9 ++++--- .../transport/config/TransportConfigTest.java | 25 +++++++++++++++++++ .../heartbeat/HttpHeartbeatSender.java | 2 +- .../transport/heartbeat/HeartbeatMessage.java | 2 +- 4 files changed, 32 insertions(+), 6 deletions(-) create mode 100644 sentinel-transport/sentinel-transport-common/src/test/java/com/alibaba/csp/sentinel/transport/config/TransportConfigTest.java diff --git a/sentinel-transport/sentinel-transport-common/src/main/java/com/alibaba/csp/sentinel/transport/config/TransportConfig.java b/sentinel-transport/sentinel-transport-common/src/main/java/com/alibaba/csp/sentinel/transport/config/TransportConfig.java index dfb1da10f4..ab150175b6 100755 --- a/sentinel-transport/sentinel-transport-common/src/main/java/com/alibaba/csp/sentinel/transport/config/TransportConfig.java +++ b/sentinel-transport/sentinel-transport-common/src/main/java/com/alibaba/csp/sentinel/transport/config/TransportConfig.java @@ -27,7 +27,7 @@ public class TransportConfig { public static final String CONSOLE_SERVER = "csp.sentinel.dashboard.server"; public static final String SERVER_PORT = "csp.sentinel.api.port"; public static final String HEARTBEAT_INTERVAL_MS = "csp.sentinel.heartbeat.interval.ms"; - public static final String CLIENT_IP = "csp.sentinel.client.ip"; + public static final String HEARTBEAT_CLIENT_IP = "csp.sentinel.heartbeat.client.ip"; private static int runtimePort = -1; @@ -71,12 +71,13 @@ public static void setRuntimePort(int port) { } /** - * Get client local ip. + * Get heartbeat client local ip. * If the client ip not configured,it will be the address of local host + * * @return the local ip. */ - public static String getClientIp() { - String ip = SentinelConfig.getConfig(CLIENT_IP); + public static String getHeartbeatClientIp() { + String ip = SentinelConfig.getConfig(HEARTBEAT_CLIENT_IP); if (StringUtil.isBlank(ip)) { ip = HostNameUtil.getIp(); } diff --git a/sentinel-transport/sentinel-transport-common/src/test/java/com/alibaba/csp/sentinel/transport/config/TransportConfigTest.java b/sentinel-transport/sentinel-transport-common/src/test/java/com/alibaba/csp/sentinel/transport/config/TransportConfigTest.java new file mode 100644 index 0000000000..d35c77fa7f --- /dev/null +++ b/sentinel-transport/sentinel-transport-common/src/test/java/com/alibaba/csp/sentinel/transport/config/TransportConfigTest.java @@ -0,0 +1,25 @@ +package com.alibaba.csp.sentinel.transport.config; + +import com.alibaba.csp.sentinel.config.SentinelConfig; +import org.junit.Test; + +import static org.junit.Assert.*; + +public class TransportConfigTest { + + @Test + public void getClientIp() { + //config heartbeat client ip + System.setProperty(TransportConfig.HEARTBEAT_CLIENT_IP, "10.10.10.10"); + String ip = TransportConfig.getHeartbeatClientIp(); + + assertNotNull(ip); + assertEquals(ip, "10.10.10.10"); + + //no heartbeat client ip + SentinelConfig.setConfig(TransportConfig.HEARTBEAT_CLIENT_IP, ""); + ip = TransportConfig.getHeartbeatClientIp(); + assertNotNull(ip); + + } +} \ No newline at end of file diff --git a/sentinel-transport/sentinel-transport-netty-http/src/main/java/com/alibaba/csp/sentinel/transport/heartbeat/HttpHeartbeatSender.java b/sentinel-transport/sentinel-transport-netty-http/src/main/java/com/alibaba/csp/sentinel/transport/heartbeat/HttpHeartbeatSender.java index 7522674de5..090cd09b7f 100755 --- a/sentinel-transport/sentinel-transport-netty-http/src/main/java/com/alibaba/csp/sentinel/transport/heartbeat/HttpHeartbeatSender.java +++ b/sentinel-transport/sentinel-transport-netty-http/src/main/java/com/alibaba/csp/sentinel/transport/heartbeat/HttpHeartbeatSender.java @@ -85,7 +85,7 @@ public boolean sendHeartbeat() throws Exception { .setParameter("v", Constants.SENTINEL_VERSION) .setParameter("version", String.valueOf(System.currentTimeMillis())) .setParameter("hostname", HostNameUtil.getHostName()) - .setParameter("ip", TransportConfig.getClientIp()) + .setParameter("ip", TransportConfig.getHeartbeatClientIp()) .setParameter("port", TransportConfig.getPort()) .setParameter("pid", String.valueOf(PidUtil.getPid())); diff --git a/sentinel-transport/sentinel-transport-simple-http/src/main/java/com/alibaba/csp/sentinel/transport/heartbeat/HeartbeatMessage.java b/sentinel-transport/sentinel-transport-simple-http/src/main/java/com/alibaba/csp/sentinel/transport/heartbeat/HeartbeatMessage.java index 9ecc249f64..5695632ca8 100755 --- a/sentinel-transport/sentinel-transport-simple-http/src/main/java/com/alibaba/csp/sentinel/transport/heartbeat/HeartbeatMessage.java +++ b/sentinel-transport/sentinel-transport-simple-http/src/main/java/com/alibaba/csp/sentinel/transport/heartbeat/HeartbeatMessage.java @@ -36,7 +36,7 @@ public class HeartbeatMessage { public HeartbeatMessage() { message.put("hostname", HostNameUtil.getHostName()); - message.put("ip", TransportConfig.getClientIp()); + message.put("ip", TransportConfig.getHeartbeatClientIp()); message.put("app", AppNameUtil.getAppName()); message.put("port", String.valueOf(TransportConfig.getPort())); }