gpt4 book ai didi

cassandra - Datastax - PreparedStatement 线程安全吗?

转载 作者:行者123 更新时间:2023-12-03 22:24:01 24 4
gpt4 key购买 nike

com.datastax.driver.core.PreparedStatement 实例应该是应用程序中的单例吗?

如果是这样,如果连接丢失会发生什么? PreparedStatement 是否失效并且必须采取手动操作来“重新准备它”?

PreparedStatement 用法的一个简单示例(除了以相同的方法准备 + 执行)将非常棒!

最佳答案

PreparedStatement 对象是线程安全的。你可以改变它们(例如设置默认的一致性级别),如果多个线程同时这样做,可能会导致不一致,但这是另一回事。

准备好的语句基本上是围绕 ID 和元数据的包装器,服务器将保留准备好的语句,只要它启动(但节点崩溃或重新启动将意味着它丢失并且必须重新准备)。理论上,一个准备好的语句可以在其他地方序列化和反序列化并且仍然有效,我不推荐它。

准备好的语句对于节点来说是本地的,正如我提到的,在重启后不会存活,所以如果你要保留它们,你需要确保在连接失败或节点重启时清除它们。我会尝试以与确定连接范围相同的方式确定它们的范围,在连接和重新连接时重新创建它们。也许不是很好的建议,但这在很大程度上取决于您的应用程序的结构。

关于cassandra - Datastax - PreparedStatement 线程安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16499312/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com