summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgujinkai <[email protected]>2023-11-22 17:45:40 +0800
committergujinkai <[email protected]>2023-11-22 17:45:40 +0800
commitfab8d4354db127a3b6c9cbe1cd105c153fba6b7e (patch)
treefc158d5d572214a0fc823e3793e8b2fcae4df732
parent70ccd954bff5d87e9f1ee5e8f8993b60b693519e (diff)
perf: optimize l7 protocol extraction logic
-rw-r--r--platform-etl/src/main/java/com/zdjizhi/etl/utils/CompletedUtils.java20
1 files changed, 9 insertions, 11 deletions
diff --git a/platform-etl/src/main/java/com/zdjizhi/etl/utils/CompletedUtils.java b/platform-etl/src/main/java/com/zdjizhi/etl/utils/CompletedUtils.java
index 3df7e18..88335ff 100644
--- a/platform-etl/src/main/java/com/zdjizhi/etl/utils/CompletedUtils.java
+++ b/platform-etl/src/main/java/com/zdjizhi/etl/utils/CompletedUtils.java
@@ -4,11 +4,11 @@ import com.zdjizhi.base.common.CnRecordLog;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.ArrayList;
import java.util.Arrays;
-import java.util.List;
+import java.util.HashMap;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.function.Function;
import java.util.stream.Collectors;
/**
@@ -23,11 +23,11 @@ public class CompletedUtils {
private final static AtomicBoolean IS_INIT = new AtomicBoolean(false);
private final static CountDownLatch ASYNC_WAIT = new CountDownLatch(1);
- private static List<String> l7ProtocolList = new ArrayList<>();
+ private static HashMap<String, String> l7ProtocolMap = new HashMap<>();
public static void init(String l7Protocols) throws InterruptedException {
if (IS_INIT.compareAndSet(false, true)) {
- l7ProtocolList = Arrays.stream(l7Protocols.split(",")).collect(Collectors.toList());
+ l7ProtocolMap = Arrays.stream(l7Protocols.split(",")).collect(Collectors.toMap(String::toLowerCase, Function.identity(), (existing, replacement) -> existing, HashMap::new));
ASYNC_WAIT.countDown();
}
ASYNC_WAIT.await();
@@ -39,19 +39,17 @@ public class CompletedUtils {
String l7Protocol = "UNCATEGORIZED";
String app = "";
if (appFullPath != null) {
+ appFullPath = appFullPath.toLowerCase();
String[] split = appFullPath.split("\\.");
int i = 0;
boolean protocolend = false;
while (i < split.length) {
String s = split[i];
boolean isProtocol = false;
- for (String protocol : l7ProtocolList) {
- if (protocol.equalsIgnoreCase(s)) {
- if (!protocolend) {
- l7Protocol = protocol;
- }
- isProtocol = true;
- break;
+ if (l7ProtocolMap.containsKey(s)) {
+ isProtocol = true;
+ if (!protocolend) {
+ l7Protocol = l7ProtocolMap.get(s);
}
}
if (!isProtocol) {