summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwangkuan <[email protected]>2023-12-15 17:25:41 +0800
committerwangkuan <[email protected]>2023-12-15 17:25:41 +0800
commit4b217002be4f111974bdf1fe1eb7bf590b4fd8c8 (patch)
tree0a2e7f345aa5083d76259b4591ca6b5fcd8678da
parentda3834cbd249711603ba4aa0ecb619f8e8265aa0 (diff)
[improve][core]定位库相关工具类优化,暂时将fileurl配置写死,5分钟更新一次定位库
-rw-r--r--groot-core/src/main/java/com/geedgenetworks/core/pojo/KnowLedgeFileEntity.java4
-rw-r--r--groot-core/src/main/java/com/geedgenetworks/core/pojo/KnowledgeBaseEntity.java2
-rw-r--r--groot-core/src/main/java/com/geedgenetworks/core/udf/AsnLookup.java44
-rw-r--r--groot-core/src/main/java/com/geedgenetworks/core/udf/GeoIpLookup.java40
-rw-r--r--groot-core/src/main/java/com/geedgenetworks/core/utils/KnowlegdeBase/AbstractKnowledgeBase.java21
-rw-r--r--groot-core/src/main/java/com/geedgenetworks/core/utils/KnowlegdeBase/AsnKnowledgeBase.java20
-rw-r--r--groot-core/src/main/java/com/geedgenetworks/core/utils/KnowlegdeBase/GeoIpKnowledgeBase.java10
-rw-r--r--groot-core/src/main/java/com/geedgenetworks/core/utils/KnowlegdeBase/KnowledgeBaseUpdateJob.java100
-rw-r--r--groot-core/src/test/java/com/geedgenetworks/core/udf/test/AsnLookupFunctionTest.java4
-rw-r--r--groot-core/src/test/java/com/geedgenetworks/core/udf/test/GeoIpLookupFunctionTest.java26
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+"----------------------------");