parent
3f7fe62466
commit
9c409d7ab5
|
@ -1,8 +1,10 @@
|
||||||
package com.loadcenter.gateway.cache;
|
package com.loadcenter.gateway.cache;
|
||||||
|
|
||||||
import com.loadcenter.gateway.cache.abs.GatewayCacheAbs;
|
import com.loadcenter.gateway.cache.abs.GatewayCacheAbs;
|
||||||
|
import com.loadcenter.gateway.model.WorkGatewayNode;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -25,10 +27,26 @@ public class GatewayZSetNodeCache extends GatewayCacheAbs<String> {
|
||||||
* 获取所有zset数据
|
* 获取所有zset数据
|
||||||
* @return 负载节点集合
|
* @return 负载节点集合
|
||||||
*/
|
*/
|
||||||
public Map<Object,Double> get(){
|
public Map<Object,Double> getzSet(){
|
||||||
return redisService.getCacheZSetScore(encode(gatewayZSetCount));
|
return redisService.getCacheZSetScore(encode(gatewayZSetCount));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取所有zset数据
|
||||||
|
* @return 负载节点集合
|
||||||
|
*/
|
||||||
|
public ArrayList<WorkGatewayNode> get(){
|
||||||
|
ArrayList<WorkGatewayNode> nodeList = new ArrayList<>();
|
||||||
|
Map<Object, Double> map = redisService.getCacheZSetScore(encode(gatewayZSetCount));
|
||||||
|
for (Map.Entry<Object, Double> entry : map.entrySet()) {
|
||||||
|
WorkGatewayNode workGatewayNode = new WorkGatewayNode();
|
||||||
|
workGatewayNode.setNodeId(entry.getKey().toString());
|
||||||
|
workGatewayNode.setSource(entry.getValue());
|
||||||
|
nodeList.add(workGatewayNode);
|
||||||
|
}
|
||||||
|
return nodeList;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改服务器的在线车辆
|
* 修改服务器的在线车辆
|
||||||
|
|
|
@ -83,7 +83,7 @@ public class GatewayLoadServiceImpl implements GatewayLoadService {
|
||||||
ArrayList<String> ipCacheSet = new ArrayList<>();
|
ArrayList<String> ipCacheSet = new ArrayList<>();
|
||||||
|
|
||||||
//从redis获取服务器IP集合
|
//从redis获取服务器IP集合
|
||||||
Map<Object, Double> map = gatewayZSetNodeCache.get();
|
Map<Object, Double> map = gatewayZSetNodeCache.getzSet();
|
||||||
|
|
||||||
for (Map.Entry<Object, Double> entry : map.entrySet()) {
|
for (Map.Entry<Object, Double> entry : map.entrySet()) {
|
||||||
ipCacheSet.add(entry.getKey().toString());
|
ipCacheSet.add(entry.getKey().toString());
|
||||||
|
@ -197,6 +197,8 @@ public class GatewayLoadServiceImpl implements GatewayLoadService {
|
||||||
|
|
||||||
BigDecimal loadRate = new BigDecimal(vehicleMaxOnlineNum).divide(new BigDecimal(vehicleOnlineNowNum), 0, BigDecimal.ROUND_HALF_UP);
|
BigDecimal loadRate = new BigDecimal(vehicleMaxOnlineNum).divide(new BigDecimal(vehicleOnlineNowNum), 0, BigDecimal.ROUND_HALF_UP);
|
||||||
log.info("负载率:[{}]",loadRate);
|
log.info("负载率:[{}]",loadRate);
|
||||||
|
|
||||||
|
ArrayList<WorkGatewayNode> nodeList = gatewayZSetNodeCache.get();
|
||||||
if(loadRate.longValue()>=80L){
|
if(loadRate.longValue()>=80L){
|
||||||
//调用扩容逻辑
|
//调用扩容逻辑
|
||||||
log.info("负载过高,开始扩容");
|
log.info("负载过高,开始扩容");
|
||||||
|
@ -220,20 +222,11 @@ public class GatewayLoadServiceImpl implements GatewayLoadService {
|
||||||
gatewayZSetNodeCache.put(instancesInformation.getPublicIpAddress(),0);
|
gatewayZSetNodeCache.put(instancesInformation.getPublicIpAddress(),0);
|
||||||
log.info("实例id和公网ip存入redis");
|
log.info("实例id和公网ip存入redis");
|
||||||
|
|
||||||
}else if (loadRate.longValue()<20){
|
}else if (loadRate.longValue()<20L){
|
||||||
//调用缩容逻辑
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 扩容逻辑
|
|
||||||
* TODO
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 缩容逻辑
|
|
||||||
* TODO
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue