master
liuyunhu 2024-04-18 19:01:59 +08:00
parent e70a315159
commit ba81e00cb3
17 changed files with 245 additions and 14 deletions

View File

@ -10,7 +10,7 @@ import com.lyh.common.aliyun.config.AliConfig;
import com.lyh.common.aliyun.model.InstanceSpecification; import com.lyh.common.aliyun.model.InstanceSpecification;
import com.lyh.common.redis.service.RedisService; import com.lyh.common.redis.service.RedisService;
import com.lyh.common.utils.user.UserUtil; import com.lyh.common.utils.user.UserUtil;
import com.lyh.domain.InstancesInformation; import com.lyh.common.domain.InstancesInformation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;

View File

@ -1,4 +1,4 @@
package com.lyh.domain; package com.lyh.common.domain;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.lyh.domain; package com.lyh.common.domain;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.lyh.domain; package com.lyh.common.domain;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.lyh.domain; package com.lyh.common.domain;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.lyh.domain.resp; package com.lyh.common.domain.resp;
/** /**
* *

View File

@ -1,4 +1,4 @@
package com.lyh.domain.resp; package com.lyh.common.domain.resp;
import lombok.Data; import lombok.Data;

View File

@ -1,6 +1,6 @@
package com.lyh.controller; package com.lyh.controller;
import com.lyh.domain.resp.Result; import com.lyh.common.domain.resp.Result;
import com.lyh.service.LoadCenterService; import com.lyh.service.LoadCenterService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;

View File

@ -0,0 +1,57 @@
package com.lyh.gateway.cache;
import com.lyh.gateway.cache.abs.GatewayCacheAbs;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @ProjectName: LoadCenter
* @Author: LiuYunHu
* @CreateTime: 2024/4/18
* @Description:
*/
@Component
public class GatewayLoadNodeCache extends GatewayCacheAbs<String> {
private final static String gatewayLoadNodeKey = "node";
@Override
public String getPre() {
return "gateway:load:";
}
/*
* @Description:
* @Date: 2024/4/18 16:12
* @Param: [nodeList]
* @Return: void
**/
public void put(List<String> nodeList) {
redisService.deleteObject(encode(gatewayLoadNodeKey));
redisService.setCacheList(encode(gatewayLoadNodeKey), nodeList);
}
/*
* @Description:
* @Date: 2024/4/18 16:12
* @Param: []
* @Return: java.util.List<java.lang.String>
**/
public List<String> get() {
return redisService.getCacheList(encode(gatewayLoadNodeKey));
}
/*
* @Description:
* @Date: 2024/4/18 16:13
* @Param: []
* @Return: java.lang.String
**/
public String getByIndex(Long index) {
if (null == index || 100 < index) {
throw new RuntimeException("下标违法0-100");
}
return redisService.getCacheList(encode(gatewayLoadNodeKey), index);
}
}

View File

@ -0,0 +1,66 @@
package com.lyh.gateway.cache;
import com.lyh.gateway.cache.abs.GatewayCacheAbs;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
/**
* @ProjectName: LoadCenter
* @Author: LiuYunHu
* @CreateTime: 2024/4/18
* @Description:
*/
@Component
public class GatewayLoadSeriesCache extends GatewayCacheAbs<String> {
//redis Key
private final static String gatewayLoadSeriesKey = "series";
@Override
public String getPre() {
return "gateway:load:";
}
/*
* @Date: 2024/4/18 15:35
* @Description: bean
* @Param: []
* @Return: void
**/
@PostConstruct
public void init() {
redisService.setCacheObject(encode(gatewayLoadSeriesKey), 0L);
}
/*
* @Description:
* @Date: 2024/4/18 15:56
* @Param: []
* @Return: java.lang.Long
**/
public Long get() {
return redisService.getCacheObject(encode(gatewayLoadSeriesKey));
}
/*
* @Description:
* @Date: 2024/4/18 15:38
* @Param: []
* @Return:
**/
public Long incrementAndGet() {
return redisService.increment(encode(gatewayLoadSeriesKey), 1L);
}
/*
* @Description:
* @Date: 2024/4/18 15:57
* @Param: []
* @Return: void
**/
public void reset() {
this.init();
}
}

