mirror of https://github.com/apache/druid.git
fix redirection issues with master and overlord
This commit is contained in:
parent
36756e611b
commit
0998d835b0
|
@ -32,10 +32,10 @@ import javax.ws.rs.Path;
|
|||
/**
|
||||
*/
|
||||
@Path("/static/info")
|
||||
public class BackwardsCompatiableInfoResource extends InfoResource
|
||||
public class BackwardsCompatibleInfoResource extends InfoResource
|
||||
{
|
||||
@Inject
|
||||
public BackwardsCompatiableInfoResource(
|
||||
public BackwardsCompatibleInfoResource(
|
||||
DruidCoordinator coordinator,
|
||||
InventoryView serverInventoryView,
|
||||
DatabaseSegmentManager databaseSegmentManager,
|
|
@ -32,9 +32,6 @@
|
|||
|
||||
<body>
|
||||
<div class="container">
|
||||
<div>
|
||||
<h2>Druid Version: ${pom.version} Druid API Version: ${druid.api.version}</h2>
|
||||
</div>
|
||||
<div>
|
||||
<a href="view.html">View Information about the Cluster</a>
|
||||
</div>
|
||||
|
|
|
@ -45,14 +45,13 @@ import io.druid.guice.annotations.Self;
|
|||
import io.druid.server.coordinator.DruidCoordinator;
|
||||
import io.druid.server.coordinator.DruidCoordinatorConfig;
|
||||
import io.druid.server.coordinator.LoadQueueTaskMaster;
|
||||
import io.druid.server.http.BackwardsCompatiableInfoResource;
|
||||
import io.druid.server.http.BackwardsCompatibleInfoResource;
|
||||
import io.druid.server.http.CoordinatorDynamicConfigsResource;
|
||||
import io.druid.server.http.CoordinatorRedirectInfo;
|
||||
import io.druid.server.http.CoordinatorResource;
|
||||
import io.druid.server.http.InfoResource;
|
||||
import io.druid.server.http.RedirectFilter;
|
||||
import io.druid.server.http.RedirectInfo;
|
||||
import io.druid.server.http.RedirectServlet;
|
||||
import io.druid.server.initialization.JettyServerInitializer;
|
||||
import org.apache.curator.framework.CuratorFramework;
|
||||
import org.eclipse.jetty.server.Server;
|
||||
|
@ -88,8 +87,8 @@ public class CliCoordinator extends ServerRunnable
|
|||
JsonConfigProvider.bind(binder, "druid.manager.segments", DatabaseSegmentManagerConfig.class);
|
||||
JsonConfigProvider.bind(binder, "druid.manager.rules", DatabaseRuleManagerConfig.class);
|
||||
|
||||
binder.bind(RedirectServlet.class).in(LazySingleton.class);
|
||||
binder.bind(RedirectFilter.class).in(LazySingleton.class);
|
||||
binder.bind(RedirectInfo.class).to(CoordinatorRedirectInfo.class).in(LazySingleton.class);
|
||||
|
||||
binder.bind(DatabaseSegmentManager.class)
|
||||
.toProvider(DatabaseSegmentManagerProvider.class)
|
||||
|
@ -101,15 +100,13 @@ public class CliCoordinator extends ServerRunnable
|
|||
|
||||
binder.bind(IndexingServiceClient.class).in(LazySingleton.class);
|
||||
|
||||
binder.bind(RedirectInfo.class).to(CoordinatorRedirectInfo.class).in(LazySingleton.class);
|
||||
|
||||
binder.bind(DruidCoordinator.class);
|
||||
|
||||
LifecycleModule.register(binder, DruidCoordinator.class);
|
||||
DiscoveryModule.register(binder, Self.class);
|
||||
|
||||
binder.bind(JettyServerInitializer.class).toInstance(new CoordinatorJettyServerInitializer());
|
||||
Jerseys.addResource(binder, BackwardsCompatiableInfoResource.class);
|
||||
Jerseys.addResource(binder, BackwardsCompatibleInfoResource.class);
|
||||
Jerseys.addResource(binder, InfoResource.class);
|
||||
Jerseys.addResource(binder, CoordinatorResource.class);
|
||||
Jerseys.addResource(binder, CoordinatorDynamicConfigsResource.class);
|
||||
|
|
|
@ -120,7 +120,11 @@ public class CliOverlord extends ServerRunnable
|
|||
binder.bind(TaskMaster.class).in(ManageLifecycle.class);
|
||||
|
||||
binder.bind(TaskLogStreamer.class).to(SwitchingTaskLogStreamer.class).in(LazySingleton.class);
|
||||
binder.bind(new TypeLiteral<List<TaskLogStreamer>>(){})
|
||||
binder.bind(
|
||||
new TypeLiteral<List<TaskLogStreamer>>()
|
||||
{
|
||||
}
|
||||
)
|
||||
.toProvider(
|
||||
new ListProvider<TaskLogStreamer>()
|
||||
.add(TaskRunnerTaskLogStreamer.class)
|
||||
|
@ -159,7 +163,10 @@ public class CliOverlord extends ServerRunnable
|
|||
PolyBind.createChoice(
|
||||
binder, "druid.indexer.storage.type", Key.get(TaskStorage.class), Key.get(HeapMemoryTaskStorage.class)
|
||||
);
|
||||
final MapBinder<String, TaskStorage> storageBinder = PolyBind.optionBinder(binder, Key.get(TaskStorage.class));
|
||||
final MapBinder<String, TaskStorage> storageBinder = PolyBind.optionBinder(
|
||||
binder,
|
||||
Key.get(TaskStorage.class)
|
||||
);
|
||||
|
||||
storageBinder.addBinding("local").to(HeapMemoryTaskStorage.class);
|
||||
binder.bind(HeapMemoryTaskStorage.class).in(LazySingleton.class);
|
||||
|
@ -178,7 +185,10 @@ public class CliOverlord extends ServerRunnable
|
|||
Key.get(TaskRunnerFactory.class),
|
||||
Key.get(ForkingTaskRunnerFactory.class)
|
||||
);
|
||||
final MapBinder<String, TaskRunnerFactory> biddy = PolyBind.optionBinder(binder, Key.get(TaskRunnerFactory.class));
|
||||
final MapBinder<String, TaskRunnerFactory> biddy = PolyBind.optionBinder(
|
||||
binder,
|
||||
Key.get(TaskRunnerFactory.class)
|
||||
);
|
||||
|
||||
IndexingServiceModuleHelper.configureTaskRunnerConfigs(binder);
|
||||
biddy.addBinding("local").to(ForkingTaskRunnerFactory.class);
|
||||
|
@ -191,7 +201,9 @@ public class CliOverlord extends ServerRunnable
|
|||
private void configureAutoscale(Binder binder)
|
||||
{
|
||||
JsonConfigProvider.bind(binder, "druid.indexer.autoscale", ResourceManagementSchedulerConfig.class);
|
||||
binder.bind(ResourceManagementStrategy.class).to(SimpleResourceManagementStrategy.class).in(LazySingleton.class);
|
||||
binder.bind(ResourceManagementStrategy.class)
|
||||
.to(SimpleResourceManagementStrategy.class)
|
||||
.in(LazySingleton.class);
|
||||
|
||||
JacksonConfigProvider.bind(binder, WorkerSetupData.CONFIG_KEY, WorkerSetupData.class, null);
|
||||
|
||||
|
@ -220,13 +232,17 @@ public class CliOverlord extends ServerRunnable
|
|||
}
|
||||
|
||||
/**
|
||||
*/
|
||||
*/
|
||||
private static class OverlordJettyServerInitializer implements JettyServerInitializer
|
||||
{
|
||||
@Override
|
||||
public void initialize(Server server, Injector injector)
|
||||
{
|
||||
ResourceHandler resourceHandler = new ResourceHandler();
|
||||
final ServletContextHandler redirect = new ServletContextHandler(ServletContextHandler.SESSIONS);
|
||||
redirect.setContextPath("/");
|
||||
redirect.addFilter(new FilterHolder(injector.getInstance(RedirectFilter.class)), "/*", null);
|
||||
|
||||
final ResourceHandler resourceHandler = new ResourceHandler();
|
||||
resourceHandler.setBaseResource(
|
||||
new ResourceCollection(
|
||||
new String[]{
|
||||
|
@ -240,12 +256,11 @@ public class CliOverlord extends ServerRunnable
|
|||
root.setContextPath("/");
|
||||
|
||||
HandlerList handlerList = new HandlerList();
|
||||
handlerList.setHandlers(new Handler[]{resourceHandler, root, new DefaultHandler()});
|
||||
handlerList.setHandlers(new Handler[]{redirect, resourceHandler, root, new DefaultHandler()});
|
||||
server.setHandler(handlerList);
|
||||
|
||||
root.addServlet(new ServletHolder(new DefaultServlet()), "/*");
|
||||
root.addFilter(GzipFilter.class, "/*", null);
|
||||
root.addFilter(new FilterHolder(injector.getInstance(RedirectFilter.class)), "/*", null);
|
||||
root.addFilter(GuiceFilter.class, "/*", null);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -36,25 +36,28 @@ import org.eclipse.jetty.servlet.ServletHolder;
|
|||
import org.eclipse.jetty.servlets.GzipFilter;
|
||||
|
||||
/**
|
||||
*/
|
||||
*/
|
||||
class CoordinatorJettyServerInitializer implements JettyServerInitializer
|
||||
{
|
||||
@Override
|
||||
public void initialize(Server server, Injector injector)
|
||||
{
|
||||
ResourceHandler resourceHandler = new ResourceHandler();
|
||||
final ServletContextHandler redirect = new ServletContextHandler(ServletContextHandler.SESSIONS);
|
||||
redirect.setContextPath("/");
|
||||
redirect.addFilter(new FilterHolder(injector.getInstance(RedirectFilter.class)), "/*", null);
|
||||
|
||||
final ResourceHandler resourceHandler = new ResourceHandler();
|
||||
resourceHandler.setResourceBase(DruidCoordinator.class.getClassLoader().getResource("static").toExternalForm());
|
||||
|
||||
final ServletContextHandler root = new ServletContextHandler(ServletContextHandler.SESSIONS);
|
||||
root.setContextPath("/");
|
||||
|
||||
HandlerList handlerList = new HandlerList();
|
||||
handlerList.setHandlers(new Handler[]{resourceHandler, root, new DefaultHandler()});
|
||||
handlerList.setHandlers(new Handler[]{redirect, resourceHandler, root, new DefaultHandler()});
|
||||
server.setHandler(handlerList);
|
||||
|
||||
root.addServlet(new ServletHolder(new DefaultServlet()), "/*");
|
||||
root.addFilter(GzipFilter.class, "/*", null);
|
||||
root.addFilter(new FilterHolder(injector.getInstance(RedirectFilter.class)), "/*", null);
|
||||
root.addFilter(GuiceFilter.class, "/*", null);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue