diff options
| author | gujinkai <[email protected]> | 2023-11-22 17:45:40 +0800 |
|---|---|---|
| committer | gujinkai <[email protected]> | 2023-11-22 17:45:40 +0800 |
| commit | fab8d4354db127a3b6c9cbe1cd105c153fba6b7e (patch) | |
| tree | fc158d5d572214a0fc823e3793e8b2fcae4df732 | |
| parent | 70ccd954bff5d87e9f1ee5e8f8993b60b693519e (diff) | |
perf: optimize l7 protocol extraction logic
| -rw-r--r-- | platform-etl/src/main/java/com/zdjizhi/etl/utils/CompletedUtils.java | 20 |
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) { |