View File

@ -0,0 +1,54 @@
package com.lyh.gateway.cache;
import com.lyh.gateway.cache.abs.GatewayCacheAbs;
import com.lyh.gateway.mode.GatewayNodeInfo;
import org.springframework.stereotype.Component;
/**
* @ProjectName: LoadCenter
* @Author: LiuYunHu
* @CreateTime: 2024/4/18
* @Description:
*/
@Component
public class GatewayNodeCache extends GatewayCacheAbs<String> {
//redis Key前缀
@Override
public String getPre() {
return "gateway:node:info:";
}
/*
* @Author: LiuYunHu
* @Date: 2024/4/18 15:16
* @Description:
* @Param:
* @Return: void
**/
public void put(GatewayNodeInfo gatewayNodeInfo) {
redisService.setCacheObject(encode(gatewayNodeInfo.getNodeId()), gatewayNodeInfo);
}
/*
* @Author: LiuYunHu
* @Date: 2024/4/18 15:19
* @Description:
* @Param: id
* @Return:
**/
public GatewayNodeInfo get(String nodeId) {
return redisService.getCacheObject(encode(nodeId));
}
/*
* @Author: LiuYunHu
* @Date: 2024/4/18 15:19
* @Description:
* @Param: id
* @Return: void
**/
public void remove(String nodeId) {
redisService.deleteObject(encode(nodeId));
}
}

View File

@ -0,0 +1,22 @@
package com.lyh.gateway.cache.abs;
import com.lyh.common.redis.service.RedisService;
import org.springframework.beans.factory.annotation.Autowired;
/**
* @ProjectName: LoadCenter
* @Author: LiuYunHu
* @CreateTime: 2024/4/18
* @Description:
*/
public abstract class GatewayCacheAbs<K> {
@Autowired
public RedisService redisService;
public abstract String getPre();
public String encode(K key) {
return getPre() + key;
}
}

View File

@ -0,0 +1,33 @@
package com.lyh.gateway.mode;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @ProjectName: LoadCenter
* @Author: LiuYunHu
* @CreateTime: 2024/4/18
* @Description:
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class GatewayNodeInfo {
/*
* id
* */
private String nodeId;
/*
* IP
* */
private String publicIpAddress;
/*
* IP
* */
private String privateIpAddress;
}

View File

@ -1,6 +1,6 @@
package com.lyh.service; package com.lyh.service;
import com.lyh.domain.resp.Result; import com.lyh.common.domain.resp.Result;
/** /**
* @ProjectName: LoadCenter * @ProjectName: LoadCenter

View File

@ -6,9 +6,9 @@ import com.lyh.common.aliyun.service.AliYunEcsService;
import com.lyh.common.redis.service.RedisService; import com.lyh.common.redis.service.RedisService;
import com.lyh.common.utils.mqtt.MqttUtil; import com.lyh.common.utils.mqtt.MqttUtil;
import com.lyh.common.utils.user.UserUtil; import com.lyh.common.utils.user.UserUtil;
import com.lyh.domain.IpAndLoadCount; import com.lyh.common.domain.IpAndLoadCount;
import com.lyh.domain.IpAndWeight; import com.lyh.common.domain.IpAndWeight;
import com.lyh.domain.resp.Result; import com.lyh.common.domain.resp.Result;
import com.lyh.service.LoadCenterService; import com.lyh.service.LoadCenterService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;

View File

@ -4,7 +4,6 @@ server:
spring: spring:
redis: redis:
# host: 39.103.132.68
host: 127.0.0.1 host: 127.0.0.1
port: 6379 port: 6379

View File

@ -72,7 +72,7 @@ public class Test {
**/ **/
@org.junit.jupiter.api.Test @org.junit.jupiter.api.Test
public void releaseInstances() throws Exception { public void releaseInstances() throws Exception {
aliYunEcsService.releaseInstances("i-uf6dmmscd3b64m0jqs9f"); aliYunEcsService.releaseInstances("i-uf65dwndeh5u4cmpl1ff,i-uf68ar6qiqmgetp67a5q");
} }
/* /*