diff --git a/cloud-auth/src/main/resources/bootstrap.yml b/cloud-auth/src/main/resources/bootstrap.yml
index 00e0e7e..6db3958 100644
--- a/cloud-auth/src/main/resources/bootstrap.yml
+++ b/cloud-auth/src/main/resources/bootstrap.yml
@@ -4,14 +4,10 @@ server:
# nacos线上地址
nacos:
- addr: 106.54.193.225:8848
+ addr: 47.116.173.119:8848
user-name: nacos
password: nacos
-
namespace: one-saas
-
- namespace: one
-
# Spring
spring:
application:
@@ -26,33 +22,26 @@ spring:
# 服务注册地址
server-addr: ${nacos.addr}
# nacos用户名
- username: ${nacos.user-name}
- # nacos密码
- password: ${nacos.password}
+# username: ${nacos.user-name}
+# # nacos密码
+# password: ${nacos.password}
# 命名空间
namespace: ${nacos.namespace}
config:
# 服务注册地址
server-addr: ${nacos.addr}
# nacos用户名
- username: ${nacos.user-name}
- # nacos密码
- password: ${nacos.password}
+# username: ${nacos.user-name}
+# # nacos密码
+# password: ${nacos.password}
# 命名空间
namespace: ${nacos.namespace}
# 配置文件格式
file-extension: yml
# 共享配置
shared-configs:
-
# 系统环境Config共享配置
- application-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
# 系统共享配置
- application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
- # 系统共享配置
- - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
- # 系统环境Config共享配置
- - application-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
-
-
diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-client/pom.xml b/cloud-common/cloud-common-cache/pom.xml
similarity index 74%
rename from cloud-modules/cloud-breakdown/cloud-breakdown-client/pom.xml
rename to cloud-common/cloud-common-cache/pom.xml
index 603eba0..12b64f4 100644
--- a/cloud-modules/cloud-breakdown/cloud-breakdown-client/pom.xml
+++ b/cloud-common/cloud-common-cache/pom.xml
@@ -5,23 +5,26 @@
4.0.0
com.muyu
- cloud-breakdown
+ cloud-common
3.6.3
- cloud-breakdown-client
-
+ cloud-common-cache
+
+ cloud-common-cache 缓存基准
+
17
17
UTF-8
-
+
+
com.muyu
- cloud-breakdown-common
- 3.6.3
+ cloud-common-redis
+
diff --git a/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/AtomicSequenceCache.java b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/AtomicSequenceCache.java
new file mode 100644
index 0000000..6215b75
--- /dev/null
+++ b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/AtomicSequenceCache.java
@@ -0,0 +1,37 @@
+package com.muyu.common.cache;
+
+import com.muyu.common.cache.decoration.DecorationKey;
+
+/**
+ * @author DongZl
+ * @description: 原子序列缓存基准
+ * @Date 2024-4-1 下午 08:07
+ */
+public interface AtomicSequenceCache extends DecorationKey {
+
+ /**
+ * 获取存储的值
+ * @param key 键
+ * @return 值
+ */
+ public Long get(K key);
+
+ /**
+ * 自增
+ */
+ public Long increment(K key);
+ /**
+ * 自减
+ */
+ public Long decrement(K key);
+
+ /**
+ * 增加数值
+ */
+ public Long increment(K key, Long number);
+
+ /**
+ * 减少数值
+ */
+ public Long decrement(K key, Long number);
+}
diff --git a/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/BasicCacheData.java b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/BasicCacheData.java
new file mode 100644
index 0000000..3ae5073
--- /dev/null
+++ b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/BasicCacheData.java
@@ -0,0 +1,11 @@
+package com.muyu.common.cache;
+
+/**
+ * 数据转换接口
+ * @param 数据键
+ * @param 数据值
+ */
+public interface BasicCacheData {
+
+ public V apply(K key);
+}
diff --git a/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/Cache.java b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/Cache.java
new file mode 100644
index 0000000..9d96206
--- /dev/null
+++ b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/Cache.java
@@ -0,0 +1,43 @@
+package com.muyu.common.cache;
+
+import com.muyu.common.cache.decoration.DecorationKey;
+
+/**
+ * @author DongZl
+ * @description: 缓存接口基类
+ * @Date 2024-3-26 下午 03:25
+ */
+public interface Cache extends DecorationKey {
+
+ /**
+ * 通过Key获取value值
+ * @param key 键
+ * @return 值
+ */
+ public V get(K key);
+
+ /**
+ * 缓存添加/修改
+ * @param key 键
+ * @param value 值
+ */
+ public void put(K key, V value);
+
+ /**
+ * 通过键删除
+ * @param key 键
+ */
+ public void remove(K key);
+
+ /**
+ * 刷新缓存时间
+ * @param key 键
+ */
+ public void refreshTime (K key);
+
+ /**
+ * 刷新缓存数据
+ * @param key 键
+ */
+ public void refreshData (K key);
+}
diff --git a/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/HashCache.java b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/HashCache.java
new file mode 100644
index 0000000..19549ba
--- /dev/null
+++ b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/HashCache.java
@@ -0,0 +1,104 @@
+package com.muyu.common.cache;
+
+import com.muyu.common.cache.decoration.DecorationKey;
+
+import java.util.List;
+import java.util.Map;
+import java.util.function.Function;
+
+/**
+ * @author DongZl
+ * @description: Hash缓存基准
+ * @Date 2024-3-29 下午 03:16
+ */
+public interface HashCache extends DecorationKey {
+
+
+ /**
+ * 编码
+ * @param hashKey ID
+ * @return 键
+ */
+ public String encodeHashKey(HK hashKey);
+
+ /**
+ * 解码
+ * @param redisHashKey 数据库键
+ * @return ID
+ */
+ public HK decodeHashKey(String redisHashKey);
+
+ /**
+ * 通过Key获取所有的map
+ * @param key 数据库键
+ * @return 所有集合Map
+ */
+ public Map get(K key);
+
+ /**
+ * 通过键和hashKey获取数据库hashValue
+ * @param key 键
+ * @param hashKey hash键
+ * @return hash值
+ */
+ public HV get(K key, HK hashKey);
+
+ /**
+ * 通过键和hashKey获取数据库hashValue
+ * @param key 键
+ * @param hashKeyList hash键集合
+ * @return hash值
+ */
+ public List get(K key, HK... hashKeyList);
+
+ /**
+ * 获取hash值集合
+ * @param key 键
+ * @return hash值集合
+ */
+ public List getToList(K key);
+
+ /**
+ * 存储数据
+ * @param key redis键
+ * @param map hashMap集合
+ */
+ public void put(K key, Map map);
+
+ /**
+ * 存储数据
+ * @param key redis键
+ * @param dataList 数据值
+ * @param hashKey hash键
+ */
+ public void put(K key, List dataList, Function hashKey);
+
+ /**
+ * 存储数据
+ * @param key redis键
+ * @param hashKey hash键
+ * @param hashValue hash值
+ */
+ public void put(K key, HK hashKey, HV hashValue);
+
+ /**
+ * 通过redis键删除
+ * @param key hash键
+ */
+ public void remove(K key);
+
+ /**
+ * 通过redis键和hash键删除
+ * @param key redis键
+ * @param hashKey hash键
+ */
+ public void remove(K key, HK hashKey);
+
+ /**
+ * 判断redis中hashKey是否存在
+ * @param key redis键
+ * @param hashKey hash键
+ */
+ public boolean hasKey(K key, HK hashKey);
+
+}
diff --git a/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/abs/AtomicSequenceCacheAbs.java b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/abs/AtomicSequenceCacheAbs.java
new file mode 100644
index 0000000..54358b7
--- /dev/null
+++ b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/abs/AtomicSequenceCacheAbs.java
@@ -0,0 +1,99 @@
+package com.muyu.common.cache.abs;
+
+import com.muyu.common.cache.AtomicSequenceCache;
+import com.muyu.common.redis.service.RedisService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * @author DongZl
+ * @description: 原子序列缓存抽象类
+ * @Date 2024-4-1 下午 08:33
+ */
+public abstract class AtomicSequenceCacheAbs implements AtomicSequenceCache {
+
+ @Autowired
+ private RedisService redisService;
+
+ /**
+ * 获取存储的值
+ * @param key 键
+ * @return 值
+ */
+ @Override
+ public Long get (K key) {
+ Long cacheValue = this.redisService.getCacheObject(encode(key));
+ if (cacheValue == null){
+ Long data = getData(key);
+ cacheValue = data == null ? 0L : data;
+ this.redisService.setCacheObject(encode(key), cacheValue);
+ }
+ return cacheValue;
+ }
+
+ /**
+ * 自增
+ * @param key
+ */
+ @Override
+ public Long increment (K key) {
+ return this.increment(key, 1L);
+ }
+
+ /**
+ * 自减
+ *
+ * @param key
+ */
+ @Override
+ public Long decrement (K key) {
+ return this.decrement(key, 1L);
+ }
+
+ /**
+ * 增加数值
+ *
+ * @param key
+ * @param number
+ */
+ @Override
+ public Long increment (K key, Long number) {
+ Long numberValue = redisService.getCacheObject(encode(key));
+ if (numberValue == null){
+ Long data = getData(key);
+ data = data == null ? 0L : data;
+ redisService.setCacheObject(encode(key), data);
+ }
+ return redisService.increment(encode(key), number);
+ }
+
+ /**
+ * 减少数值
+ *
+ * @param key
+ * @param number
+ */
+ @Override
+ public Long decrement (K key, Long number) {
+ Long numberValue = redisService.getCacheObject(encode(key));
+ if (numberValue == null){
+ Long data = getData(key);
+ data = data == null ? 0L : data;
+ redisService.setCacheObject(encode(key), data);
+ }
+ return redisService.decrement(encode(key), number);
+ }
+
+ /**
+ * 编码
+ *
+ * @param key ID
+ *
+ * @return 键
+ */
+ @Override
+ public String encode (K key) {
+ return keyPre() + key;
+ }
+
+ public abstract Long getData(K key);
+}
diff --git a/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/abs/CacheAbs.java b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/abs/CacheAbs.java
new file mode 100644
index 0000000..d2bf765
--- /dev/null
+++ b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/abs/CacheAbs.java
@@ -0,0 +1,96 @@
+package com.muyu.common.cache.abs;
+
+import com.muyu.common.cache.Cache;
+import com.muyu.common.redis.service.RedisService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.concurrent.TimeUnit;
+
+/**
+ * @author DongZl
+ * @description: 缓存抽象类
+ * @Date 2024-3-27 下午 03:10
+ */
+public abstract class CacheAbs implements Cache {
+
+ @Autowired
+ private RedisService redisService;
+
+ /**
+ * 编码
+ * @param key ID
+ * @return 键
+ */
+ @Override
+ public String encode (K key) {
+ return keyPre() + key;
+ }
+
+ /**
+ * 通过Key获取value值
+ * @param key 键
+ * @return 值
+ */
+ @Override
+ public V get (K key) {
+ V value = redisService.getCacheObject(encode(key));
+ if (value == null){
+ value = getData(key);
+ if (value == null){
+ value = defaultValue();
+ }
+ }
+ this.put(key, value);
+ return value;
+ }
+
+ /**
+ * 缓存添加/修改
+ * @param key 键
+ * @param value 值
+ */
+ @Override
+ public void put (K key, V value) {
+ this.redisService.setCacheObject(encode(key), value);
+ }
+
+ /**
+ * 通过键删除
+ * @param key 键
+ */
+ @Override
+ public void remove (K key) {
+ this.redisService.deleteObject(encode(key));
+ }
+
+ /**
+ * 刷新缓存
+ * @param key 键
+ */
+ @Override
+ public void refreshTime (K key) {
+ this.redisService.expire(encode(key), 60, TimeUnit.SECONDS);
+ }
+
+ /**
+ * 刷新缓存数据
+ *
+ * @param key 键
+ */
+ @Override
+ public void refreshData (K key) {
+ this.put(key, getData(key));
+ }
+
+ /**
+ * 从数据库获取数据
+ * @param key ID
+ * @return 缓存对象
+ */
+ public abstract V getData(K key);
+
+ /**
+ * 默认值
+ */
+ public abstract V defaultValue();
+}
diff --git a/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/abs/HashCacheAbs.java b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/abs/HashCacheAbs.java
new file mode 100644
index 0000000..adada29
--- /dev/null
+++ b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/abs/HashCacheAbs.java
@@ -0,0 +1,223 @@
+package com.muyu.common.cache.abs;
+
+import com.muyu.common.cache.HashCache;
+import com.muyu.common.redis.service.RedisService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.function.Function;
+
+/**
+ * @author DongZl
+ * @description: hash缓存抽象类
+ * @Date 2024-3-29 下午 07:40
+ */
+public abstract class HashCacheAbs implements HashCache {
+
+ @Autowired
+ private RedisService redisService;
+
+ /**
+ * 编码
+ *
+ * @param key ID
+ *
+ * @return 键
+ */
+ @Override
+ public String encode (K key) {
+ return keyPre() + key;
+ }
+
+ /**
+ * 编码
+ * @param hashKey ID
+ * @return 键
+ */
+ @Override
+ public String encodeHashKey (HK hashKey) {
+ return hashKey.toString();
+ }
+
+ /**
+ * 通过Key获取所有的map
+ * @param key 数据库键
+ * @return 所有集合Map
+ */
+ @Override
+ public Map get (K key) {
+ // 获取为null的情况
+ Map cacheMap = redisService.getCacheMap(encode(key));
+ if (cacheMap == null || cacheMap.isEmpty()){
+ Map dataMap = getData(key);
+ if (dataMap != null && !dataMap.isEmpty()){
+ cacheMap = encodeMap(dataMap);
+ }else {
+ cacheMap = encodeMap(defaultValue());
+ }
+ redisService.setCacheMap(encode(key), cacheMap);
+ }
+ return decodeMap(cacheMap);
+ }
+
+ /**
+ * 通过键和hashKey获取数据库hashValue
+ *
+ * @param key 键
+ * @param hashKey hash键
+ *
+ * @return hash值
+ */
+ @Override
+ public HV get (K key, HK hashKey) {
+ HV hashValue = redisService.getCacheMapValue(encode(key), encodeHashKey(hashKey));
+ if (hashValue == null){
+ HV dataValue = getData(key, hashKey);
+ hashValue = dataValue != null ? dataValue : defaultHashValue();
+ put(key, hashKey, hashValue);
+ }
+ return hashValue;
+ }
+
+ /**
+ * 通过键和hashKey获取数据库hashValue
+ *
+ * @param key 键
+ * @param hashKeyList hash键集合
+ *
+ * @return hash值
+ */
+ @Override
+ public List get (K key, HK... hashKeyList) {
+ List encodeHashKeyList = Arrays.stream(hashKeyList).map(this::encodeHashKey).toList();
+ return redisService.getMultiCacheMapValue(encode(key), encodeHashKeyList);
+ }
+
+ /**
+ * 获取hash值集合
+ *
+ * @param key 键
+ *
+ * @return hash值集合
+ */
+ @Override
+ public List getToList (K key) {
+ Map hkhvMap = get(key);
+ return hkhvMap.values().stream().toList();
+ }
+
+ /**
+ * 存储数据
+ *
+ * @param key redis键
+ * @param map hashMap集合
+ */
+ @Override
+ public void put (K key, Map map) {
+ redisService.setCacheMap(encode(key), encodeMap(map));
+ }
+
+ /**
+ * 存储数据
+ *
+ * @param key redis键
+ * @param dataList 数据值
+ * @param hashKey hash键
+ */
+ @Override
+ public void put (K key, List dataList, Function hashKey) {
+ Map dataMap = new HashMap<>();
+ dataList.forEach((data) -> dataMap.put(hashKey.apply(data), data));
+ redisService.setCacheMap(encode(key), encodeMap(dataMap));
+ }
+
+ /**
+ * 存储数据
+ *
+ * @param key redis键
+ * @param hashKey hash键
+ * @param hashValue hash值
+ */
+ @Override
+ public void put (K key, HK hashKey, HV hashValue) {
+ redisService.setCacheMapValue(encode(key), encodeHashKey(hashKey), hashValue);
+ }
+
+ /**
+ * 通过redis键删除
+ *
+ * @param key hash键
+ */
+ @Override
+ public void remove (K key) {
+ redisService.deleteObject(encode(key));
+ }
+
+ /**
+ * 通过redis键和hash键删除
+ *
+ * @param key redis键
+ * @param hashKey hash键
+ */
+ @Override
+ public void remove (K key, HK hashKey) {
+ redisService.deleteCacheMapValue(encode(key), encodeHashKey(hashKey));
+ }
+
+ /**
+ * 判断redis中hashKey是否存在
+ *
+ * @param key redis键
+ * @param hashKey hash键
+ */
+ @Override
+ public boolean hasKey (K key, HK hashKey) {
+ return redisService.hashKey(encode(key), encodeHashKey(hashKey));
+ }
+
+ /**
+ * 原始数据转编码数据
+ * @param dataMap 原始数据
+ * @return 编码数据
+ */
+ private Map encodeMap(Map dataMap){
+ Map encodeDataMap = new HashMap<>();
+ dataMap.forEach((hashKey, HashValue) -> encodeDataMap.put(encodeHashKey(hashKey), HashValue));
+ return encodeDataMap;
+ }
+
+ /**
+ * 编码数据转原始数据
+ * @param encodeDataMap 编码数据
+ * @return 原始数据
+ */
+ private Map decodeMap(Map encodeDataMap){
+ Map dataMap = new HashMap<>();
+ encodeDataMap.forEach((hashKey, hashValue) -> dataMap.put(decodeHashKey(hashKey), hashValue));
+ return dataMap;
+ }
+
+ /**
+ * 通过键获取所有的hash数据
+ * @param key 键
+ * @return
+ */
+ public abstract Map getData(K key);
+
+ /**
+ * 通过缓存键和hash键获取hash值
+ * @param key 缓存键
+ * @param hashKey hash键
+ * @return hash值
+ */
+ public abstract HV getData(K key, HK hashKey);
+
+ /**
+ * 默认值
+ */
+ public abstract Map defaultValue();
+ public abstract HV defaultHashValue();
+}
diff --git a/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/decoration/DecorationKey.java b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/decoration/DecorationKey.java
new file mode 100644
index 0000000..284b09a
--- /dev/null
+++ b/cloud-common/cloud-common-cache/src/main/java/com/muyu/common/cache/decoration/DecorationKey.java
@@ -0,0 +1,30 @@
+package com.muyu.common.cache.decoration;
+
+/**
+ * @author DongZl
+ * @description: 装饰Key
+ * @Date 2024-3-29 下午 03:19
+ */
+public interface DecorationKey {
+
+ /**
+ * key前缀
+ * @return key前缀
+ */
+ public String keyPre();
+
+
+ /**
+ * 编码
+ * @param key ID
+ * @return 键
+ */
+ public String encode(K key);
+
+ /**
+ * 解码
+ * @param redisKey 数据库键
+ * @return ID
+ */
+ public K decode(String redisKey);
+}
diff --git a/cloud-common/cloud-common-cache/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/cloud-common/cloud-common-cache/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 0000000..f4a1fdb
--- /dev/null
+++ b/cloud-common/cloud-common-cache/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1,2 @@
+com.muyu.common.kafka.config.KafkaConsumerConfig
+com.muyu.common.kafka.config.KafkaProviderConfig
diff --git a/cloud-modules/cloud-breakdown/pom.xml b/cloud-common/cloud-common-caffeine/pom.xml
similarity index 55%
rename from cloud-modules/cloud-breakdown/pom.xml
rename to cloud-common/cloud-common-caffeine/pom.xml
index 03dc09d..286b121 100644
--- a/cloud-modules/cloud-breakdown/pom.xml
+++ b/cloud-common/cloud-common-caffeine/pom.xml
@@ -5,23 +5,31 @@
4.0.0
com.muyu
- cloud-modules
+ cloud-common
3.6.3
- cloud-breakdown
- pom
-
- cloud-breakdown-common
- cloud-breakdown-server
- cloud-breakdown-remote
- cloud-breakdown-client
-
-
+ cloud-common-caffeine
+
+ cloud-common-caffeine caffeine缓存模块
+
17
17
UTF-8
+
+
+ com.muyu
+ cloud-common-redis
+
+
+
+ com.github.ben-manes.caffeine
+ caffeine
+
+
+
+
diff --git a/cloud-common/cloud-common-caffeine/src/main/java/com/muyu/common/caffeine/bean/CaffeineManager.java b/cloud-common/cloud-common-caffeine/src/main/java/com/muyu/common/caffeine/bean/CaffeineManager.java
new file mode 100644
index 0000000..d4463d2
--- /dev/null
+++ b/cloud-common/cloud-common-caffeine/src/main/java/com/muyu/common/caffeine/bean/CaffeineManager.java
@@ -0,0 +1,49 @@
+package com.muyu.common.caffeine.bean;
+
+
+import com.muyu.common.caffeine.enums.CacheNameEnums;
+import lombok.extern.slf4j.Slf4j;
+import com.github.benmanes.caffeine.cache.Caffeine;
+import org.springframework.cache.CacheManager;
+import org.springframework.cache.caffeine.CaffeineCache;
+import org.springframework.cache.support.SimpleCacheManager;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+
+/**
+ * Caffeine管理器
+ * @Author: 胡杨
+ * @Name: CaffeineCacheConfig
+ * @Description: Caffeine管理器
+ * @CreatedDate: 2024/9/26 上午11:52
+ * @FilePath: com.muyu.common.caffeine.config
+ */
+
+@Slf4j
+@Configuration
+public class CaffeineManager {
+
+ /**
+ * 创建缓存管理器
+ * @return 缓存管理器实例
+ */
+ @Bean
+ public CacheManager cacheManager() {
+ SimpleCacheManager cacheManager = new SimpleCacheManager();
+ List cacheNames = CacheNameEnums.getCodes();
+ cacheManager.setCaches(cacheNames.stream()
+ .map(name -> new CaffeineCache(
+ name,
+ Caffeine.newBuilder()
+ .recordStats()
+ .build()))
+ .toList());
+ log.info("缓存管理器初始化完成,缓存分区:{}", cacheNames);
+ return cacheManager;
+ }
+
+}
diff --git a/cloud-common/cloud-common-caffeine/src/main/java/com/muyu/common/caffeine/constents/CaffeineContent.java b/cloud-common/cloud-common-caffeine/src/main/java/com/muyu/common/caffeine/constents/CaffeineContent.java
new file mode 100644
index 0000000..251bc9b
--- /dev/null
+++ b/cloud-common/cloud-common-caffeine/src/main/java/com/muyu/common/caffeine/constents/CaffeineContent.java
@@ -0,0 +1,17 @@
+package com.muyu.common.caffeine.constents;
+
+/**
+ * Caffeine常量
+ * @Author: 胡杨
+ * @Name: CaffeineContent
+ * @Description: Caffeine常量
+ * @CreatedDate: 2024/9/26 下午12:06
+ * @FilePath: com.muyu.common.caffeine.constents
+ */
+
+public class CaffeineContent {
+
+ public static final String CAR_VIN_KEY = "car:vin";
+
+ public static final String VIN = "vin";
+}
diff --git a/cloud-common/cloud-common-caffeine/src/main/java/com/muyu/common/caffeine/enums/CacheNameEnums.java b/cloud-common/cloud-common-caffeine/src/main/java/com/muyu/common/caffeine/enums/CacheNameEnums.java
new file mode 100644
index 0000000..3d3116b
--- /dev/null
+++ b/cloud-common/cloud-common-caffeine/src/main/java/com/muyu/common/caffeine/enums/CacheNameEnums.java
@@ -0,0 +1,68 @@
+package com.muyu.common.caffeine.enums;
+
+import lombok.Getter;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 缓存分区枚举
+ *
+ * @Author: 胡杨
+ * @Name: CacheNameEnums
+ * @Description: 缓存分区枚举
+ * @CreatedDate: 2024/10/2 上午9:17
+ * @FilePath: com.muyu.common.caffeine.enums
+ */
+
+@Getter
+public enum CacheNameEnums {
+ STORAGE("storage", "持久化"),
+ FAULT("fault", "故障"),
+ FENCE("fence", "围栏"),
+ WARMING("warming", "预警"),
+ REALTIME("realTime", "实时信息");
+
+ private final String code;
+ private final String info;
+
+ CacheNameEnums(String code, String info) {
+ this.code = code;
+ this.info = info;
+ }
+
+ /**
+ * 鉴别参数是否是枚举的值
+ *
+ * @param code 需鉴别参数
+ * @return 如果存在返回结果turn, 否则返回false
+ */
+ public static boolean isCode(String code) {
+ return Arrays.stream(values())
+ .map(CacheNameEnums::getCode)
+ .anyMatch(c -> c.equals(code));
+ }
+
+ /**
+ * 获取枚举Value
+ * @param code 编码
+ * @return Value
+ */
+ public static String getInfo(String code) {
+ return Arrays.stream(values())
+ .filter(c -> c.getCode().equals(code))
+ .map(CacheNameEnums::getInfo)
+ .findFirst()
+ .orElse("");
+ }
+
+ /**
+ * 获取所有code
+ * @return code集合
+ */
+ public static List getCodes() {
+ return Arrays.stream(values())
+ .map(CacheNameEnums::getCode)
+ .toList();
+ }
+}
diff --git a/cloud-common/cloud-common-caffeine/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/cloud-common/cloud-common-caffeine/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 0000000..42fbf86
--- /dev/null
+++ b/cloud-common/cloud-common-caffeine/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1 @@
+com.muyu.common.caffeine.bean.CaffeineManager
diff --git a/cloud-common/cloud-common-core/pom.xml b/cloud-common/cloud-common-core/pom.xml
index de8898d..29f8379 100644
--- a/cloud-common/cloud-common-core/pom.xml
+++ b/cloud-common/cloud-common-core/pom.xml
@@ -22,6 +22,7 @@
mybatis-plus-join-boot-starter
1.4.11
+
org.springframework.cloud
diff --git a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/annotation/Excel.java b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/annotation/Excel.java
index 36180e5..5168b9d 100644
--- a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/annotation/Excel.java
+++ b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/annotation/Excel.java
@@ -21,132 +21,132 @@ public @interface Excel {
/**
* 导出时在excel中排序
*/
- public int sort () default Integer.MAX_VALUE;
+ public int sort() default Integer.MAX_VALUE;
/**
* 导出到Excel中的名字.
*/
- public String name () default "";
+ public String name() default "";
/**
* 日期格式, 如: yyyy-MM-dd
*/
- public String dateFormat () default "";
+ public String dateFormat() default "";
/**
* 读取内容转表达式 (如: 0=男,1=女,2=未知)
*/
- public String readConverterExp () default "";
+ public String readConverterExp() default "";
/**
* 分隔符,读取字符串组内容
*/
- public String separator () default ",";
+ public String separator() default ",";
/**
* BigDecimal 精度 默认:-1(默认不开启BigDecimal格式化)
*/
- public int scale () default -1;
+ public int scale() default -1;
/**
* BigDecimal 舍入规则 默认:BigDecimal.ROUND_HALF_EVEN
*/
- public int roundingMode () default BigDecimal.ROUND_HALF_EVEN;
+ public int roundingMode() default BigDecimal.ROUND_HALF_EVEN;
/**
* 导出时在excel中每个列的高度
*/
- public double height () default 14;
+ public double height() default 14;
/**
* 导出时在excel中每个列的宽度
*/
- public double width () default 16;
+ public double width() default 16;
/**
* 文字后缀,如% 90 变成90%
*/
- public String suffix () default "";
+ public String suffix() default "";
/**
* 当值为空时,字段的默认值
*/
- public String defaultValue () default "";
+ public String defaultValue() default "";
/**
* 提示信息
*/
- public String prompt () default "";
+ public String prompt() default "";
/**
* 设置只能选择不能输入的列内容.
*/
- public String[] combo () default {};
+ public String[] combo() default {};
/**
* 是否需要纵向合并单元格,应对需求:含有list集合单元格)
*/
- public boolean needMerge () default false;
+ public boolean needMerge() default false;
/**
* 是否导出数据,应对需求:有时我们需要导出一份模板,这是标题需要但内容需要用户手工填写.
*/
- public boolean isExport () default true;
+ public boolean isExport() default true;
/**
* 另一个类中的属性名称,支持多级获取,以小数点隔开
*/
- public String targetAttr () default "";
+ public String targetAttr() default "";
/**
* 是否自动统计数据,在最后追加一行统计数据总和
*/
- public boolean isStatistics () default false;
+ public boolean isStatistics() default false;
/**
* 导出类型(0数字 1字符串)
*/
- public ColumnType cellType () default ColumnType.STRING;
+ public ColumnType cellType() default ColumnType.STRING;
/**
* 导出列头背景颜色
*/
- public IndexedColors headerBackgroundColor () default IndexedColors.GREY_50_PERCENT;
+ public IndexedColors headerBackgroundColor() default IndexedColors.GREY_50_PERCENT;
/**
* 导出列头字体颜色
*/
- public IndexedColors headerColor () default IndexedColors.WHITE;
+ public IndexedColors headerColor() default IndexedColors.WHITE;
/**
* 导出单元格背景颜色
*/
- public IndexedColors backgroundColor () default IndexedColors.WHITE;
+ public IndexedColors backgroundColor() default IndexedColors.WHITE;
/**
* 导出单元格字体颜色
*/
- public IndexedColors color () default IndexedColors.BLACK;
+ public IndexedColors color() default IndexedColors.BLACK;
/**
* 导出字段对齐方式
*/
- public HorizontalAlignment align () default HorizontalAlignment.CENTER;
+ public HorizontalAlignment align() default HorizontalAlignment.CENTER;
/**
* 自定义数据处理器
*/
- public Class> handler () default ExcelHandlerAdapter.class;
+ public Class> handler() default ExcelHandlerAdapter.class;
/**
* 自定义数据处理器参数
*/
- public String[] args () default {};
+ public String[] args() default {};
/**
* 字段类型(0:导出导入;1:仅导出;2:仅导入)
*/
- Type type () default Type.ALL;
+ Type type() default Type.ALL;
public enum Type {
ALL(0), EXPORT(1), IMPORT(2);
diff --git a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/annotation/Excels.java b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/annotation/Excels.java
index f8fc165..ea8dd80 100644
--- a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/annotation/Excels.java
+++ b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/annotation/Excels.java
@@ -13,5 +13,5 @@ import java.lang.annotation.Target;
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Excels {
- Excel[] value ();
+ Excel[] value();
}
diff --git a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/constant/ServiceNameConstants.java b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/constant/ServiceNameConstants.java
index 4397df7..01189de 100644
--- a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/constant/ServiceNameConstants.java
+++ b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/constant/ServiceNameConstants.java
@@ -21,6 +21,8 @@ public class ServiceNameConstants {
*/
public static final String FILE_SERVICE = "cloud-file";
+ public static final String CAR_SERVICE = "cloud-car";
+
/**
* 智能车联服务
*/
diff --git a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/enums/ClassType.java b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/enums/ClassType.java
new file mode 100644
index 0000000..69db8d3
--- /dev/null
+++ b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/enums/ClassType.java
@@ -0,0 +1,63 @@
+package com.muyu.common.core.enums;
+
+import lombok.Getter;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * 类型枚举
+ *
+ * @Author: 胡杨
+ * @Name: ClassType
+ * @Description: 类型枚举
+ * @CreatedDate: 2024/9/29 上午9:28
+ * @FilePath: com.muyu.common.core.enums
+ */
+
+@Getter
+public enum ClassType {
+ BYTE("byte", byte.class),
+ SHORT("short", short.class),
+ INT("int", int.class),
+ LONG("long", long.class),
+ FLOAT("float", float.class),
+ DOUBLE("double", double.class),
+ BOOLEAN("boolean", boolean.class),
+ CHAR("char", char.class),
+ STRING("String", String.class),
+ SET("Set", Set.class),
+ MAP("Map", Map.class),
+ LIST("List", List.class);
+
+ private final String code;
+ private final Class> info;
+
+ ClassType(String code, Class> info) {
+ this.code = code;
+ this.info = info;
+ }
+
+ /**
+ * 鉴别参数是否是枚举的值
+ *
+ * @param code 需鉴别参数
+ * @return 如果存在返回结果turn, 否则返回false
+ */
+ public static boolean isCode(String code) {
+ return Arrays.stream(values())
+ .map(ClassType::getCode)
+ .anyMatch(c -> c.equals(code));
+ }
+
+
+ public static Class> getInfo(String code) {
+ return Arrays.stream(values())
+ .filter(c -> c.getCode().equals(code))
+ .findFirst()
+ .map(ClassType::getInfo)
+ .orElse(null);
+ }
+}
diff --git a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/utils/SpringUtils.java b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/utils/SpringUtils.java
index c37a65c..6f50b56 100644
--- a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/utils/SpringUtils.java
+++ b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/utils/SpringUtils.java
@@ -26,7 +26,7 @@ public final class SpringUtils implements BeanFactoryPostProcessor {
*
* @return Object 一个以所给名字注册的bean的实例
*
- * @throws org.springframework.beans.BeansException
+ * @throws BeansException
*/
@SuppressWarnings("unchecked")
public static T getBean (String name) throws BeansException {
@@ -40,7 +40,7 @@ public final class SpringUtils implements BeanFactoryPostProcessor {
*
* @return
*
- * @throws org.springframework.beans.BeansException
+ * @throws BeansException
*/
public static T getBean (Class clz) throws BeansException {
T result = (T) beanFactory.getBean(clz);
@@ -65,7 +65,7 @@ public final class SpringUtils implements BeanFactoryPostProcessor {
*
* @return boolean
*
- * @throws org.springframework.beans.factory.NoSuchBeanDefinitionException
+ * @throws NoSuchBeanDefinitionException
*/
public static boolean isSingleton (String name) throws NoSuchBeanDefinitionException {
return beanFactory.isSingleton(name);
@@ -76,7 +76,7 @@ public final class SpringUtils implements BeanFactoryPostProcessor {
*
* @return Class 注册对象的类型
*
- * @throws org.springframework.beans.factory.NoSuchBeanDefinitionException
+ * @throws NoSuchBeanDefinitionException
*/
public static Class> getType (String name) throws NoSuchBeanDefinitionException {
return beanFactory.getType(name);
@@ -89,7 +89,7 @@ public final class SpringUtils implements BeanFactoryPostProcessor {
*
* @return
*
- * @throws org.springframework.beans.factory.NoSuchBeanDefinitionException
+ * @throws NoSuchBeanDefinitionException
*/
public static String[] getAliases (String name) throws NoSuchBeanDefinitionException {
return beanFactory.getAliases(name);
diff --git a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/xss/Xss.java b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/xss/Xss.java
index fa31755..9b53042 100644
--- a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/xss/Xss.java
+++ b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/xss/Xss.java
@@ -17,11 +17,11 @@ import java.lang.annotation.Target;
@Target(value = {ElementType.METHOD, ElementType.FIELD, ElementType.CONSTRUCTOR, ElementType.PARAMETER})
@Constraint(validatedBy = {XssValidator.class})
public @interface Xss {
- String message ()
+ String message()
default "不允许任何脚本运行";
- Class>[] groups () default {};
+ Class>[] groups() default {};
- Class extends Payload>[] payload () default {};
+ Class extends Payload>[] payload() default {};
}
diff --git a/cloud-common/cloud-common-datascope/src/main/java/com/muyu/common/datascope/annotation/DataScope.java b/cloud-common/cloud-common-datascope/src/main/java/com/muyu/common/datascope/annotation/DataScope.java
index 498f06b..5277b20 100644
--- a/cloud-common/cloud-common-datascope/src/main/java/com/muyu/common/datascope/annotation/DataScope.java
+++ b/cloud-common/cloud-common-datascope/src/main/java/com/muyu/common/datascope/annotation/DataScope.java
@@ -14,15 +14,15 @@ public @interface DataScope {
/**
* 部门表的别名
*/
- public String deptAlias () default "";
+ public String deptAlias() default "";
/**
* 用户表的别名
*/
- public String userAlias () default "";
+ public String userAlias() default "";
/**
* 权限字符(用于多个角色匹配符合要求的权限)默认根据权限注解@RequiresPermissions获取,多个权限用逗号分隔开来
*/
- public String permission () default "";
+ public String permission() default "";
}
diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-common/pom.xml b/cloud-common/cloud-common-iotdb/pom.xml
similarity index 69%
rename from cloud-modules/cloud-breakdown/cloud-breakdown-common/pom.xml
rename to cloud-common/cloud-common-iotdb/pom.xml
index fc96ca7..0972390 100644
--- a/cloud-modules/cloud-breakdown/cloud-breakdown-common/pom.xml
+++ b/cloud-common/cloud-common-iotdb/pom.xml
@@ -5,22 +5,32 @@
4.0.0
com.muyu
- cloud-breakdown
+ cloud-common
3.6.3
- cloud-breakdown-common
-
+ cloud-common-iotdb
+
+ cloud-common-iotdb 时序数据库模块
+
17
17
UTF-8
+
+
com.muyu
cloud-common-core
+
+
+ org.apache.iotdb
+ iotdb-session
+ 1.3.2
+
diff --git a/cloud-common/cloud-common-iotdb/src/main/java/com/muyu/common/iotdb/config/IotDBSessionConfig.java b/cloud-common/cloud-common-iotdb/src/main/java/com/muyu/common/iotdb/config/IotDBSessionConfig.java
new file mode 100644
index 0000000..b83bbad
--- /dev/null
+++ b/cloud-common/cloud-common-iotdb/src/main/java/com/muyu/common/iotdb/config/IotDBSessionConfig.java
@@ -0,0 +1,53 @@
+package com.muyu.common.iotdb.config;
+
+import org.apache.iotdb.rpc.IoTDBConnectionException;
+import org.apache.iotdb.rpc.StatementExecutionException;
+import org.apache.iotdb.session.Session;
+import org.apache.iotdb.session.pool.SessionPool;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * 时序数据库配置
+ *
+ * @Author: 胡杨
+ * @Name: IotDBConfig
+ * @Description: 时序数据库配置
+ * @CreatedDate: 2024/9/29 下午9:30
+ * @FilePath: com.muyu.data.processing.config
+ */
+
+@Configuration
+public class IotDBSessionConfig {
+
+ @Value("${spring.iotdb.ip}")
+ private String ip;
+
+ @Value("${spring.iotdb.port}")
+ private int port;
+
+ @Value("${spring.iotdb.user}")
+ private String user;
+
+ @Value("${spring.iotdb.password}")
+ private String password;
+
+ @Value("${spring.iotdb.fetchSize}")
+ private int fetchSize;
+
+ private static SessionPool sessionPool;
+ @Bean
+ public SessionPool getSessionPool(){
+ if (sessionPool == null) {
+ sessionPool = new SessionPool(ip, port, user, password, fetchSize);
+ try {
+ sessionPool.setTimeZone("+08:00");
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+ return sessionPool;
+ }
+
+}
diff --git a/cloud-common/cloud-common-iotdb/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/cloud-common/cloud-common-iotdb/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 0000000..6ef70f8
--- /dev/null
+++ b/cloud-common/cloud-common-iotdb/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1 @@
+com.muyu.common.iotdb.config.IotDBSessionConfig
diff --git a/cloud-common/cloud-common-kafka/pom.xml b/cloud-common/cloud-common-kafka/pom.xml
new file mode 100644
index 0000000..fca6155
--- /dev/null
+++ b/cloud-common/cloud-common-kafka/pom.xml
@@ -0,0 +1,37 @@
+
+
+ 4.0.0
+
+ com.muyu
+ cloud-common
+ 3.6.3
+
+
+ cloud-common-kafka
+
+ cloud-common-kafka kafka中间件模块
+
+
+ 17
+ 17
+ UTF-8
+
+
+
+
+
+ com.muyu
+ cloud-common-redis
+
+
+
+ org.apache.kafka
+ kafka-clients
+ 3.0.0
+
+
+
+
+
diff --git a/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/config/KafkaConsumerConfig.java b/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/config/KafkaConsumerConfig.java
new file mode 100644
index 0000000..21092d2
--- /dev/null
+++ b/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/config/KafkaConsumerConfig.java
@@ -0,0 +1,54 @@
+package com.muyu.common.kafka.config;
+
+import com.muyu.common.kafka.constants.KafkaConstants;
+import org.apache.kafka.clients.consumer.KafkaConsumer;
+import org.apache.kafka.common.serialization.Deserializer;
+import org.apache.kafka.common.serialization.StringDeserializer;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.SpringBootConfiguration;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * kafka 消息的消费者 配置类
+ */
+@Configuration
+public class KafkaConsumerConfig {
+
+ @Bean
+ public KafkaConsumer kafkaConsumer() {
+ Map configs = new HashMap<>();
+ //kafka服务端的IP和端口,格式:(ip:port)
+ configs.put("bootstrap.servers", "47.116.173.119:9092");
+ //开启consumer的偏移量(offset)自动提交到Kafka
+ configs.put("enable.auto.commit", true);
+ //consumer的偏移量(offset) 自动提交的时间间隔,单位毫秒
+ configs.put("auto.commit.interval", 5000);
+ //在Kafka中没有初始化偏移量或者当前偏移量不存在情况
+ //earliest, 在偏移量无效的情况下, 自动重置为最早的偏移量
+ //latest, 在偏移量无效的情况下, 自动重置为最新的偏移量
+ //none, 在偏移量无效的情况下, 抛出异常.
+ configs.put("auto.offset.reset", "latest");
+ //请求阻塞的最大时间(毫秒)
+ configs.put("fetch.max.wait", 500);
+ //请求应答的最小字节数
+ configs.put("fetch.min.size", 1);
+ //心跳间隔时间(毫秒)
+ configs.put("heartbeat-interval", 3000);
+ //一次调用poll返回的最大记录条数
+ configs.put("max.poll.records", 500);
+ //指定消费组
+ configs.put("group.id", KafkaConstants.KafkaGrop);
+ //指定key使用的反序列化类
+ Deserializer keyDeserializer = new StringDeserializer();
+ //指定value使用的反序列化类
+ Deserializer valueDeserializer = new StringDeserializer();
+ //创建Kafka消费者
+ KafkaConsumer kafkaConsumer = new KafkaConsumer(configs, keyDeserializer, valueDeserializer);
+ return kafkaConsumer;
+ }
+
+}
diff --git a/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/config/KafkaProviderConfig.java b/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/config/KafkaProviderConfig.java
new file mode 100644
index 0000000..07b56d3
--- /dev/null
+++ b/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/config/KafkaProviderConfig.java
@@ -0,0 +1,45 @@
+package com.muyu.common.kafka.config;
+
+import org.apache.kafka.clients.producer.KafkaProducer;
+import org.apache.kafka.common.serialization.Serializer;
+import org.apache.kafka.common.serialization.StringSerializer;
+import org.springframework.boot.SpringBootConfiguration;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * kafka 消息的生产者 配置类
+ */
+@Configuration
+public class KafkaProviderConfig {
+
+ @Bean
+ public KafkaProducer kafkaProducer() {
+ Map configs = new HashMap<>();
+ //#kafka服务端的IP和端口,格式:(ip:port)
+ configs.put("bootstrap.servers", "47.116.173.119:9092");
+ //客户端发送服务端失败的重试次数
+ configs.put("retries", 2);
+ //多个记录被发送到同一个分区时,生产者将尝试将记录一起批处理成更少的请求.
+ //此设置有助于提高客户端和服务器的性能,配置控制默认批量大小(以字节为单位)
+ configs.put("batch.size", 16384);
+ //生产者可用于缓冲等待发送到服务器的记录的总内存字节数(以字节为单位)
+ configs.put("buffer-memory", 33554432);
+ //生产者producer要求leader节点在考虑完成请求之前收到的确认数,用于控制发送记录在服务端的持久化
+ //acks=0,设置为0,则生产者producer将不会等待来自服务器的任何确认.该记录将立即添加到套接字(socket)缓冲区并视为已发送.在这种情况下,无法保证服务器已收到记录,并且重试配置(retries)将不会生效(因为客户端通常不会知道任何故障),每条记录返回的偏移量始终设置为-1.
+ //acks=1,设置为1,leader节点会把记录写入本地日志,不需要等待所有follower节点完全确认就会立即应答producer.在这种情况下,在follower节点复制前,leader节点确认记录后立即失败的话,记录将会丢失.
+ //acks=all,acks=-1,leader节点将等待所有同步复制副本完成再确认记录,这保证了只要至少有一个同步复制副本存活,记录就不会丢失.
+ configs.put("acks", "-1");
+ //指定key使用的序列化类
+ Serializer keySerializer = new StringSerializer();
+ //指定value使用的序列化类
+ Serializer valueSerializer = new StringSerializer();
+ //创建Kafka生产者
+ KafkaProducer kafkaProducer = new KafkaProducer(configs, keySerializer, valueSerializer);
+ return kafkaProducer;
+ }
+
+}
diff --git a/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/constants/KafkaConstants.java b/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/constants/KafkaConstants.java
new file mode 100644
index 0000000..d4c3d13
--- /dev/null
+++ b/cloud-common/cloud-common-kafka/src/main/java/com/muyu/common/kafka/constants/KafkaConstants.java
@@ -0,0 +1,14 @@
+package com.muyu.common.kafka.constants;
+
+/**
+ * @Author: 胡杨
+ * @date: 2024/7/10
+ * @Description: kafka常量
+ * @Version 1.0.0
+ */
+public class KafkaConstants {
+
+ public final static String KafkaTopic = "kafka_topic";
+
+ public final static String KafkaGrop = "kafka_grop";
+}
diff --git a/cloud-common/cloud-common-kafka/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/cloud-common/cloud-common-kafka/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 0000000..f4a1fdb
--- /dev/null
+++ b/cloud-common/cloud-common-kafka/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1,2 @@
+com.muyu.common.kafka.config.KafkaConsumerConfig
+com.muyu.common.kafka.config.KafkaProviderConfig
diff --git a/cloud-common/cloud-common-log/src/main/java/com/muyu/common/log/annotation/Log.java b/cloud-common/cloud-common-log/src/main/java/com/muyu/common/log/annotation/Log.java
index ac6394e..a8b6fea 100644
--- a/cloud-common/cloud-common-log/src/main/java/com/muyu/common/log/annotation/Log.java
+++ b/cloud-common/cloud-common-log/src/main/java/com/muyu/common/log/annotation/Log.java
@@ -17,30 +17,30 @@ public @interface Log {
/**
* 模块
*/
- public String title () default "";
+ public String title() default "";
/**
* 功能
*/
- public BusinessType businessType () default BusinessType.OTHER;
+ public BusinessType businessType() default BusinessType.OTHER;
/**
* 操作人类别
*/
- public OperatorType operatorType () default OperatorType.MANAGE;
+ public OperatorType operatorType() default OperatorType.MANAGE;
/**
* 是否保存请求的参数
*/
- public boolean isSaveRequestData () default true;
+ public boolean isSaveRequestData() default true;
/**
* 是否保存响应的参数
*/
- public boolean isSaveResponseData () default true;
+ public boolean isSaveResponseData() default true;
/**
* 排除指定的请求参数
*/
- public String[] excludeParamNames () default {};
+ public String[] excludeParamNames() default {};
}
diff --git a/cloud-common/cloud-common-rabbit/pom.xml b/cloud-common/cloud-common-rabbit/pom.xml
index 3681d6f..01f2f25 100644
--- a/cloud-common/cloud-common-rabbit/pom.xml
+++ b/cloud-common/cloud-common-rabbit/pom.xml
@@ -10,7 +10,9 @@
cloud-common-rabbit
-
+
+ cloud-common-rabbit rabbit中间件模块
+
17
17
@@ -32,7 +34,4 @@
-
-
-
diff --git a/cloud-common/cloud-common-rabbit/src/main/java/com/muyu/common/rabbit/RabbitListenerConfigurer.java b/cloud-common/cloud-common-rabbit/src/main/java/com/muyu/common/rabbit/RabbitListenerConfigurer.java
deleted file mode 100644
index 51cb359..0000000
--- a/cloud-common/cloud-common-rabbit/src/main/java/com/muyu/common/rabbit/RabbitListenerConfigurer.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package com.muyu.common.rabbit;
-
-import org.springframework.amqp.rabbit.connection.ConnectionFactory;
-import org.springframework.amqp.rabbit.listener.RabbitListenerEndpointRegistrar;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.messaging.converter.MappingJackson2MessageConverter;
-import org.springframework.messaging.handler.annotation.support.DefaultMessageHandlerMethodFactory;
-
-@Configuration
-public class RabbitListenerConfigurer implements org.springframework.amqp.rabbit.annotation.RabbitListenerConfigurer {
-
- static {
- System.setProperty("spring.amqp.deserialization.trust.all", "true");
- }
-
- //以下配置RabbitMQ消息服务
- @Autowired
- public ConnectionFactory connectionFactory;
-
-
- /**
- * 处理器方法工厂
- * @return
- */
- @Bean
- public DefaultMessageHandlerMethodFactory handlerMethodFactory() {
- DefaultMessageHandlerMethodFactory factory = new DefaultMessageHandlerMethodFactory();
- // 这里的转换器设置实现了 通过 @Payload 注解 自动反序列化message body
- factory.setMessageConverter(new MappingJackson2MessageConverter());
- return factory;
- }
-
- @Override
- public void configureRabbitListeners(RabbitListenerEndpointRegistrar rabbitListenerEndpointRegistrar) {
- rabbitListenerEndpointRegistrar.setMessageHandlerMethodFactory(handlerMethodFactory());
- }
-
-}
-
diff --git a/cloud-common/cloud-common-rabbit/src/main/java/com/muyu/common/rabbit/constants/RabbitConstants.java b/cloud-common/cloud-common-rabbit/src/main/java/com/muyu/common/rabbit/constants/RabbitConstants.java
new file mode 100644
index 0000000..70c7620
--- /dev/null
+++ b/cloud-common/cloud-common-rabbit/src/main/java/com/muyu/common/rabbit/constants/RabbitConstants.java
@@ -0,0 +1,15 @@
+package com.muyu.common.rabbit.constants;
+
+/**
+ * rabbit常量
+ * @Author: 胡杨
+ * @date: 2024/7/10
+ * @Description: rabbit常量
+ * @Version 1.0.0
+ */
+public class RabbitConstants {
+
+ public final static String GO_ONLINE_QUEUE= "GoOnline";
+
+ public final static String DOWNLINE_QUEUE= "Downline";
+}
diff --git a/cloud-common/cloud-common-rabbit/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/cloud-common/cloud-common-rabbit/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
index 292c5ed..0b13700 100644
--- a/cloud-common/cloud-common-rabbit/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
+++ b/cloud-common/cloud-common-rabbit/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -1,7 +1,3 @@
-
com.muyu.common.rabbit.config.RabbitListenerConfig
com.muyu.common.rabbit.config.RabbitAdminConfig
com.muyu.common.rabbit.config.RabbitMQMessageConverterConfig
-
-com.muyu.common.rabbit.RabbitListenerConfigurer
-
diff --git a/cloud-common/cloud-common-redis/src/main/java/com/muyu/common/redis/service/RedisService.java b/cloud-common/cloud-common-redis/src/main/java/com/muyu/common/redis/service/RedisService.java
index 2c1cad4..ca98a3d 100644
--- a/cloud-common/cloud-common-redis/src/main/java/com/muyu/common/redis/service/RedisService.java
+++ b/cloud-common/cloud-common-redis/src/main/java/com/muyu/common/redis/service/RedisService.java
@@ -235,7 +235,7 @@ public class RedisService {
*
* @return Hash对象集合
*/
- public List getMultiCacheMapValue (final String key, final Collection