StackSaga ScyllaDB 响应式支持 (ScyllaDB Reactive Support)

概述 (Overview)

为 StackSaga 编排器应用程序配置 ScyllaDB 作为事件存储,与配置 StackSaga Cassandra 数据库支持 几乎完全一致,因为二者在底层共享同一个核心集成模块。

如果您希望使用官方针对 ScyllaDB 深度优化的专属驱动替代原生的 Cassandra 驱动,您可以通过在 spring-boot-starter-data-cassandra 中排除默认的 Cassandra 驱动,并显式引入 ScyllaDB Java Driver,如下文所示。

配置 ScyllaDB 作为事件存储

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.stacksaga</groupId>
            <artifactId>stacksaga-bom</artifactId>
            <version>1.0.0-SNAPSHOT</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
<dependency>
    <groupId>org.stacksaga</groupId>
    <artifactId>stacksaga-cassandra-reactive-support</artifactId>
</dependency>

<!--额外驱动调优配置-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-cassandra</artifactId>
    <exclusions>
        <exclusion> (1)
            <groupId>com.datastax.oss</groupId>
            <artifactId>java-driver-core</artifactId>
        </exclusion>
    </exclusions>
</dependency>

<dependency> (2)
    <groupId>com.scylladb</groupId>
    <artifactId>java-driver-core</artifactId>
    <version>4.17.0.0</version> <!-- 请检查并选用最新稳定版本 -->
</dependency>
推荐使用 StackSaga Initializer (初始化器) 获取项目所需的 StackSaga 依赖配置代码段,以确保拥有匹配正确的依赖版本和配置。
1 排除 spring-boot-starter-data-cassandra 默认传递引入的 com.datastax.oss:java-driver-core 驱动。
2 显式添加 com.scylladb:java-driver-core 依赖,以便底层采用专为 ScyllaDB 优化的原生驱动替代 DataStax 驱动。
通常在项目中配置 Cassandra 连接时,会引入 spring-boot-starter-data-cassandra 依赖。 该依赖会自动打包针对原生 Cassandra 的 com.datastax.oss:java-driver-core。 但当您选择使用 ScyllaDB 时,必须显式排除它以避免类库与协议冲突,并引入 com.scylladb:java-driver-core,从而享受针对 ScyllaDB 分片感知架构的极致吞吐性能。

重试架构 (Retry Architecture)

尽管底层连接驱动有所差异,但整体事务重试架构与 Cassandra 完全一致。 有关重试架构的详细分析与机制,请参阅 StackSaga Cassandra 数据库支持 文档。