You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@seatunnel.apache.org by ga...@apache.org on 2022/10/20 08:44:53 UTC

[incubator-seatunnel] branch dev updated: [Feature][Connector-V2-Clickhouse] Clickhouse Source random use host when config multi-host (#3108)

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

gaojun2048 pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-seatunnel.git


The following commit(s) were added to refs/heads/dev by this push:
     new c9583b7f6 [Feature][Connector-V2-Clickhouse] Clickhouse Source random use host when config multi-host (#3108)
c9583b7f6 is described below

commit c9583b7f6397d393241352bc1f6b5019a4f8ef24
Author: john <we...@gmail.com>
AuthorDate: Thu Oct 20 16:44:45 2022 +0800

    [Feature][Connector-V2-Clickhouse] Clickhouse Source random use host when config multi-host (#3108)
---
 .../connectors/seatunnel/clickhouse/source/ClickhouseSource.java    | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/seatunnel-connectors-v2/connector-clickhouse/src/main/java/org/apache/seatunnel/connectors/seatunnel/clickhouse/source/ClickhouseSource.java b/seatunnel-connectors-v2/connector-clickhouse/src/main/java/org/apache/seatunnel/connectors/seatunnel/clickhouse/source/ClickhouseSource.java
index 4a4b638d9..8706fe059 100644
--- a/seatunnel-connectors-v2/connector-clickhouse/src/main/java/org/apache/seatunnel/connectors/seatunnel/clickhouse/source/ClickhouseSource.java
+++ b/seatunnel-connectors-v2/connector-clickhouse/src/main/java/org/apache/seatunnel/connectors/seatunnel/clickhouse/source/ClickhouseSource.java
@@ -48,6 +48,7 @@ import com.clickhouse.client.ClickHouseResponse;
 import com.google.auto.service.AutoService;
 
 import java.util.List;
+import java.util.concurrent.ThreadLocalRandom;
 
 @AutoService(SeaTunnelSource.class)
 public class ClickhouseSource implements SeaTunnelSource<SeaTunnelRow, ClickhouseSourceSplit, ClickhouseSourceState> {
@@ -71,9 +72,10 @@ public class ClickhouseSource implements SeaTunnelSource<SeaTunnelRow, Clickhous
                 config.getString(USERNAME), config.getString(PASSWORD));
 
         sql = config.getString(SQL);
-        try (ClickHouseClient client = ClickHouseClient.newInstance(servers.get(0).getProtocol());
+        ClickHouseNode currentServer = servers.get(ThreadLocalRandom.current().nextInt(servers.size()));
+        try (ClickHouseClient client = ClickHouseClient.newInstance(currentServer.getProtocol());
              ClickHouseResponse response =
-                     client.connect(servers.get(0)).format(ClickHouseFormat.RowBinaryWithNamesAndTypes)
+                     client.connect(currentServer).format(ClickHouseFormat.RowBinaryWithNamesAndTypes)
                              .query(modifySQLToLimit1(config.getString(SQL))).executeAndWait()) {
 
             int columnSize = response.getColumns().size();