。ここで私が何をしたかのサンプルです:
public class RouteLocator extends SimpleRouteLocator implements RefreshableRouteLocator {
@Autowired
private ZuulHandlerMapping zuulHandlerMapping;
private Map<String, ZuulRoute> routes = new ConcurrentHashMap<>();
public RouteLocator(TaskExecutor executor, String servletPath, ZuulProperties properties) {
super(serveletPath, properties);
executor.execute(new ServiceWatcher());
}
@Override
public Map<String, ZuulRoute> locateRoutes() {
return this.routes;
}
@Override void refresh() {
this.doRefresh();
}
private class ServiceWatcher implements Runnable {
@Override
public void run(){
// Add your routes to this.routes here.
ZuulRoute route1 = new ZuulRoute("/somePath", "http://someResourceUrl:8080");
ZuulRoute route2 = new ZuulRoute("/someOtherPath", "some-service-id");
routes.put("/somePath", route1);
routes.put("/someOtherPath", route2);
zuulHandlerMapping.setDirty(true);
}
}
}
(私はOpenShift環境でZuulを実行していますので)ServiceWatcher
がKubernetes Watcher
周りServiceWatcher
ラップ私の実際のコードであるため呼び出されるとき、私は正確にはわかりません、しかし、これは始める方法の要点を提供するはずです。
こんにちは@Gerardo、あなたはすでに問題を解決しましたか?ありがとう –