From 377705887bc0dd5af181c72131c6c48ae25ef285 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E5=A4=A7=E4=B8=BE?= <13970129+huandgaju@user.noreply.gitee.com> Date: Sat, 20 Apr 2024 11:21:03 +0800 Subject: [PATCH] 4.20-2 --- .../gateway/cache/GatewayZSetNodeCache.java | 6 ++-- .../common/redis/service/RedisService.java | 5 +++ .../java/com/muyu/center/mq/Consumer.java | 1 + .../service/impl/GatewayLoadServiceImpl.java | 3 +- .../impl/GatewayVehicleServiceImpl.java | 36 +++++-------------- 5 files changed, 20 insertions(+), 31 deletions(-) diff --git a/src/main/java/com/muyu/center/common/gateway/cache/GatewayZSetNodeCache.java b/src/main/java/com/muyu/center/common/gateway/cache/GatewayZSetNodeCache.java index 926c208..5ad57a0 100644 --- a/src/main/java/com/muyu/center/common/gateway/cache/GatewayZSetNodeCache.java +++ b/src/main/java/com/muyu/center/common/gateway/cache/GatewayZSetNodeCache.java @@ -91,10 +91,12 @@ public class GatewayZSetNodeCache extends GatewayCacheAbs { } - public Map get2(String ip) { - return redisService.getCacheZSetScore(encode(gatewayZSetCount) + ip); + public void increment(String ip,Double score) { + redisService.incrementScore(encode(gatewayZSetCount) , ip,score); } + + } diff --git a/src/main/java/com/muyu/center/common/redis/service/RedisService.java b/src/main/java/com/muyu/center/common/redis/service/RedisService.java index 3e2c101..e4e7acc 100644 --- a/src/main/java/com/muyu/center/common/redis/service/RedisService.java +++ b/src/main/java/com/muyu/center/common/redis/service/RedisService.java @@ -206,6 +206,11 @@ public class RedisService return memberScores; } + public Double incrementScore(final String key,final T value,final Double score) { + return redisTemplate.opsForZSet().incrementScore(key,value,score); + } + + diff --git a/src/main/java/com/muyu/center/mq/Consumer.java b/src/main/java/com/muyu/center/mq/Consumer.java index 483b03a..a644f50 100644 --- a/src/main/java/com/muyu/center/mq/Consumer.java +++ b/src/main/java/com/muyu/center/mq/Consumer.java @@ -118,6 +118,7 @@ public class Consumer { Thread.sleep(5000); + //刷新负载均衡 gatewayLoadService.refreshLoad(); diff --git a/src/main/java/com/muyu/center/service/impl/GatewayLoadServiceImpl.java b/src/main/java/com/muyu/center/service/impl/GatewayLoadServiceImpl.java index 19246ac..c215fec 100644 --- a/src/main/java/com/muyu/center/service/impl/GatewayLoadServiceImpl.java +++ b/src/main/java/com/muyu/center/service/impl/GatewayLoadServiceImpl.java @@ -264,8 +264,7 @@ public class GatewayLoadServiceImpl implements GatewayLoadService { int connectSize = mqttInfo.getIntValue("connectSize"); log.info("服务器:"+ip+"-车辆连接数:"+connectSize); - // 更新Redis中服务器的连接数ZSet数据类型 - gatewayZSetNodeCache.put(ip,connectSize); + } catch (Exception e) { e.printStackTrace(); } diff --git a/src/main/java/com/muyu/center/service/impl/GatewayVehicleServiceImpl.java b/src/main/java/com/muyu/center/service/impl/GatewayVehicleServiceImpl.java index b2cbabf..8de939a 100644 --- a/src/main/java/com/muyu/center/service/impl/GatewayVehicleServiceImpl.java +++ b/src/main/java/com/muyu/center/service/impl/GatewayVehicleServiceImpl.java @@ -2,6 +2,7 @@ package com.muyu.center.service.impl; import com.muyu.center.common.domain.WorkGatewayNode; import com.muyu.center.common.gateway.cache.GatewayVehicleNode; +import com.muyu.center.service.GatewayLoadService; import com.muyu.center.service.GatewayVehicleService; import com.muyu.center.common.domain.Result; import com.muyu.center.common.gateway.cache.GatewayNodeSetVinCache; @@ -40,6 +41,9 @@ public class GatewayVehicleServiceImpl implements GatewayVehicleService { private final GatewayVehicleNode gatewayVehicleNode; + + private final GatewayLoadService gatewayLoadService; + @Autowired private RestTemplate restTemplate; @@ -53,37 +57,15 @@ public class GatewayVehicleServiceImpl implements GatewayVehicleService { @Override public Result topLine(String vin) { - String url="http://127.0.0.1:9010/gateway/load/node"; + String ip = gatewayLoadService.loadNode(); - Result data = restTemplate.getForObject(url, Result.class); + gatewayVehicleNode.put(vin,ip); - gatewayVehicleNode.put(vin,data.getData().toString()); + gatewayNodeSetVinCache.put(ip,vin); - gatewayNodeSetVinCache.put(data.getData().toString(),vin); + gatewayZSetNodeCache.increment(ip,1.0); -//// Map map = gatewayZSetNodeCache.get2(data.getData().toString()); -// Set zSet = gatewayZSetNodeCache.redisService.getCacheZSet("gateway:zSet:count" + data.getData()); -// Map map = gatewayZSetNodeCache.redisService.getCacheZSetScore("gateway:zSet:count" + data.getData()); - - - -// Map map = new HashMap<>(); -// ZSetOperations zSetOperations =gatewayZSetNodeCache.redisService. redisTemplate.opsForZSet(); -// // 构建一个 Map 用于存储成员和分数的对应关系 -// zSetOperations.rangeWithScores("gateway:zSet:count" + data.getData(), 0, -1).forEach(tuple -> { -// map.put(tuple.getValue(), tuple.getScore()); -// }); -// -// System.out.println("------------------------------------------"); -// Double aDouble = map.get(data.getData()); -// System.out.println(map); -// System.out.println(aDouble); -// System.out.println("------------------------------------------"); -// -// -// gatewayZSetNodeCache.put(data.getData().toString(),1); - - return Result.success(data.getData().toString()); + return Result.success(ip); }