路由修改

This commit is contained in:
tanghc
2019-03-19 15:02:13 +08:00
parent 48b0ed87a1
commit eeeb0525c6
3 changed files with 17 additions and 9 deletions

View File

@@ -1,6 +1,6 @@
package com.gitee.sop.gatewaycommon.gateway.filter;
import com.gitee.sop.gatewaycommon.util.RoutePathUtil;
import com.gitee.sop.gatewaycommon.util.RouteUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
import org.springframework.cloud.gateway.filter.GlobalFilter;
@@ -47,7 +47,7 @@ public class LoadBalancerClientExtFilter implements GlobalFilter, Ordered {
protected String findPath(Route route) {
URI routeUri = route.getUri();
String uriStr = routeUri.toString();
return RoutePathUtil.findPath(uriStr);
return RouteUtil.findPath(uriStr);
}
}

View File

@@ -1,16 +1,14 @@
package com.gitee.sop.gatewaycommon.util;
import org.springframework.cloud.gateway.route.Route;
import java.net.URI;
/**
* @author tanghc
*/
public class RoutePathUtil {
public class RouteUtil {
public static final String REGEX = "\\#";
public static final String PROTOCOL_LOAD_BALANCE = "lb://";
public static String findPath(String uri) {
// #后面是对应的path
String[] uriArr = uri.split(REGEX);
@@ -20,4 +18,12 @@ public class RoutePathUtil {
return null;
}
}
public static String getZuulLocation(String uri) {
if (uri.toLowerCase().startsWith(PROTOCOL_LOAD_BALANCE)) {
return uri.substring(PROTOCOL_LOAD_BALANCE.length());
}
return uri;
}
}

View File

@@ -2,7 +2,7 @@ package com.gitee.sop.gatewaycommon.zuul.route;
import com.gitee.sop.gatewaycommon.manager.BaseRouteManager;
import com.gitee.sop.gatewaycommon.manager.RouteRepository;
import com.gitee.sop.gatewaycommon.util.RoutePathUtil;
import com.gitee.sop.gatewaycommon.util.RouteUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.netflix.zuul.filters.Route;
import org.springframework.core.env.Environment;
@@ -31,7 +31,9 @@ public class ZuulZookeeperRouteManager extends BaseRouteManager<ZuulServiceRoute
@Override
protected ZuulTargetRoute buildRouteDefinition(ZuulServiceRouteInfo serviceRouteInfo, ZuulRouteDefinition routeDefinition) {
Route route = new Route(routeDefinition.getId(), routeDefinition.getPath(), serviceRouteInfo.getServiceId(), null, false, null);
// 路由重试
String retry = environment.getProperty("sop.route.retry", "true");
Route route = new Route(routeDefinition.getId(), routeDefinition.getPath(), RouteUtil.getZuulLocation(routeDefinition.getUri()), null, Boolean.valueOf(retry), null);
return new ZuulTargetRoute(serviceRouteInfo, routeDefinition, route);
}
}