diff options
| author | wangkuan <[email protected]> | 2023-12-15 17:25:41 +0800 |
|---|---|---|
| committer | wangkuan <[email protected]> | 2023-12-15 17:25:41 +0800 |
| commit | 4b217002be4f111974bdf1fe1eb7bf590b4fd8c8 (patch) | |
| tree | 0a2e7f345aa5083d76259b4591ca6b5fcd8678da | |
| parent | da3834cbd249711603ba4aa0ecb619f8e8265aa0 (diff) | |
[improve][core]定位库相关工具类优化,暂时将fileurl配置写死,5分钟更新一次定位库
10 files changed, 131 insertions, 140 deletions
diff --git a/groot-core/src/main/java/com/geedgenetworks/core/pojo/KnowLedgeFileEntity.java b/groot-core/src/main/java/com/geedgenetworks/core/pojo/KnowLedgeFileEntity.java index fbd54f7..f37c8c5 100644 --- a/groot-core/src/main/java/com/geedgenetworks/core/pojo/KnowLedgeFileEntity.java +++ b/groot-core/src/main/java/com/geedgenetworks/core/pojo/KnowLedgeFileEntity.java @@ -1,8 +1,6 @@ package com.geedgenetworks.core.pojo; -import java.io.InputStream; - -public class KnowLedgeEntity { +public class KnowLedgeFileEntity { private String id; private String name; diff --git a/groot-core/src/main/java/com/geedgenetworks/core/pojo/KnowledgeBaseEntity.java b/groot-core/src/main/java/com/geedgenetworks/core/pojo/KnowledgeBaseEntity.java index 523157c..f268689 100644 --- a/groot-core/src/main/java/com/geedgenetworks/core/pojo/KnowledgeBaseEntity.java +++ b/groot-core/src/main/java/com/geedgenetworks/core/pojo/KnowledgeBaseEntity.java @@ -8,8 +8,8 @@ import java.util.List; @Data public class KnowledgeBaseEntity { - private List<KnowLedgeEntity> knowLedgeEntityList; private KnowledgeConfig knowledgeConfig; + private List<KnowLedgeFileEntity> knowLedgeFileEntityList; private AbstractKnowledgeBase abstractKnowledgeBase; diff --git a/groot-core/src/main/java/com/geedgenetworks/core/udf/AsnLookup.java b/groot-core/src/main/java/com/geedgenetworks/core/udf/AsnLookup.java index 10cab3b..5f6f1d7 100644 --- a/groot-core/src/main/java/com/geedgenetworks/core/udf/AsnLookup.java +++ b/groot-core/src/main/java/com/geedgenetworks/core/udf/AsnLookup.java @@ -13,6 +13,7 @@ import com.geedgenetworks.core.utils.KnowlegdeBase.AsnKnowledgeBase; import cn.hutool.log.Log; import cn.hutool.log.LogFactory; import com.geedgenetworks.core.utils.KnowlegdeBase.KnowledgeBaseUpdateJob; +import com.geedgenetworks.utils.IpLookupV2; import lombok.extern.slf4j.Slf4j; import org.apache.flink.api.common.functions.RuntimeContext; import org.apache.flink.configuration.Configuration; @@ -35,34 +36,39 @@ public class AsnLookup implements UDF { this.vender = udfContext.getParameters().get("vendor_id").toString(); this.option = udfContext.getParameters().get("option").toString(); KnowledgeBaseUpdateJob.initKnowledgeBase(vender,AsnKnowledgeBase.getInstance(), runtimeContext); + + if(AsnKnowledgeBase.getVenderWithAsnLookup()!=null && AsnKnowledgeBase.getVenderWithAsnLookup().containsKey(vender)){ + log.debug("Init AsnKnowledgeBase success "); + } + else { + throw new GrootStreamRuntimeException(CommonErrorCode.ILLEGAL_ARGUMENT, "Init AsnKnowledgeBase error "); + } } @Override public Event evaluate(Event event) { - - switch (option){ - case "IP_TO_ASN": - event.getExtractedFields() - .put( - udfContext.getOutput_fields().get(0), - AsnKnowledgeBase.getVenderWithAsnLookup() - .get(vender) - .asnLookup( - event.getExtractedFields() - .get( - udfContext - .getLookup_fields() - .get(0)) - .toString())); - break; - default: - break; + if(AsnKnowledgeBase.getVenderWithAsnLookup()!=null && AsnKnowledgeBase.getVenderWithAsnLookup().containsKey(vender)){ + + if(event.getExtractedFields().containsKey(udfContext.getLookup_fields().get(0))){ + switch (option) { + case "IP_TO_ASN": + String asn = AsnKnowledgeBase.getVenderWithAsnLookup() + .get(vender) + .asnLookup(event.getExtractedFields().get(udfContext.getLookup_fields().get(0)).toString()); + if(!asn.isEmpty()) { + event.getExtractedFields() + .put(udfContext.getOutput_fields().get(0), asn); + } + break; + default: + break; + } + } } return event; } - @Override public String functionName() { return "ASN_LOOKUP"; diff --git a/groot-core/src/main/java/com/geedgenetworks/core/udf/GeoIpLookup.java b/groot-core/src/main/java/com/geedgenetworks/core/udf/GeoIpLookup.java index fb1e366..d2e29f6 100644 --- a/groot-core/src/main/java/com/geedgenetworks/core/udf/GeoIpLookup.java +++ b/groot-core/src/main/java/com/geedgenetworks/core/udf/GeoIpLookup.java @@ -1,31 +1,22 @@ package com.geedgenetworks.core.udf; -import com.geedgenetworks.common.Constants; -import com.geedgenetworks.common.config.EngineConfig; -import com.geedgenetworks.common.config.KnowledgeConfig; import com.geedgenetworks.common.exception.CommonErrorCode; import com.geedgenetworks.common.exception.GrootStreamRuntimeException; import com.geedgenetworks.core.pojo.Event; import com.geedgenetworks.core.pojo.UDFContext; -import com.geedgenetworks.core.utils.KnowlegdeBase.IpKnowledgeBase; +import com.geedgenetworks.core.utils.KnowlegdeBase.GeoIpKnowledgeBase; import com.geedgenetworks.core.utils.KnowlegdeBase.KnowledgeBaseUpdateJob; import com.geedgenetworks.domain.LocationResponse; import com.geedgenetworks.utils.StringUtil; -import cn.hutool.log.Log; -import cn.hutool.log.LogFactory; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.TypeReference; import lombok.extern.slf4j.Slf4j; import org.apache.flink.api.common.functions.RuntimeContext; -import org.apache.flink.configuration.Configuration; -import org.quartz.SchedulerException; import java.util.HashMap; import java.util.Map; -import static com.geedgenetworks.core.utils.SchedulerUtils.shutdownScheduler; - @Slf4j public class GeoIpLookup implements UDF { @@ -44,8 +35,13 @@ public class GeoIpLookup implements UDF { if(option.equals("IP_TO_OBJECT")){ this.geolocation_field_mapping = (Map<String, String>) udfContext.getParameters().get("geolocation_field_mapping"); } - KnowledgeBaseUpdateJob.initKnowledgeBase(vender,IpKnowledgeBase.getInstance(),runtimeContext); - + KnowledgeBaseUpdateJob.initKnowledgeBase(vender, GeoIpKnowledgeBase.getInstance(),runtimeContext); + if(GeoIpKnowledgeBase.getVenderWithIpLookup()!=null && GeoIpKnowledgeBase.getVenderWithIpLookup().containsKey(vender)){ + log.debug("Init GeoIpLookup success "); + } + else { + throw new GrootStreamRuntimeException(CommonErrorCode.ILLEGAL_ARGUMENT, "Init GeoIpLookup error "); + } } @@ -59,7 +55,7 @@ public class GeoIpLookup implements UDF { event.getExtractedFields() .put( udfContext.getOutput_fields().get(0), - IpKnowledgeBase.getVenderWithIpLookup() + GeoIpKnowledgeBase.getVenderWithIpLookup() .get(vender) .countryLookup( event.getExtractedFields() @@ -73,7 +69,7 @@ public class GeoIpLookup implements UDF { event.getExtractedFields() .put( udfContext.getOutput_fields().get(0), - IpKnowledgeBase.getVenderWithIpLookup() + GeoIpKnowledgeBase.getVenderWithIpLookup() .get(vender) .provinceLookup( event.getExtractedFields() @@ -87,7 +83,7 @@ public class GeoIpLookup implements UDF { event.getExtractedFields() .put( udfContext.getOutput_fields().get(0), - IpKnowledgeBase.getVenderWithIpLookup() + GeoIpKnowledgeBase.getVenderWithIpLookup() .get(vender) .cityLookup( event.getExtractedFields() @@ -101,7 +97,7 @@ public class GeoIpLookup implements UDF { event.getExtractedFields() .put( udfContext.getOutput_fields().get(0), - IpKnowledgeBase.getVenderWithIpLookup() + GeoIpKnowledgeBase.getVenderWithIpLookup() .get(vender) .cityLookupDetail( event.getExtractedFields() @@ -115,7 +111,7 @@ public class GeoIpLookup implements UDF { event.getExtractedFields() .put( udfContext.getOutput_fields().get(0), - IpKnowledgeBase.getVenderWithIpLookup() + GeoIpKnowledgeBase.getVenderWithIpLookup() .get(vender) .locationLookupDetail( event.getExtractedFields() @@ -127,7 +123,7 @@ public class GeoIpLookup implements UDF { break; case "IP_TO_LATLNG": String geo = - IpKnowledgeBase.getVenderWithIpLookup() + GeoIpKnowledgeBase.getVenderWithIpLookup() .get(vender) .latLngLookup( event.getExtractedFields() @@ -144,7 +140,7 @@ public class GeoIpLookup implements UDF { case "IP_TO_PROVIDER": HashMap<String, Object> serverIpMap = JSON.parseObject( - IpKnowledgeBase.getVenderWithIpLookup() + GeoIpKnowledgeBase.getVenderWithIpLookup() .get(vender) .ispLookup( event.getExtractedFields() @@ -164,7 +160,7 @@ public class GeoIpLookup implements UDF { event.getExtractedFields() .put( udfContext.getOutput_fields().get(0), - IpKnowledgeBase.getVenderWithIpLookup() + GeoIpKnowledgeBase.getVenderWithIpLookup() .get(vender) .infoLookupToJSONString( event.getExtractedFields() @@ -176,7 +172,7 @@ public class GeoIpLookup implements UDF { break; case "IP_TO_OBJECT": - LocationResponse response = (LocationResponse) IpKnowledgeBase.getVenderWithIpLookup() + LocationResponse response = (LocationResponse) GeoIpKnowledgeBase.getVenderWithIpLookup() .get(vender) .infoLookup( event.getExtractedFields() @@ -222,7 +218,7 @@ public class GeoIpLookup implements UDF { event.getExtractedFields() .put( udfContext.getOutput_fields().get(0), - IpKnowledgeBase.getVenderWithIpLookup() + GeoIpKnowledgeBase.getVenderWithIpLookup() .get(vender) .infoLookup( event.getExtractedFields() diff --git a/groot-core/src/main/java/com/geedgenetworks/core/utils/KnowlegdeBase/AbstractKnowledgeBase.java b/groot-core/src/main/java/com/geedgenetworks/core/utils/KnowlegdeBase/AbstractKnowledgeBase.java index 2c0137e..cc312ea 100644 --- a/groot-core/src/main/java/com/geedgenetworks/core/utils/KnowlegdeBase/AbstractKnowledgeBase.java +++ b/groot-core/src/main/java/com/geedgenetworks/core/utils/KnowlegdeBase/AbstractKnowledgeBase.java @@ -1,9 +1,8 @@ package com.geedgenetworks.core.utils.KnowlegdeBase; -import com.alibaba.fastjson2.JSON; import com.geedgenetworks.common.config.KnowledgeConfig; -import com.geedgenetworks.common.utils.HttpClientUtils; -import com.geedgenetworks.core.pojo.KnowLedgeEntity; +import com.geedgenetworks.core.pojo.KnowLedgeFileEntity; +import com.geedgenetworks.core.utils.HttpClientPoolUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -43,8 +42,8 @@ public abstract class AbstractKnowledgeBase { if (isValid == 1) { try { long start = System.currentTimeMillis(); - HttpClientUtils httpClientUtils = new HttpClientUtils(); - inputStream = httpClientUtils.httpGetByte(fileUrl, 3000); + HttpClientPoolUtil httpClientPoolUtil = HttpClientPoolUtil.getInstance(); + inputStream = httpClientPoolUtil.httpGetByte(fileUrl); long end = System.currentTimeMillis(); logger.info( "download file " + fileUrl + " finished, speed " + (end - start) + " ms"); @@ -55,16 +54,16 @@ public abstract class AbstractKnowledgeBase { return inputStream; } - static KnowLedgeEntity getMetadata(String id) { + static KnowLedgeFileEntity getMetadata(String id) { try { // HttpClientUtils httpClientUtils = new HttpClientUtils(); // String metadate = httpClientUtils.httpGet(URI.create("/v1/knowledge_base/"+ id +"/meta")) ; //临时写死 - KnowLedgeEntity knowLedgeEntity1 = new KnowLedgeEntity(); - knowLedgeEntity1.setIsValid(1); - knowLedgeEntity1.setSha256("2a2defd9c96ea5434ac628d3dc4fc6790e30d84c218b02fe798dbc6772dbf76c"); - knowLedgeEntity1.setPath("http://192.168.44.12:9098/hos/knowledge_base_bucket/84ec56db-8f3b-440a-af79-15148d7cd3c8-YXNuX2J1aWx0aW4=.mmdb"); + KnowLedgeFileEntity knowLedgeFileEntity1 = new KnowLedgeFileEntity(); + knowLedgeFileEntity1.setIsValid(1); + knowLedgeFileEntity1.setSha256("2a2defd9c96ea5434ac628d3dc4fc6790e30d84c218b02fe798dbc6772dbf76c"); + knowLedgeFileEntity1.setPath("http://192.168.44.12:9098/hos/knowledge_base_bucket/757732ce-8214-4c34-aea2-aca6c51a7e82-YXNuX2J1aWx0aW4=.mmdb"); /* KnowLedgeEntity knowLedgeEntity2 = new KnowLedgeEntity(); @@ -77,7 +76,7 @@ public abstract class AbstractKnowledgeBase { knowLedgeEntity.setPath("http://192.168.44.12:9098/hos/knowledge_base_hos_bucket/1e8aabe7-2170-445c-9124-6051332ca7d6-YXNuX2J1aWx0aW4=.mmdb"); /* List<KnowLedgeEntity> knowLedgeEntityList = JSON.parseObject(metadate, new TypeReference<List<KnowLedgeEntity>>() {}); return knowLedgeEntityList.get(0);*/ - return knowLedgeEntity1; + return knowLedgeFileEntity1; } catch (Exception e) { logger.error("get file Metadata " + id + " error: " + e.getMessage()); } diff --git a/groot-core/src/main/java/com/geedgenetworks/core/utils/KnowlegdeBase/AsnKnowledgeBase.java b/groot-core/src/main/java/com/geedgenetworks/core/utils/KnowlegdeBase/AsnKnowledgeBase.java index 12b29ce..9bf0b9a 100644 --- a/groot-core/src/main/java/com/geedgenetworks/core/utils/KnowlegdeBase/AsnKnowledgeBase.java +++ b/groot-core/src/main/java/com/geedgenetworks/core/utils/KnowlegdeBase/AsnKnowledgeBase.java @@ -3,7 +3,6 @@ package com.geedgenetworks.core.utils.KnowlegdeBase; import com.geedgenetworks.common.config.KnowledgeConfig; -import com.geedgenetworks.core.pojo.KnowLedgeEntity; import com.geedgenetworks.utils.IpLookupV2; import lombok.Getter; import org.slf4j.Logger; @@ -36,7 +35,7 @@ public class AsnKnowledgeBase extends AbstractKnowledgeBase { IpLookupV2.Builder asnLookupBuilder = new IpLookupV2.Builder(false); - for (int i = 0; i < knowledgeConfig.getFiles().size(); i++) { + /* for (int i = 0; i < knowledgeConfig.getFiles().size(); i++) { try { KnowLedgeEntity knowLedgeEntity = getMetadata(knowledgeConfig.getFiles().get(i)); byte[] fileByte = downloadFile(knowLedgeEntity.getPath(), knowLedgeEntity.getIsValid()); @@ -57,6 +56,23 @@ public class AsnKnowledgeBase extends AbstractKnowledgeBase { logger.error("updateKnowledgeBase error " + e.getMessage()); return false; } + }*/ + //临时写死等网关接口 + for (int i = 0; i < knowledgeConfig.getFiles().size(); i++) { + try { + byte[] fileByte = downloadFile(knowledgeConfig.getFiles().get(i), 1); + switch (i) { + case 0: + asnLookupBuilder.loadAsnDataFile(new ByteArrayInputStream(fileByte)); + break; + case 1: + asnLookupBuilder.loadDataFilePrivate(new ByteArrayInputStream(fileByte)); + break; + } + } catch (Exception e) { + logger.error("updateKnowledgeBase error " + e.getMessage()); + return false; + } } IpLookupV2 ipLookup = asnLookupBuilder.build(); venderWithAsnLookup.put(knowledgeConfig.getName(), ipLookup); diff --git a/groot-core/src/main/java/com/geedgenetworks/core/utils/KnowlegdeBase/GeoIpKnowledgeBase.java b/groot-core/src/main/java/com/geedgenetworks/core/utils/KnowlegdeBase/GeoIpKnowledgeBase.java index 3fa1db3..b2a1077 100644 --- a/groot-core/src/main/java/com/geedgenetworks/core/utils/KnowlegdeBase/GeoIpKnowledgeBase.java +++ b/groot-core/src/main/java/com/geedgenetworks/core/utils/KnowlegdeBase/GeoIpKnowledgeBase.java @@ -12,16 +12,16 @@ import java.io.ByteArrayInputStream; import java.util.*; -public class IpKnowledgeBase extends AbstractKnowledgeBase { +public class GeoIpKnowledgeBase extends AbstractKnowledgeBase { @Getter private static Map<String, IpLookupV2> venderWithIpLookup = new HashMap<>(); - private static final Logger logger = LoggerFactory.getLogger(IpKnowledgeBase.class); - private static IpKnowledgeBase instance; + private static final Logger logger = LoggerFactory.getLogger(GeoIpKnowledgeBase.class); + private static GeoIpKnowledgeBase instance; - public static synchronized IpKnowledgeBase getInstance() { + public static synchronized GeoIpKnowledgeBase getInstance() { if (instance == null) { - instance = new IpKnowledgeBase(); + instance = new GeoIpKnowledgeBase(); } return instance; } diff --git a/groot-core/src/main/java/com/geedgenetworks/core/utils/KnowlegdeBase/KnowledgeBaseUpdateJob.java b/groot-core/src/main/java/com/geedgenetworks/core/utils/KnowlegdeBase/KnowledgeBaseUpdateJob.java index a8c1ce6..b879e67 100644 --- a/groot-core/src/main/java/com/geedgenetworks/core/utils/KnowlegdeBase/KnowledgeBaseUpdateJob.java +++ b/groot-core/src/main/java/com/geedgenetworks/core/utils/KnowlegdeBase/KnowledgeBaseUpdateJob.java @@ -3,25 +3,20 @@ package com.geedgenetworks.core.utils.KnowlegdeBase; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.TypeReference; import com.geedgenetworks.common.Constants; -import com.geedgenetworks.common.config.CommonConfig; import com.geedgenetworks.common.config.EngineConfig; import com.geedgenetworks.common.config.KnowledgeConfig; -import com.geedgenetworks.common.utils.HttpClientUtils; -import com.geedgenetworks.core.pojo.KnowLedgeEntity; +import com.geedgenetworks.core.pojo.KnowLedgeFileEntity; import com.geedgenetworks.core.pojo.KnowledgeBaseEntity; +import com.geedgenetworks.core.utils.HttpClientPoolUtil; import lombok.Getter; import org.apache.flink.api.common.functions.RuntimeContext; import org.apache.flink.configuration.Configuration; import org.quartz.Job; import org.quartz.JobExecutionContext; -import org.quartz.JobExecutionException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.lang.reflect.Constructor; -import java.lang.reflect.Method; import java.net.URI; -import java.security.NoSuchAlgorithmException; import java.util.*; import java.util.concurrent.ConcurrentHashMap; @@ -32,12 +27,6 @@ import static com.geedgenetworks.core.utils.KnowlegdeBase.KnowledgeBaseScheduler public class KnowledgeBaseUpdateJob implements Job { -/* - public static Map<String, KnowledgeConfig> knowledgeConfigMap = new ConcurrentHashMap<>(); - public static Map<String, List<KnowLedgeEntity>> KnowLedgeEntityMap = new ConcurrentHashMap<>(); - -*/ - @Getter private static Map<String, KnowledgeBaseEntity> KnowLedgeBaseEntityMap= new ConcurrentHashMap<>() ; private static final Logger logger = LoggerFactory.getLogger(KnowledgeBaseUpdateJob.class); @@ -49,7 +38,6 @@ public class KnowledgeBaseUpdateJob implements Job { public static synchronized KnowledgeBaseUpdateJob getInstance(RuntimeContext runtimeContext) { if (instance == null) { instance = new KnowledgeBaseUpdateJob(); - // knowledgeBaseClassReflect =CommonConfig.KNOWLEDGE_BASE_CLASS_REFLECT; Configuration configuration = (Configuration) runtimeContext .getExecutionConfig().getGlobalJobParameters(); engineConfig = com.alibaba.fastjson.JSON.parseObject(configuration.toMap().get(Constants.SYSPROP_GROOTSTREAM_CONFIG), EngineConfig.class); @@ -58,19 +46,10 @@ public class KnowledgeBaseUpdateJob implements Job { return instance; } - public static void updateKnowledgeBase(String name) { + public static void updateKnowledgeBase(KnowledgeBaseEntity knowledgeBaseEntity) { try { - // 获取私有构造方法 -/* Class<?> cls = Class.forName(knowledgeBaseClassReflect.get(knowledgeConfigMap.get(name).getType())); - Constructor<?> constructor = cls.getDeclaredConstructor(); - constructor.setAccessible(true); - Method createInstanceMethod = cls.getMethod("getInstance"); - AbstractKnowledgeBase instance = (AbstractKnowledgeBase) createInstanceMethod.invoke(null); - // 使用实例调用方法 - instance.updateKnowledgeBase(knowledgeConfigMap.get(name));*/ - - + knowledgeBaseEntity.getAbstractKnowledgeBase().updateKnowledgeBase(knowledgeBaseEntity.getKnowledgeConfig()); } catch (Exception e) { logger.error(e.getMessage()); } @@ -85,10 +64,10 @@ public class KnowledgeBaseUpdateJob implements Job { } if (!KnowLedgeBaseEntityMap.containsKey(name)) { - List<KnowLedgeEntity> knowLedgeEntityList = new ArrayList<>(); + List<KnowLedgeFileEntity> knowLedgeFileEntityList = new ArrayList<>(); KnowledgeBaseEntity knowledgeBaseEntity = new KnowledgeBaseEntity(); knowledgeBaseEntity.setAbstractKnowledgeBase(abstractKnowledgeBase); - knowledgeBaseEntity.setKnowLedgeEntityList(knowLedgeEntityList); + knowledgeBaseEntity.setKnowLedgeFileEntityList(knowLedgeFileEntityList); try { for(KnowledgeConfig knowledgeConfig : engineConfig.getKnowledgeBaseConfig()){ @@ -100,10 +79,10 @@ public class KnowledgeBaseUpdateJob implements Job { KnowLedgeBaseEntityMap.put(name, knowledgeBaseEntity); for (String id : knowledgeBaseEntity.getKnowledgeConfig().getFiles()) { // KnowLedgeEntity knowLedgeEntity = getMetadata(id); - KnowLedgeEntity knowLedgeEntity1 = new KnowLedgeEntity(); - knowLedgeEntity1.setIsValid(1); - knowLedgeEntity1.setSha256("2a2defd9c96ea5434ac628d3dc4fc6790e30d84c218b02fe798dbc6772dbf76c"); - knowLedgeEntity1.setPath("http://192.168.44.12:9098/hos/knowledge_base_bucket/84ec56db-8f3b-440a-af79-15148d7cd3c8-YXNuX2J1aWx0aW4=.mmdb"); + KnowLedgeFileEntity knowLedgeFileEntity1 = new KnowLedgeFileEntity(); + knowLedgeFileEntity1.setIsValid(1); + knowLedgeFileEntity1.setSha256("2a2defd9c96ea5434ac628d3dc4fc6790e30d84c218b02fe798dbc6772dbf76c"); + knowLedgeFileEntity1.setPath(id); /* KnowLedgeEntity knowLedgeEntity2 = new KnowLedgeEntity(); @@ -112,11 +91,11 @@ public class KnowledgeBaseUpdateJob implements Job { knowLedgeEntity2.setPath("http://192.168.44.12:9098/hos/knowledge_base_bucket/63220f3e-7792-43a8-9921-d01da16b76b2-aXBfYnVpbHRpbg==.mmdb"); */ - knowLedgeEntityList.add(knowLedgeEntity1); + knowLedgeFileEntityList.add(knowLedgeFileEntity1); } - updateKnowledgeBase(name); + updateKnowledgeBase(knowledgeBaseEntity); } catch (Exception e) { logger.error("initKnowledgeBase " + e.getMessage()); } @@ -124,13 +103,13 @@ public class KnowledgeBaseUpdateJob implements Job { } - private static KnowLedgeEntity getMetadata(String id) { + private static KnowLedgeFileEntity getMetadata(String id) { try{ - HttpClientUtils httpClientUtils = new HttpClientUtils(); - String metadate = httpClientUtils.httpGet(URI.create("/v1/knowledge_base/"+ id +"/meta")) ; - List<KnowLedgeEntity> knowLedgeEntityList = JSON.parseObject(metadate, new TypeReference<List<KnowLedgeEntity>>() {}); - return knowLedgeEntityList.get(0); + HttpClientPoolUtil httpClientPoolUtil = HttpClientPoolUtil.getInstance(); + String metadate = httpClientPoolUtil.httpGet(URI.create("/v1/knowledge_base/"+ id +"/meta")) ; + List<KnowLedgeFileEntity> knowLedgeFileEntityList = JSON.parseObject(metadate, new TypeReference<List<KnowLedgeFileEntity>>() {}); + return knowLedgeFileEntityList.get(0); /* KnowLedgeEntity knowLedgeEntity = new KnowLedgeEntity(); knowLedgeEntity.setIsValid(1); @@ -145,29 +124,24 @@ public class KnowledgeBaseUpdateJob implements Job { } - public static synchronized Boolean checkUpdateMesssage (String name) { + public static synchronized Boolean checkUpdateMesssage (KnowledgeBaseEntity knowledgeBaseEntity) { - /* Boolean changeFlag = false; - if(!KnowLedgeEntityMap.get(name).isEmpty()) { + /* if(knowledgeBaseEntity.getKnowLedgeEntityList()!=null) { + for (KnowLedgeEntity knowLedgeEntity : knowledgeBaseEntity.getKnowLedgeEntityList()) { - for (KnowLedgeEntity knowLedgeEntity : KnowLedgeEntityMap.get(name)) { - - KnowLedgeEntity metadata =getMetadata(knowLedgeEntity.getId()); - if(metadata!=null) { + KnowLedgeEntity metadata = getMetadata(knowLedgeEntity.getId()); + if (metadata != null) { if (!knowLedgeEntity.getSha256().equals(metadata.getSha256())) { return true; } - } - else { - logger.error("get file Metadata " + knowLedgeEntity.getId() + " error " ); + } else { + logger.error("get file Metadata " + knowLedgeEntity.getId() + " error "); } } } - else { - changeFlag = true; - }*/ - return true; + return false;*/ + return true; } public static void destroyKnowledgeBase() { @@ -175,21 +149,23 @@ public class KnowledgeBaseUpdateJob implements Job { } @Override - public void execute(JobExecutionContext jobExecutionContext) { - for (Map.Entry<String, KnowledgeBaseEntity> entry : KnowLedgeBaseEntityMap.entrySet()) { - Boolean flag = null; - try { - flag = checkUpdateMesssage(entry.getKey()); - if(flag){ - updateKnowledgeBase(entry.getKey()); + public void execute(JobExecutionContext jobExecutionContext) { + + if (!KnowLedgeBaseEntityMap.isEmpty()) { + for (Map.Entry<String, KnowledgeBaseEntity> entry : KnowLedgeBaseEntityMap.entrySet()) { + Boolean flag = null; + try { + flag = checkUpdateMesssage(entry.getValue()); + if (flag) { + updateKnowledgeBase(entry.getValue()); + } + } catch (Exception e) { + logger.error(e.getMessage()); } - } catch (Exception e) { - logger.error(e.getMessage()); } } } - } diff --git a/groot-core/src/test/java/com/geedgenetworks/core/udf/test/AsnLookupFunctionTest.java b/groot-core/src/test/java/com/geedgenetworks/core/udf/test/AsnLookupFunctionTest.java index a4b00c1..ef820e4 100644 --- a/groot-core/src/test/java/com/geedgenetworks/core/udf/test/AsnLookupFunctionTest.java +++ b/groot-core/src/test/java/com/geedgenetworks/core/udf/test/AsnLookupFunctionTest.java @@ -66,7 +66,7 @@ public class AsnLookupFunctionTest { udfContext.setParameters(new HashMap<>()); udfContext.getParameters().put("option","IP_TO_ASN"); udfContext.getParameters().put("vendor_id","tsg_asnlookup"); - KnowledgeConfig knowledgeConfig = new KnowledgeConfig(); + /* KnowledgeConfig knowledgeConfig = new KnowledgeConfig(); knowledgeConfig.setName("tsg_asnlookup"); knowledgeConfig.setType("asnlookup"); knowledgeConfig.setFiles(Arrays.asList("7ce2f9890950ba90-fcc25696bf11a8a0","7ce2f9890950ba90-71f13b3736863ddb")); @@ -76,7 +76,7 @@ public class AsnLookupFunctionTest { .get("tsg_asnlookup") .asnLookup("2600:1015:b002::"); - // assertEquals("6167", asn); + assertEquals("6167", asn);*/ } diff --git a/groot-core/src/test/java/com/geedgenetworks/core/udf/test/GeoIpLookupFunctionTest.java b/groot-core/src/test/java/com/geedgenetworks/core/udf/test/GeoIpLookupFunctionTest.java index a2afad9..d65c431 100644 --- a/groot-core/src/test/java/com/geedgenetworks/core/udf/test/GeoIpLookupFunctionTest.java +++ b/groot-core/src/test/java/com/geedgenetworks/core/udf/test/GeoIpLookupFunctionTest.java @@ -4,7 +4,7 @@ import com.geedgenetworks.common.config.KnowledgeConfig; import com.geedgenetworks.common.exception.GrootStreamRuntimeException; import com.geedgenetworks.core.pojo.UDFContext; import com.geedgenetworks.core.udf.GeoIpLookup; -import com.geedgenetworks.core.utils.KnowlegdeBase.IpKnowledgeBase; +import com.geedgenetworks.core.utils.KnowlegdeBase.GeoIpKnowledgeBase; import com.geedgenetworks.domain.LocationResponse; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; @@ -73,17 +73,17 @@ public class GeoIpLookupFunctionTest { knowledgeConfig.setName("tsg_geoiplookup"); knowledgeConfig.setType("geoiplookup"); knowledgeConfig.setFiles(Arrays.asList("acf1db8589c5e277-ead1a65e1c3973dc","acf1db8589c5e277-ead1a65e1c3973dc")); - IpKnowledgeBase ipKnowledgeBase = IpKnowledgeBase.getInstance(); - ipKnowledgeBase.updateKnowledgeBase(knowledgeConfig); - String countryLookup = IpKnowledgeBase.getVenderWithIpLookup().get("tsg_geoiplookup").countryLookup("2600:1015:b002::"); - String provinceLookup = IpKnowledgeBase.getVenderWithIpLookup().get("tsg_geoiplookup").provinceLookup("2600:1015:b002::"); - String cityLookup = IpKnowledgeBase.getVenderWithIpLookup().get("tsg_geoiplookup").cityLookup("2600:1015:b002::"); - String cityLookupDetail = IpKnowledgeBase.getVenderWithIpLookup().get("tsg_geoiplookup").cityLookupDetail("2600:1015:b002::"); - String locationLookupDetail = IpKnowledgeBase.getVenderWithIpLookup().get("tsg_geoiplookup").locationLookupDetail("2600:1015:b002::"); - String latLngLookup = IpKnowledgeBase.getVenderWithIpLookup().get("tsg_geoiplookup").latLngLookup("2600:1015:b002::"); - String ispLookup = IpKnowledgeBase.getVenderWithIpLookup().get("tsg_geoiplookup").ispLookup("2600:1015:b002::"); - String infoLookupToJSONString = IpKnowledgeBase.getVenderWithIpLookup().get("tsg_geoiplookup").infoLookupToJSONString("2600:1015:b002::"); - LocationResponse infoLookup = (LocationResponse) IpKnowledgeBase.getVenderWithIpLookup().get("tsg_geoiplookup").infoLookup("2600:1015:b002::"); + GeoIpKnowledgeBase geoIpKnowledgeBase = GeoIpKnowledgeBase.getInstance(); + geoIpKnowledgeBase.updateKnowledgeBase(knowledgeConfig); + String countryLookup = GeoIpKnowledgeBase.getVenderWithIpLookup().get("tsg_geoiplookup").countryLookup("2600:1015:b002::"); + String provinceLookup = GeoIpKnowledgeBase.getVenderWithIpLookup().get("tsg_geoiplookup").provinceLookup("2600:1015:b002::"); + String cityLookup = GeoIpKnowledgeBase.getVenderWithIpLookup().get("tsg_geoiplookup").cityLookup("2600:1015:b002::"); + String cityLookupDetail = GeoIpKnowledgeBase.getVenderWithIpLookup().get("tsg_geoiplookup").cityLookupDetail("2600:1015:b002::"); + String locationLookupDetail = GeoIpKnowledgeBase.getVenderWithIpLookup().get("tsg_geoiplookup").locationLookupDetail("2600:1015:b002::"); + String latLngLookup = GeoIpKnowledgeBase.getVenderWithIpLookup().get("tsg_geoiplookup").latLngLookup("2600:1015:b002::"); + String ispLookup = GeoIpKnowledgeBase.getVenderWithIpLookup().get("tsg_geoiplookup").ispLookup("2600:1015:b002::"); + String infoLookupToJSONString = GeoIpKnowledgeBase.getVenderWithIpLookup().get("tsg_geoiplookup").infoLookupToJSONString("2600:1015:b002::"); + LocationResponse infoLookup = (LocationResponse) GeoIpKnowledgeBase.getVenderWithIpLookup().get("tsg_geoiplookup").infoLookup("2600:1015:b002::"); System.out.println("countryLookup:" + countryLookup); @@ -94,7 +94,7 @@ public class GeoIpLookupFunctionTest { System.out.println("latLngLookup:" + latLngLookup); System.out.println("ispLookup:" + ispLookup); System.out.println("infoLookupToJSONString:" + infoLookupToJSONString); - System.out.println("infoLookup:" + IpKnowledgeBase.getVenderWithIpLookup().get("tsg_geoiplookup").infoLookup("2600:1015:b002::")); + System.out.println("infoLookup:" + GeoIpKnowledgeBase.getVenderWithIpLookup().get("tsg_geoiplookup").infoLookup("2600:1015:b002::")); System.out.println(infoLookup+"----------------------------"); |
