mirror of
https://gitee.com/wujiawei1207537021/wu-lazy-cloud-network.git
synced 2025-06-16 18:35:05 +08:00
【fix】添加虚拟路由管理
This commit is contained in:
@ -1,5 +1,7 @@
|
||||
package org.framework.lazy.cloud.network.heartbeat.protocol.route;
|
||||
|
||||
import org.wu.framework.core.NormalUsedString;
|
||||
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
/**
|
||||
@ -12,11 +14,16 @@ public class RouteContext {
|
||||
private static final ConcurrentHashMap<String, ProxyRoute> m = new ConcurrentHashMap<>();
|
||||
|
||||
|
||||
/**
|
||||
* 设置路由
|
||||
*
|
||||
* @param route 路由
|
||||
*/
|
||||
public static void setRoute(ProxyRoute route) {
|
||||
RouteType routeType = route.getRouteType();
|
||||
String virtualIp = route.getVirtualIp();
|
||||
String virtualPort = route.getVirtualPort();
|
||||
String key = virtualIp + ":" + virtualPort + routeType;
|
||||
String key = virtualIp + ":" + virtualPort + "_" + routeType;
|
||||
if (m.containsKey(key)) {
|
||||
return;
|
||||
}
|
||||
@ -24,12 +31,32 @@ public class RouteContext {
|
||||
m.put(key, route);
|
||||
}
|
||||
|
||||
public static ProxyRoute getRoute(String ip, String port) {
|
||||
/**
|
||||
* 获取路由
|
||||
*
|
||||
* @param virtualIp 原始ip
|
||||
* @param virtualPort 原始端口
|
||||
*/
|
||||
public static ProxyRoute getRoute(String virtualIp, String virtualPort) {
|
||||
ProxyRoute p = m.values()
|
||||
.stream()
|
||||
.filter(route -> route.getVirtualIp().equals(ip) && (route.getVirtualPort().equals(port) || route.getVirtualPort().equals("ALL")))
|
||||
.filter(route -> route.getVirtualIp().equals(virtualIp)
|
||||
&&
|
||||
(route.getVirtualPort().equals(virtualPort) || route.getVirtualPort().equals(NormalUsedString.ASTERISK)))
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
return p;
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除路由
|
||||
*
|
||||
* @param virtualIp 原始ip
|
||||
* @param virtualPort 原始端口
|
||||
*/
|
||||
public static void removeRoute(String virtualIp, String virtualPort, RouteType routeType) {
|
||||
String key = virtualIp + ":" + virtualPort + "_" + routeType;
|
||||
m.remove(key);
|
||||
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user