diff --git a/src/main/java/com/nis/util/File2Redis.java b/src/main/java/com/nis/util/File2Redis.java index d528ee4..4732bf5 100644 --- a/src/main/java/com/nis/util/File2Redis.java +++ b/src/main/java/com/nis/util/File2Redis.java @@ -13,14 +13,15 @@ import com.nis.restful.ServiceRuntimeException; import redis.clients.jedis.Transaction; public class File2Redis { + private static String fileProtocol = Configurations.getStringProperty("fileProtocol", "minio://"); public static String file2Redis(String url, Transaction transaction) { try { byte[] fileByte = downLoadFromUrl(url); String md5 = MD5Utils.getMd5ByIS(new ByteArrayInputStream(fileByte)); - String key = "redis://_FILE_" + md5; + String key = "__FILE_" + md5; transaction.set(key.getBytes(), fileByte); - return key; + return fileProtocol + key; } catch (Exception e) { throw new ServiceRuntimeException("保存文件到redis发生了异常:" + e.getMessage(), RestBusinessCode.SaveFileToRedisError.getValue()); @@ -46,5 +47,4 @@ public class File2Redis { return baosOutputStream.toByteArray(); } - } diff --git a/src/main/java/com/nis/web/service/restful/ConfigJedisServiceimpl.java b/src/main/java/com/nis/web/service/restful/ConfigJedisServiceimpl.java index be6fa1f..f64e4a2 100644 --- a/src/main/java/com/nis/web/service/restful/ConfigJedisServiceimpl.java +++ b/src/main/java/com/nis/web/service/restful/ConfigJedisServiceimpl.java @@ -90,34 +90,36 @@ public class ConfigJedisServiceimpl implements ConfigRedisService { } StringBuffer valBF = new StringBuffer(); String[] valSplit = maatXmlExpr.getValueExpression().split(";"); -// List urlList = new ArrayList(); + // List urlList = new ArrayList(); for (String valStr : valSplit) { if (!StringUtils.isEmpty(valStr) && valStr.trim().startsWith("[")) { valStr = valStr.trim().replace("[", "").replace("]", ""); -// if (service == 520) { -// if (valStr.equals("private_key_file") -// || valStr.equals("public_key_file")) { -// String fileUrl = map.get(valStr); -// urlList.add(fileUrl); -// } -// } -// if(valStr.equals("op_time")) { -// if (urlList.size() > 0) { -// for (String fileUrl : urlList) { -// String key = File2Redis.file2Redis(fileUrl, transaction); -// logger.info("向{}号redis数据库添加了一条文件配置,key是{}",redisDBIndex,key); -// valBF.append(key); -// valBF.append("\t"); -// } -// } -// } - - if(valStr.contains("redisFile_")) { - String key = File2Redis.file2Redis(map.get(valStr), transaction); - logger.info("向{}号redis数据库添加了一条文件配置,key是{}",redisDBIndex,key); + // if (service == 520) { + // if (valStr.equals("private_key_file") + // || valStr.equals("public_key_file")) { + // String fileUrl = map.get(valStr); + // urlList.add(fileUrl); + // } + // } + // if(valStr.equals("op_time")) { + // if (urlList.size() > 0) { + // for (String fileUrl : urlList) { + // String key = File2Redis.file2Redis(fileUrl, transaction); + // logger.info("向{}号redis数据库添加了一条文件配置,key是{}",redisDBIndex,key); + // valBF.append(key); + // valBF.append("\t"); + // } + // } + // } + + if (valStr.contains("redisFile_")) { + String key = File2Redis.file2Redis(map.get(valStr), + transaction); + logger.info("向{}号redis数据库添加了一条文件配置,key是{}", redisDBIndex, + key); valBF.append(key); - //valBF.append("\t"); - }else { + // valBF.append("\t"); + } else { valBF.append(map.get(valStr)); } } else if (valStr.equals(" ")) { @@ -188,7 +190,7 @@ public class ConfigJedisServiceimpl implements ConfigRedisService { } /** - * 下发配置时,需要记录编译,组,域等配置id的对应关系,以便于在取消配置时可以根据配置id查找对应的编译,分组,域的关系 + * 下发配置时,需要记录编译,组,域等配置id的对应关系,以便于在取消配置时可以根据配置id查找对应的编译,分组,域的关系 */ private void addMaatRelation(Map> configMap, Transaction transaction) { if (configMap != null && configMap.size() > 0) { @@ -287,6 +289,7 @@ public class ConfigJedisServiceimpl implements ConfigRedisService { * 单独找一个redis-db记录配置信息,方便实时统计程序获取所有配置的分类性质,标签等内容,(为什么实时统计不从配置库redisdb获取呢, * 因为配置有多分发的情况,会发送到不同的redisdb,每个redisdb的配置条数不一定相同,有的配置所有的redisdb都有,有的只在某一个redisdb中有,实时统计程序不好获取配置这些配置内容, * 最重要的是,前端机不需要这些属性,所以在配置库有可能不带分类性质,标签等属性,maat.xml如果配置了则有,没有配置则就没有这些属性.所以单独找一个reidsdb存放带分类性质,标签等属性的配置) + * * @param configMap */ private void addStatisticsReal(Map> configMap, Transaction transaction) { @@ -406,6 +409,7 @@ public class ConfigJedisServiceimpl implements ConfigRedisService { /** * 封装组id与域id对应关系并添加到对象中 + * * @param regionMapList * @param compileAndGroupRelations */ @@ -544,6 +548,7 @@ public class ConfigJedisServiceimpl implements ConfigRedisService { /** * 将编译,分组,域等配置拆开分别添加到redis中 + * * @param maatConfig * @param maatXmlConfig * @param maatVersion @@ -587,6 +592,7 @@ public class ConfigJedisServiceimpl implements ConfigRedisService { /** * 将整理好的数据添加到redis中,如果是分组复用时,则去临时库将对应的域找到复制过来,如果当前库存在则不复制了(在复制就重复了) + * * @param maatXmlConfig * @param map * @param type @@ -595,7 +601,8 @@ public class ConfigJedisServiceimpl implements ConfigRedisService { * @param redisTemplate * @param redisDBIndex * @param compileId - * @param isReuse 是否是分组复用 + * @param isReuse + * 是否是分组复用 */ private void setCommonConfig(MaatXmlConfig maatXmlConfig, Map map, int type, Double maatVersion, int service, Transaction transaction, Integer redisDBIndex, String compileId, boolean isReuse) { @@ -779,8 +786,8 @@ public class ConfigJedisServiceimpl implements ConfigRedisService { for (Integer service : serviceConfigMap.keySet()) { List compileIdList = serviceConfigMap.get(service); if (compileIdList != null && compileIdList.size() > 0) { + MaatXmlConfig maatXmlConfig = ReadMaatXmlUtil.getMaatConfigByService(service); for (Long id : compileIdList) { - MaatXmlConfig maatXmlConfig = ReadMaatXmlUtil.getMaatConfigByService(service); if (maatXmlConfig != null) { List expressionList = maatXmlConfig.getExpressionList(); String maatKey = null; @@ -1038,6 +1045,7 @@ public class ConfigJedisServiceimpl implements ConfigRedisService { /** * 获取关联关系中每个关系中的-前部分 + * * @param compileStrVal * @return */ @@ -1051,12 +1059,18 @@ public class ConfigJedisServiceimpl implements ConfigRedisService { /** * 删除maat类配置 - * @param id 配置id - * @param maatXmlConfig maat.xml中关于当前业务类型的key和value写法的对象 - * @param maatVersion 版本号 - * @param service 业务类型 - * @param redisTemplate - * @param maatRelation id对应关系对象 + * + * @param id + * 配置id + * @param maatXmlConfig + * maat.xml中关于当前业务类型的key和value写法的对象 + * @param maatVersion + * 版本号 + * @param service + * 业务类型 + * @param redisTemplate + * @param maatRelation + * id对应关系对象 */ private void removeConfig(Long id, MaatXmlConfig maatXmlConfig, Double maatVersion, int service, Transaction transaction, int redisDBIndex, int idRelaRedisDBIndex) { @@ -1133,6 +1147,7 @@ public class ConfigJedisServiceimpl implements ConfigRedisService { /** * 删除maat配置时,对redis进行相关操作,主要是重命名key和记录相关状态 + * * @param maatXmlConfig * @param idList * @param type @@ -1200,6 +1215,7 @@ public class ConfigJedisServiceimpl implements ConfigRedisService { /** * 删除域配置,重名key,记录相关信息MAAT_UPDATE_STATUS,MAAT_RULE_TIMER等 + * * @param maatXmlConfig * @param regionArr * @param maatVersion @@ -1236,8 +1252,7 @@ public class ConfigJedisServiceimpl implements ConfigRedisService { } /** - * 编译配置用于实时统计 - * 取消分类性质,标签等信息 + * 编译配置用于实时统计 取消分类性质,标签等信息 */ private boolean removeStatisticsReal(Map> map, Transaction transaction) { if (map != null && map.size() > 0) { @@ -1300,6 +1315,7 @@ public class ConfigJedisServiceimpl implements ConfigRedisService { /** * 删除配置成功后,需要更新编译,组,域等配置id的对应关系 + * * @param idMap */ private boolean removeMaatRelation(Map> map, Transaction transaction) { @@ -1592,7 +1608,8 @@ public class ConfigJedisServiceimpl implements ConfigRedisService { } /** - * 添加分组和域的关联关系 + * 添加分组和域的关联关系 + * * @param maatConfig * @param transaction * @param redisDBIndex @@ -1636,13 +1653,21 @@ public class ConfigJedisServiceimpl implements ConfigRedisService { /** * 保存域配置信息,供分组复用单独添加域和普通maat配置添加域 - * @param maatConfig 配置信息 - * @param maatXmlConfig 配置的表达式 - * @param maatVersion 版本号 - * @param service 业务类型 - * @param transaction redis连接 - * @param redisDBIndex redis编号 - * @param isReuseSaveRegion 是否是分组复用单独添加域配置 + * + * @param maatConfig + * 配置信息 + * @param maatXmlConfig + * 配置的表达式 + * @param maatVersion + * 版本号 + * @param service + * 业务类型 + * @param transaction + * redis连接 + * @param redisDBIndex + * redis编号 + * @param isReuseSaveRegion + * 是否是分组复用单独添加域配置 */ private Integer addRegion(MaatConfig maatConfig, MaatXmlConfig maatXmlConfig, Double maatVersion, int service, Transaction transaction, Integer redisDBIndex, boolean isReuseSaveRegion) { @@ -1716,6 +1741,7 @@ public class ConfigJedisServiceimpl implements ConfigRedisService { /** * 从临时库删除分组复用域配置,如果该域被引用了,则去对应的redisdb中删除,并将关联库中记录的信息删除 + * * @param groupId * @param regionList * @param transaction @@ -1845,6 +1871,7 @@ public class ConfigJedisServiceimpl implements ConfigRedisService { /** * 添加和删除时更新MAAT_*状态信息 + * * @param list * @param maatKey * @param transaction diff --git a/src/main/resources/commonSources/applicationConfig-parser.xml b/src/main/resources/commonSources/applicationConfig-parser.xml index cda88fe..25da4a6 100644 --- a/src/main/resources/commonSources/applicationConfig-parser.xml +++ b/src/main/resources/commonSources/applicationConfig-parser.xml @@ -146,7 +146,7 @@ - + diff --git a/src/main/resources/nis.properties b/src/main/resources/nis.properties index e1b2dc5..f24a8ea 100644 --- a/src/main/resources/nis.properties +++ b/src/main/resources/nis.properties @@ -204,4 +204,8 @@ mmSampleDstPath=/home/mesasoft/{tableType}/full/{fileName} ##定时将redis主从库的实时统计数据同步到redis集群中 syncRedisToClusterCron=0/10 * * * * ? #文件服务器是否使用Minio -isUseMinio=true \ No newline at end of file +isUseMinio=true + + +##存储到redis中的文件类型(拼接的前缀) +fileProtocol=redis://