Reusable Containers (Experimental)

ScyllaDB

qianmoQqianmoQ· 更新于 2026-10-13· 阅读 7 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

ScyllaDB

Testcontainers module for ScyllaDB

ScyllaDB's usage examples

You can start a ScyllaDB container instance from any Java application by using:

Create container

ScyllaDBContainer scylladb = new ScyllaDBContainer("scylladb/scylla:6.2")

Custom config file

ScyllaDBContainer scylladb = new ScyllaDBContainer("scylladb/scylla:6.2")
    .withConfigurationOverride("scylla-test-ssl")
    .withSsl(
        MountableFile.forClasspathResource("keys/scylla.cer.pem"),
        MountableFile.forClasspathResource("keys/scylla.key.pem"),
        MountableFile.forClasspathResource("keys/scylla.truststore")
    )

Building CqlSession

Using CQL port

CqlSession session = CqlSession
    .builder()
    .addContactPoint(scylladb.getContactPoint())
    .withLocalDatacenter("datacenter1")
    .build();

Using SSL

String testResourcesDir = getClass().getClassLoader().getResource("keys/").getPath();

KeyStore keyStore = KeyStore.getInstance("PKCS12");
keyStore.load(
    Files.newInputStream(Paths.get(testResourcesDir + "scylla.keystore")),
    "scylla".toCharArray()
);

KeyStore trustStore = KeyStore.getInstance("PKCS12");
trustStore.load(
    Files.newInputStream(Paths.get(testResourcesDir + "scylla.truststore")),
    "scylla".toCharArray()
);

KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(
    KeyManagerFactory.getDefaultAlgorithm()
);
keyManagerFactory.init(keyStore, "scylla".toCharArray());

TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(
    TrustManagerFactory.getDefaultAlgorithm()
);
trustManagerFactory.init(trustStore);

SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(keyManagerFactory.getKeyManagers(), trustManagerFactory.getTrustManagers(), null);

Using Shard Awareness port

CqlSession session = CqlSession
    .builder()
    .addContactPoint(scylladb.getShardAwareContactPoint())
    .withLocalDatacenter("datacenter1")
    .build();

Alternator

Enabling Alternator

ScyllaDBContainer scylladb = new ScyllaDBContainer(SCYLLADB_IMAGE).withAlternator()

DynamoDbClient with Alternator

DynamoDbClient client = DynamoDbClient
    .builder()
    .endpointOverride(URI.create(scylladb.getAlternatorEndpoint()))
    .credentialsProvider(StaticCredentialsProvider.create(AwsBasicCredentials.create("test", "test")))
    .region(Region.US_EAST_1)
    .build();

Adding this module to your project dependencies

Add the following dependency to your pom.xml/build.gradle file:

GradleMaven

testImplementation "org.testcontainers:testcontainers-scylladb:2.0.5"
<dependency>
    <groupId>org.testcontainers</groupId>
    <artifactId>testcontainers-scylladb</artifactId>
    <version>2.0.5</version>
    <scope>test</scope>
</dependency>

评论

登录后参与评论

正在加载评论…