Skip to content

Commit bef0cb8

Browse files
committed
Use connection string instead of single host port pair
Signed-off-by: Khor Shu Heng <khor.heng@gojek.com>
1 parent 2d99ac9 commit bef0cb8

File tree

4 files changed

+35
-19
lines changed

4 files changed

+35
-19
lines changed

serving/src/main/java/feast/serving/config/FeastProperties.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -319,8 +319,7 @@ public BigTableStoreConfig getBigtableConfig() {
319319

320320
public CassandraStoreConfig getCassandraConfig() {
321321
return new CassandraStoreConfig(
322-
this.config.get("host"),
323-
Integer.valueOf(this.config.get("port")),
322+
this.config.get("connection_string"),
324323
this.config.get("data_center"),
325324
this.config.get("keyspace"));
326325
}

serving/src/main/java/feast/serving/config/ServingServiceConfigV2.java

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@
3232
import io.opentracing.Tracer;
3333
import java.io.IOException;
3434
import java.net.InetSocketAddress;
35+
import java.util.Arrays;
36+
import java.util.List;
37+
import java.util.stream.Collectors;
3538
import org.slf4j.Logger;
3639
import org.springframework.beans.factory.annotation.Autowired;
3740
import org.springframework.context.ApplicationContext;
@@ -84,14 +87,24 @@ public ServingServiceV2 servingServiceV2(
8487
break;
8588
case CASSANDRA:
8689
CassandraStoreConfig config = feastProperties.getActiveStore().getCassandraConfig();
87-
String host = config.getHost();
88-
Integer port = config.getPort();
90+
String connectionString = config.getConnectionString();
8991
String dataCenter = config.getDataCenter();
9092
String keySpace = config.getKeySpace();
9193

94+
List<InetSocketAddress> contactPoints =
95+
Arrays.stream(connectionString.split(","))
96+
.map(String::trim)
97+
.map(cs -> cs.split(":"))
98+
.map(
99+
hostPort -> {
100+
int port = hostPort.length > 1 ? Integer.parseInt(hostPort[1]) : 9042;
101+
return new InetSocketAddress(hostPort[0], port);
102+
})
103+
.collect(Collectors.toList());
104+
92105
CqlSession session =
93106
new CqlSessionBuilder()
94-
.addContactPoint(new InetSocketAddress(host, port))
107+
.addContactPoints(contactPoints)
95108
.withLocalDatacenter(dataCenter)
96109
.withKeyspace(keySpace)
97110
.build();

serving/src/test/java/feast/serving/it/BaseAuthIT.java

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,6 @@ static void properties(DynamicPropertyRegistry registry) {
7979
}
8080
});
8181
registry.add("feast.stores[0].config.port", () -> REDIS_PORT);
82-
registry.add("feast.stores[0].subscriptions[0].name", () -> "*");
83-
registry.add("feast.stores[0].subscriptions[0].project", () -> "*");
8482

8583
registry.add("feast.stores[1].name", () -> "bigtable");
8684
registry.add("feast.stores[1].type", () -> "BIGTABLE");
@@ -99,7 +97,19 @@ static void properties(DynamicPropertyRegistry registry) {
9997
return "";
10098
}
10199
});
102-
registry.add("feast.stores[2].config.port", () -> CASSANDRA_PORT);
100+
101+
registry.add(
102+
"feast.stores[2].config.connection_string",
103+
() -> {
104+
String hostAddress = "";
105+
try {
106+
hostAddress = InetAddress.getLocalHost().getHostAddress();
107+
} catch (UnknownHostException e) {
108+
e.printStackTrace();
109+
}
110+
111+
return String.format("%s:%s", hostAddress, CASSANDRA_PORT);
112+
});
103113
registry.add("feast.stores[2].config.data_center", () -> CASSANDRA_DATACENTER);
104114
registry.add("feast.stores[2].config.keyspace", () -> CASSANDRA_KEYSPACE);
105115

storage/connectors/cassandra/src/main/java/feast/storage/connectors/cassandra/retriever/CassandraStoreConfig.java

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,24 +18,18 @@
1818

1919
public class CassandraStoreConfig {
2020

21-
private final String host;
22-
private final Integer port;
21+
private final String connectionString;
2322
private final String dataCenter;
2423
private final String keySpace;
2524

26-
public CassandraStoreConfig(String host, Integer port, String dataCenter, String keySpace) {
27-
this.host = host;
28-
this.port = port;
25+
public CassandraStoreConfig(String connectionString, String dataCenter, String keySpace) {
26+
this.connectionString = connectionString;
2927
this.dataCenter = dataCenter;
3028
this.keySpace = keySpace;
3129
}
3230

33-
public String getHost() {
34-
return this.host;
35-
}
36-
37-
public Integer getPort() {
38-
return this.port;
31+
public String getConnectionString() {
32+
return this.connectionString;
3933
}
4034

4135
public String getDataCenter() {

0 commit comments

Comments
 (0)