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 数据库支持 文档。