From 5b9b7abeb718977abcffb07f37f76c5671c9a689 Mon Sep 17 00:00:00 2001 From: ascrutae Date: Sun, 4 Dec 2016 16:16:07 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=83=A8=E5=88=86=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/a/eye/skywalking/network/Client.java | 4 +-- skywalking-network/src/main/proto/Spans.proto | 4 +-- .../java/com/a/eye/skywalking/model/Span.java | 6 ++-- .../eye/skywalking/util/ContextGenerator.java | 10 +++---- .../skywalking/util/RoutingKeyGenerator.java | 20 +++++++++++++ .../a/eye/skywalking/util/TokenGenerator.java | 28 ------------------- .../client/StorageClientCachePool.java | 2 +- .../RouteSendRequestSpanEventHandler.java | 6 ++-- 8 files changed, 36 insertions(+), 44 deletions(-) create mode 100644 skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/util/RoutingKeyGenerator.java delete mode 100644 skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/util/TokenGenerator.java diff --git a/skywalking-network/src/main/java/com/a/eye/skywalking/network/Client.java b/skywalking-network/src/main/java/com/a/eye/skywalking/network/Client.java index d58c67eeb..545e3f8ac 100644 --- a/skywalking-network/src/main/java/com/a/eye/skywalking/network/Client.java +++ b/skywalking-network/src/main/java/com/a/eye/skywalking/network/Client.java @@ -9,8 +9,8 @@ import io.grpc.ManagedChannelBuilder; public class Client { private ManagedChannel channel; - public Client(String ip, int address) { - channel = ManagedChannelBuilder.forAddress(ip, address).usePlaintext(true).build(); + public Client(String ip, int port) { + channel = ManagedChannelBuilder.forAddress(ip, port).usePlaintext(true).build(); } public SpanStorageClient newSpanStorageClient(StorageClientListener listener) { diff --git a/skywalking-network/src/main/proto/Spans.proto b/skywalking-network/src/main/proto/Spans.proto index 96d7a3202..e10480784 100644 --- a/skywalking-network/src/main/proto/Spans.proto +++ b/skywalking-network/src/main/proto/Spans.proto @@ -14,7 +14,7 @@ message AckSpan { string userId = 8; string applicationId = 9; - int64 routeKey = 10; + int32 routeKey = 10; } message RequestSpan { @@ -32,7 +32,7 @@ message RequestSpan { int32 processNo = 13; string address = 14; - int64 routeKey = 15; + int32 routeKey = 15; } message TraceId{ diff --git a/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/model/Span.java b/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/model/Span.java index cd97ac932..31de4ca47 100644 --- a/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/model/Span.java +++ b/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/model/Span.java @@ -67,7 +67,7 @@ public class Span { */ private String userId; private String viewPointId; - private long routeKey; + private int routeKey; public Span(TraceId traceId, String applicationId, String userId) { this.traceId = traceId; @@ -210,11 +210,11 @@ public class Span { return builder; } - public void setRouteKey(long routeKey) { + public void setRouteKey(int routeKey) { this.routeKey = routeKey; } - public long getRouteKey() { + public int getRouteKey() { return routeKey; } } diff --git a/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/util/ContextGenerator.java b/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/util/ContextGenerator.java index 9f4cf8512..7370f4fdc 100644 --- a/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/util/ContextGenerator.java +++ b/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/util/ContextGenerator.java @@ -1,8 +1,8 @@ package com.a.eye.skywalking.util; import com.a.eye.skywalking.conf.Config; -import com.a.eye.skywalking.model.ContextData; import com.a.eye.skywalking.context.CurrentThreadSpanStack; +import com.a.eye.skywalking.model.ContextData; import com.a.eye.skywalking.model.Identification; import com.a.eye.skywalking.model.Span; @@ -27,9 +27,9 @@ public final class ContextGenerator { */ public static Span generateSpanFromContextData(ContextData context, Identification id) { Span spanData = CurrentThreadSpanStack.peek(); - if (context != null && context.getTraceId() != null && spanData == null){ + if (context != null && context.getTraceId() != null && spanData == null) { spanData = new Span(context.getTraceId(), context.getParentLevel(), context.getLevelId(), Config.SkyWalking.APPLICATION_CODE, Config.SkyWalking.USER_ID); - }else{ + } else { spanData = getSpanFromThreadLocal(id); } @@ -41,11 +41,11 @@ public final class ContextGenerator { // 1.获取Context,从ThreadLocal栈中获取中 final Span parentSpan = CurrentThreadSpanStack.peek(); // 2 校验Context,Context是否存在 - long routeKey = 0; + int routeKey; if (parentSpan == null) { // 不存在,新创建一个Context span = new Span(TraceIdGenerator.generate(), Config.SkyWalking.APPLICATION_CODE, Config.SkyWalking.USER_ID); - routeKey = TokenGenerator.generate(id.getViewPoint()); + routeKey = RoutingKeyGenerator.generate(id.getViewPoint()); } else { // 根据ParentContextData的TraceId和RPCID diff --git a/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/util/RoutingKeyGenerator.java b/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/util/RoutingKeyGenerator.java new file mode 100644 index 000000000..bf4605345 --- /dev/null +++ b/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/util/RoutingKeyGenerator.java @@ -0,0 +1,20 @@ +package com.a.eye.skywalking.util; + +/** + * Created data xin on 2016/12/4. + */ +public class RoutingKeyGenerator { + + public static int generate(String originData) { + char[] value = originData.toCharArray(); + int h = 0; + if (h == 0 && value.length > 0) { + char val[] = value; + + for (int i = 0; i < value.length; i++) { + h = 31 * h + val[i]; + } + } + return h; + } +} diff --git a/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/util/TokenGenerator.java b/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/util/TokenGenerator.java deleted file mode 100644 index ec4397fc9..000000000 --- a/skywalking-sniffer/skywalking-api/src/main/java/com/a/eye/skywalking/util/TokenGenerator.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.a.eye.skywalking.util; - -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; - -/** - * Created data xin on 2016/12/4. - */ -public class TokenGenerator { - - public static long generate(String originData) { - long value = 0; - try { - MessageDigest messageDigest = MessageDigest.getInstance("MD5"); - messageDigest.update(originData.getBytes()); - byte[] data = messageDigest.digest(); - // - for (int i = 0; i < data.length; i++) { - value = (value << 8) + (data[i] & 0xff); - } - - } catch (NoSuchAlgorithmException e) { - e.printStackTrace(); - } - - return value; - } -} diff --git a/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/client/StorageClientCachePool.java b/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/client/StorageClientCachePool.java index 358e377d3..d50d14380 100644 --- a/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/client/StorageClientCachePool.java +++ b/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/client/StorageClientCachePool.java @@ -47,7 +47,7 @@ public class StorageClientCachePool { spanStorageClientPool.put(connectionURL, client.newSpanStorageClient(listener)); traceSearchClientPool.put(connectionURL, client.newTraceSearchClient()); } - return spanStorageClient; + return spanStorageClientPool.get(connectionURL); } finally { lock.unlock(); } diff --git a/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/disruptor/request/RouteSendRequestSpanEventHandler.java b/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/disruptor/request/RouteSendRequestSpanEventHandler.java index 9f238a418..464e6ebce 100644 --- a/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/disruptor/request/RouteSendRequestSpanEventHandler.java +++ b/skywalking-storage-center/skywalking-routing/src/main/java/com/a/eye/skywalking/routing/disruptor/request/RouteSendRequestSpanEventHandler.java @@ -37,9 +37,9 @@ public class RouteSendRequestSpanEventHandler extends AbstractRouteSpanEventHand if (stop) { try { - for (RequestSpan ackSpan : buffer) { - SpanDisruptor spanDisruptor = RoutingService.getRouter().lookup(ackSpan); - spanDisruptor.saveSpan(ackSpan); + for (RequestSpan requestSpan : buffer) { + SpanDisruptor spanDisruptor = RoutingService.getRouter().lookup(requestSpan); + spanDisruptor.saveSpan(requestSpan); } } finally { buffer.clear();