在 Alpakka Cassandra 中保存 DTO

Save DTO in Alpakka Cassandra

您好,我使用 datastax 驱动程序创建了自己的 Cassandra 连接器。但是我面临一些内存泄漏问题,所以我开始考虑其他解决方案,例如具有 Cassandra 连接器的 Alpakka de lightbend。

但是在检查了糟糕的文档之后我改变了主意,因为它只是使用带有 CQLSH 查询的连接器,而在我的例子中我管理 DTO 对象。

任何人都知道任何文档,我可以在其中查看 Alpakka cassandra 是否以一致性级别管理 DTO 的保存?

此代码来自我当前的连接器。我想实现类似的东西。

private void updateCreateEntry(DTO originalDto, Mapper cassandraMapper) {
    ConsistencyLevel consistencyLevel = ((DTOCassandra) originalDto).getConsistencyLevel();
    //.- For writing we set the consistency level to quorum
    cassandraMapper.save(originalDto, Option.consistencyLevel(consistencyLevel != null ? consistencyLevel : DEFAULT_CONSISTENCY_LEVEL));
}

正如您所注意到的,目前 Alpakka 中的 Cassandra 连接器非常薄。如果您需要为您的 DTO 提供更丰富的支持,您可以选择更丰富的客户端,例如 Phantom.

有很多关于如何使用 Phantom 的优秀示例 - 例如,查看 this one。创建模型后,Phantom 会给你一个 def store[T](t: T): Future[ResultSet] 函数来插入数据。

您可以将对这些函数的调用提供给 mapAsync(n) 组合器,以便在您的 Akka Stream 中使用它们。