From bde8e37bec807fae581d166b1661e5e3bcbdf9c9 Mon Sep 17 00:00:00 2001 From: wangkuan Date: Thu, 16 Nov 2023 11:54:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=BC=93=E5=AD=98=E8=BF=87?= =?UTF-8?q?=E6=9C=9F=E6=9C=BA=E5=88=B6=E8=A7=A3=E5=86=B3=E9=97=AE=E9=A2=98?= =?UTF-8?q?TSG-17358?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- properties/service_flow_config.properties | 5 +- .../common/RadiusRelationshipConfig.java | 4 + .../utils/hbasepackage/HbaseSinkAccount.java | 102 +++++++----------- .../utils/hbasepackage/HbaseSinkFramedip.java | 100 +++++++---------- 4 files changed, 80 insertions(+), 131 deletions(-) diff --git a/properties/service_flow_config.properties b/properties/service_flow_config.properties index 9d0ab67..65358a7 100644 --- a/properties/service_flow_config.properties +++ b/properties/service_flow_config.properties @@ -26,4 +26,7 @@ tools.library=D:\\K18-Phase2\\tsgSpace\\dat\\tsg\\ #account-ip对应关系表 hbase.account.table.name=tsg_galaxy:relation_account_framedip -hbase.scan.limit=100000 \ No newline at end of file +hbase.scan.limit=100000 + +cache.expire.seconds=86400 +cache.max.size=10000000 \ No newline at end of file diff --git a/src/main/java/com/zdjizhi/common/RadiusRelationshipConfig.java b/src/main/java/com/zdjizhi/common/RadiusRelationshipConfig.java index 189a4ee..20ed362 100644 --- a/src/main/java/com/zdjizhi/common/RadiusRelationshipConfig.java +++ b/src/main/java/com/zdjizhi/common/RadiusRelationshipConfig.java @@ -61,6 +61,10 @@ public class RadiusRelationshipConfig { public static final int HBASE_SCAN_LIMIT = RadiusRelationshipConfigurations.getIntProperty(0, "hbase.scan.limit"); public static final int HBASE_RPC_TIMEOUT = RadiusRelationshipConfigurations.getIntProperty(0, "hbase.rpc.timeout"); + public static final int CACHE_EXPIRE_SECONDS = RadiusRelationshipConfigurations.getIntProperty(0, "cache.expire.seconds"); + public static final int CACHE_MAX_SIZE = RadiusRelationshipConfigurations.getIntProperty(0, "cache.max.size"); + + diff --git a/src/main/java/com/zdjizhi/utils/hbasepackage/HbaseSinkAccount.java b/src/main/java/com/zdjizhi/utils/hbasepackage/HbaseSinkAccount.java index 16b4e60..52109ef 100644 --- a/src/main/java/com/zdjizhi/utils/hbasepackage/HbaseSinkAccount.java +++ b/src/main/java/com/zdjizhi/utils/hbasepackage/HbaseSinkAccount.java @@ -1,5 +1,6 @@ package com.zdjizhi.utils.hbasepackage; +import com.google.common.cache.CacheBuilder; import com.zdjizhi.common.RadiusRelationshipConfig; import com.zdjizhi.pojo.Radius; import org.apache.flink.api.java.tuple.Tuple7; @@ -15,20 +16,22 @@ import org.apache.log4j.Logger; import java.io.IOException; import java.io.Serializable; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.TimeUnit; public class HbaseSinkAccount extends RichSinkFunction> implements Serializable, SinkFunction> { private Logger log; private String hbase_zookeeper_host; - public Map AccountWithIpMap = new ConcurrentHashMap<>(80000); + // public Map AccountWithIpMap = new ConcurrentHashMap<>(80000); + public com.google.common.cache.Cache AccountWithIpMap ; private Connection connection; private Admin admin; public HbaseSinkAccount(String hbase_zookeeper_host) { this.hbase_zookeeper_host = hbase_zookeeper_host; + AccountWithIpMap = CacheBuilder.newBuilder().expireAfterWrite(RadiusRelationshipConfig.CACHE_EXPIRE_SECONDS, TimeUnit.SECONDS).initialCapacity(100000).maximumSize(RadiusRelationshipConfig.CACHE_MAX_SIZE).build(); + } @Override @@ -98,8 +101,8 @@ public class HbaseSinkAccount extends RichSinkFunction> implements Serializable, SinkFunction> { private Logger log; private String hbase_zookeeper_host; - public Map IpWithAccountMap = new ConcurrentHashMap<>(80000); + public com.google.common.cache.Cache IpWithAccountMap ; private Connection connection; private Admin admin; public HbaseSinkFramedip(String hbase_zookeeper_host) { this.hbase_zookeeper_host = hbase_zookeeper_host; + IpWithAccountMap = CacheBuilder.newBuilder().expireAfterWrite(RadiusRelationshipConfig.CACHE_EXPIRE_SECONDS, TimeUnit.SECONDS).initialCapacity(100000).maximumSize(RadiusRelationshipConfig.CACHE_MAX_SIZE).build(); + } @Override @@ -99,8 +101,9 @@ public class HbaseSinkFramedip extends RichSinkFunction