首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对cassandra的异步插入,每个键插入的保存顺序

对cassandra的异步插入,每个键插入的保存顺序
EN

Stack Overflow用户
提问于 2021-07-06 06:02:45
回答 1查看 81关注 0票数 0

我有一组有序的传入事件,需要将它们插入到Cassandra中。我想要利用异步插入的速度,但是我的传入事件可能有目标表的键的重复项。

如果我理解正确的话,那么异步插入在这种情况下不能保证数据的一致性,因为异步执行意味着异步操作的程序顺序,这意味着不能保证异步操作的顺序,但是我无法在java中实现一个示例,其中异步插入的顺序与顺序不匹配。在任何与使用Cassandra驱动程序(datastax-java-driver)进行异步插入相关的文档中,我也找不到有关这方面的信息。

在这种情况下,为了确保数据一致性,在异步插入之前,我是否需要在自己一侧执行重复数据消除?

如果您需要我正在做的事情的示例代码:

代码语言:javascript
复制
@Autowired
private ReactiveCassandraRepository repository;

...

Flux.from(eventsList)
.flatMap(value -> repository.save(value))
.subscribe()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-12 10:44:13

这并不是一个真正的问题,你绝对可以使用异步写来最大化吞吐量。

需要注意的重要一点是,“顺序”并不是由异步请求何时命中集群决定的。缺省情况下,Java driver (v3.0+)分配一个客户端时间戳,该时间戳将是请求的写入时间。

当您读取数据时,仅根据时间戳返回最新版本,因此不存在重复。干杯!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68262489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档