You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@druid.apache.org by fj...@apache.org on 2018/12/16 23:18:17 UTC

[incubator-druid] branch master updated: Use @Coordinator leader client in CoordinatorRuleManager (#6729)

This is an automated email from the ASF dual-hosted git repository.

fjy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-druid.git


The following commit(s) were added to refs/heads/master by this push:
     new c713116  Use @Coordinator leader client in CoordinatorRuleManager (#6729)
c713116 is described below

commit c713116a75fb13acdeaddf9e02b3e62f12ebda7d
Author: Jonathan Wei <jo...@users.noreply.github.com>
AuthorDate: Sun Dec 16 15:18:09 2018 -0800

    Use @Coordinator leader client in CoordinatorRuleManager (#6729)
---
 docs/content/development/router.md                 |  2 --
 .../apache/druid/server/http/RulesResource.java    |  2 ++
 .../server/router/CoordinatorRuleManager.java      |  6 ++--
 .../druid/server/router/TieredBrokerConfig.java    | 18 ------------
 .../main/java/org/apache/druid/cli/CliRouter.java  | 34 ----------------------
 5 files changed, 6 insertions(+), 56 deletions(-)

diff --git a/docs/content/development/router.md b/docs/content/development/router.md
index 4c27b78..79592ca 100644
--- a/docs/content/development/router.md
+++ b/docs/content/development/router.md
@@ -90,8 +90,6 @@ The router module uses several of the default modules in [Configuration](../conf
 |`druid.router.defaultBrokerServiceName`|Any string.|The default broker to connect to in case service discovery fails.|druid/broker|
 |`druid.router.tierToBrokerMap`|An ordered JSON map of tiers to broker names. The priority of brokers is based on the ordering.|Queries for a certain tier of data are routed to their appropriate broker.|{"_default_tier": "<defaultBrokerServiceName>"}|
 |`druid.router.defaultRule`|Any string.|The default rule for all datasources.|"_default"|
-|`druid.router.rulesEndpoint`|Any string.|The coordinator endpoint to extract rules from.|"/druid/coordinator/v1/rules"|
-|`druid.router.coordinatorServiceName`|Any string.|The service discovery name of the coordinator.|druid/coordinator|
 |`druid.router.pollPeriod`|Any ISO8601 duration.|How often to poll for new rules.|PT1M|
 |`druid.router.strategies`|An ordered JSON array of objects.|All custom strategies to use for routing.|[{"type":"timeBoundary"},{"type":"priority"}]|
 |`druid.router.avatica.balancer.type`|String representing an AvaticaConnectionBalancer name|Class to use for balancing Avatica queries across brokers|rendezvousHash|
diff --git a/server/src/main/java/org/apache/druid/server/http/RulesResource.java b/server/src/main/java/org/apache/druid/server/http/RulesResource.java
index 10b3f5e..fdb5896 100644
--- a/server/src/main/java/org/apache/druid/server/http/RulesResource.java
+++ b/server/src/main/java/org/apache/druid/server/http/RulesResource.java
@@ -52,6 +52,8 @@ import java.util.List;
 @Path("/druid/coordinator/v1/rules")
 public class RulesResource
 {
+  public static final String RULES_ENDPOINT = "/druid/coordinator/v1/rules";
+
   private final MetadataRuleManager databaseRuleManager;
   private final AuditManager auditManager;
 
diff --git a/server/src/main/java/org/apache/druid/server/router/CoordinatorRuleManager.java b/server/src/main/java/org/apache/druid/server/router/CoordinatorRuleManager.java
index afc1a64..1e9ea81 100644
--- a/server/src/main/java/org/apache/druid/server/router/CoordinatorRuleManager.java
+++ b/server/src/main/java/org/apache/druid/server/router/CoordinatorRuleManager.java
@@ -23,6 +23,7 @@ import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.common.base.Supplier;
 import com.google.inject.Inject;
+import org.apache.druid.client.coordinator.Coordinator;
 import org.apache.druid.discovery.DruidLeaderClient;
 import org.apache.druid.guice.ManageLifecycle;
 import org.apache.druid.guice.annotations.Json;
@@ -34,6 +35,7 @@ import org.apache.druid.java.util.common.lifecycle.LifecycleStop;
 import org.apache.druid.java.util.common.logger.Logger;
 import org.apache.druid.java.util.http.client.response.FullResponseHolder;
 import org.apache.druid.server.coordinator.rules.Rule;
+import org.apache.druid.server.http.RulesResource;
 import org.jboss.netty.handler.codec.http.HttpMethod;
 import org.jboss.netty.handler.codec.http.HttpResponseStatus;
 import org.joda.time.Duration;
@@ -69,7 +71,7 @@ public class CoordinatorRuleManager
   public CoordinatorRuleManager(
       @Json ObjectMapper jsonMapper,
       Supplier<TieredBrokerConfig> config,
-      DruidLeaderClient druidLeaderClient
+      @Coordinator DruidLeaderClient druidLeaderClient
   )
   {
     this.jsonMapper = jsonMapper;
@@ -135,7 +137,7 @@ public class CoordinatorRuleManager
   {
     try {
       FullResponseHolder response = druidLeaderClient.go(
-          druidLeaderClient.makeRequest(HttpMethod.GET, config.get().getRulesEndpoint())
+          druidLeaderClient.makeRequest(HttpMethod.GET, RulesResource.RULES_ENDPOINT)
       );
 
       if (!response.getStatus().equals(HttpResponseStatus.OK)) {
diff --git a/server/src/main/java/org/apache/druid/server/router/TieredBrokerConfig.java b/server/src/main/java/org/apache/druid/server/router/TieredBrokerConfig.java
index 59aa89d..9d3a1f9 100644
--- a/server/src/main/java/org/apache/druid/server/router/TieredBrokerConfig.java
+++ b/server/src/main/java/org/apache/druid/server/router/TieredBrokerConfig.java
@@ -50,14 +50,6 @@ public class TieredBrokerConfig
 
   @JsonProperty
   @NotNull
-  private String rulesEndpoint = "/druid/coordinator/v1/rules";
-
-  @JsonProperty
-  @NotNull
-  private String coordinatorServiceName = DEFAULT_COORDINATOR_SERVICE_NAME;
-
-  @JsonProperty
-  @NotNull
   private Period pollPeriod = new Period("PT1M");
 
   @JsonProperty
@@ -87,16 +79,6 @@ public class TieredBrokerConfig
     return defaultRule;
   }
 
-  public String getRulesEndpoint()
-  {
-    return rulesEndpoint;
-  }
-
-  public String getCoordinatorServiceName()
-  {
-    return coordinatorServiceName;
-  }
-
   public Period getPollPeriod()
   {
     return pollPeriod;
diff --git a/services/src/main/java/org/apache/druid/cli/CliRouter.java b/services/src/main/java/org/apache/druid/cli/CliRouter.java
index 8c0d83e..3f80faf 100644
--- a/services/src/main/java/org/apache/druid/cli/CliRouter.java
+++ b/services/src/main/java/org/apache/druid/cli/CliRouter.java
@@ -23,15 +23,10 @@ import com.google.common.collect.ImmutableList;
 import com.google.inject.Binder;
 import com.google.inject.Key;
 import com.google.inject.Module;
-import com.google.inject.Provides;
 import com.google.inject.TypeLiteral;
 import com.google.inject.name.Names;
 import io.airlift.airline.Command;
 import org.apache.druid.curator.discovery.DiscoveryModule;
-import org.apache.druid.curator.discovery.ServerDiscoveryFactory;
-import org.apache.druid.curator.discovery.ServerDiscoverySelector;
-import org.apache.druid.discovery.DruidLeaderClient;
-import org.apache.druid.discovery.DruidNodeDiscoveryProvider;
 import org.apache.druid.discovery.NodeType;
 import org.apache.druid.guice.Jerseys;
 import org.apache.druid.guice.JsonConfigProvider;
@@ -41,11 +36,9 @@ import org.apache.druid.guice.ManageLifecycle;
 import org.apache.druid.guice.QueryRunnerFactoryModule;
 import org.apache.druid.guice.QueryableModule;
 import org.apache.druid.guice.RouterProcessingModule;
-import org.apache.druid.guice.annotations.EscalatedGlobal;
 import org.apache.druid.guice.annotations.Self;
 import org.apache.druid.guice.http.JettyHttpClientModule;
 import org.apache.druid.java.util.common.logger.Logger;
-import org.apache.druid.java.util.http.client.HttpClient;
 import org.apache.druid.query.lookup.LookupModule;
 import org.apache.druid.server.AsyncQueryForwardingServlet;
 import org.apache.druid.server.http.RouterResource;
@@ -127,33 +120,6 @@ public class CliRouter extends ServerRunnable
                 .in(LazySingleton.class);
             LifecycleModule.registerKey(binder, Key.get(DiscoverySideEffectsProvider.Child.class));
           }
-
-          @Provides
-          @ManageLifecycle
-          public ServerDiscoverySelector getCoordinatorServerDiscoverySelector(
-              TieredBrokerConfig config,
-              ServerDiscoveryFactory factory
-          )
-          {
-            return factory.createSelector(config.getCoordinatorServiceName());
-          }
-
-          @Provides
-          @ManageLifecycle
-          public DruidLeaderClient getLeaderHttpClient(
-              @EscalatedGlobal HttpClient httpClient,
-              DruidNodeDiscoveryProvider druidNodeDiscoveryProvider,
-              ServerDiscoverySelector serverDiscoverySelector
-          )
-          {
-            return new DruidLeaderClient(
-                httpClient,
-                druidNodeDiscoveryProvider,
-                NodeType.COORDINATOR,
-                "/druid/coordinator/v1/leader",
-                serverDiscoverySelector
-            );
-          }
         },
         new LookupModule()
     );


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@druid.apache.org
For additional commands, e-mail: commits-help@druid.apache.org