我正在设计一些机器人农场,每个用户都有自己的机器人,我想实现以下目标
到目前为止,我看到了根据路径重定向到特定服务的示例。但根据登录用户的机器人IP动态执行此操作是否可行?
答案 0 :(得分:0)
我能够通过编写以下过滤器来实现它:
@Override
public String filterType() {
return PRE_TYPE;
}
@Override
public int filterOrder() {
return PRE_DECORATION_FILTER_ORDER + 1;
}
public Object run() {
RequestContext ctx = getCurrentContext();
ctx.put(REQUEST_URI_KEY, "/test/");
try {
if (new Random().nextInt(10) > 5) {
ctx.setRouteHost(new URL("http://192.168.1.14:8088"));
} else {
ctx.setRouteHost(new URL("http://192.168.1.14:8089"));
}
} catch (MalformedURLException e) {
log.error("", e);
}
return null;
}
我的application.properties看起来像这样:
spring.application.name=zuul-server
server.port=8080
management.endpoints.web.exposure.include=*
zuul.routes.test.path=/test/**