From 8d71daf5377cafede53eafb7019a61dd567526ff Mon Sep 17 00:00:00 2001 From: wusheng Date: Fri, 29 Sep 2017 21:47:48 +0800 Subject: [PATCH 1/3] Improve the register flow. --- .../java/org/skywalking/apm/agent/core/conf/Config.java | 2 +- .../apm/agent/core/remote/AppAndServiceRegisterClient.java | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/conf/Config.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/conf/Config.java index 3857a5705..73b51ba62 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/conf/Config.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/conf/Config.java @@ -41,7 +41,7 @@ public class Config { /** * application and service registry check interval */ - public static long APP_AND_SERVICE_REGISTER_CHECK_INTERVAL = 10; + public static long APP_AND_SERVICE_REGISTER_CHECK_INTERVAL = 3; /** * discovery rest check interval */ diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/remote/AppAndServiceRegisterClient.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/remote/AppAndServiceRegisterClient.java index 0b18cc3d5..bced1a9eb 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/remote/AppAndServiceRegisterClient.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/remote/AppAndServiceRegisterClient.java @@ -87,7 +87,9 @@ public class AppAndServiceRegisterClient implements BootService, GRPCChannelList @Override public void run() { - if (CONNECTED.equals(status)) { + boolean shouldTry = true; + while (CONNECTED.equals(status) & shouldTry) { + shouldTry = false; try { if (RemoteDownstreamConfig.Agent.APPLICATION_ID == DictionaryUtil.nullValue()) { if (applicationRegisterServiceBlockingStub != null) { @@ -95,6 +97,7 @@ public class AppAndServiceRegisterClient implements BootService, GRPCChannelList Application.newBuilder().addApplicationCode(Config.Agent.APPLICATION_CODE).build()); if (applicationMapping.getApplicationCount() > 0) { RemoteDownstreamConfig.Agent.APPLICATION_ID = applicationMapping.getApplication(0).getValue(); + shouldTry = true; } } } else { @@ -119,6 +122,7 @@ public class AppAndServiceRegisterClient implements BootService, GRPCChannelList .setRegisterTime(System.currentTimeMillis()) .setOsinfo(OSUtil.buildOSInfo()) .build()); + needRegisterRecover = true; } else { if (lastSegmentTime - System.currentTimeMillis() > 60 * 1000) { instanceDiscoveryServiceBlockingStub.heartbeat(ApplicationInstanceHeartbeat.newBuilder() From 5f1c8afcf8454285050ed11def8f8cbb658c2d85 Mon Sep 17 00:00:00 2001 From: wusheng Date: Fri, 29 Sep 2017 21:49:21 +0800 Subject: [PATCH 2/3] Fix wrong register flag. --- .../apm/agent/core/remote/AppAndServiceRegisterClient.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/remote/AppAndServiceRegisterClient.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/remote/AppAndServiceRegisterClient.java index bced1a9eb..a3ef128aa 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/remote/AppAndServiceRegisterClient.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/remote/AppAndServiceRegisterClient.java @@ -122,7 +122,7 @@ public class AppAndServiceRegisterClient implements BootService, GRPCChannelList .setRegisterTime(System.currentTimeMillis()) .setOsinfo(OSUtil.buildOSInfo()) .build()); - needRegisterRecover = true; + needRegisterRecover = false; } else { if (lastSegmentTime - System.currentTimeMillis() > 60 * 1000) { instanceDiscoveryServiceBlockingStub.heartbeat(ApplicationInstanceHeartbeat.newBuilder() From 1f60db7ece3de153e5ef01ce006beca4d8443db0 Mon Sep 17 00:00:00 2001 From: wusheng Date: Sun, 8 Oct 2017 21:29:13 +0800 Subject: [PATCH 3/3] Make code easier for understanding. --- .../apm/agent/core/remote/AppAndServiceRegisterClient.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/remote/AppAndServiceRegisterClient.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/remote/AppAndServiceRegisterClient.java index a3ef128aa..0d654e7c6 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/remote/AppAndServiceRegisterClient.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/remote/AppAndServiceRegisterClient.java @@ -88,7 +88,7 @@ public class AppAndServiceRegisterClient implements BootService, GRPCChannelList @Override public void run() { boolean shouldTry = true; - while (CONNECTED.equals(status) & shouldTry) { + while (CONNECTED.equals(status) && shouldTry) { shouldTry = false; try { if (RemoteDownstreamConfig.Agent.APPLICATION_ID == DictionaryUtil.nullValue()) {