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