如何设置cassandra读写一致性

2024-01-01

我找不到这方面的文档。我知道cqlsh中有一致性命令,但是读一致性和写一致性没有区别。如何为读取和写入设置不同的一致性级别?

此外,还提到了“默认”一致性级别。默认设置在哪里?它是用于读还是写?


如何为读取和写入设置不同的一致性级别?

如果您只想更改当前会话的一致性级别,请使用CONSISTENCY.

如果您想以编程方式更改一致性级别,请使用适合您的客户端语言的 cassandra 驱动程序。

由于可以为每个语句设置一致性级别,因此您可以在每个语句上设置它,也可以使用PreparedStatements。如果您使用 Java 驱动程序,则可以为读取和写入配置全局一致性级别(但不能only读取和only写道)。

默认的[一致性级别]在哪里设置?它是用于读还是写?

如果您想为读取设置与写入不同的一致性级别,则必须在每个语句的基础上进行设置。使用QueryOptions().setConsistencyLevel设置全局一致性级别(对于 Java 驱动程序)。它适用于读取和写入。

设置当前会话的一致性级别, 使用一致性 https://docs.datastax.com/en/cql/3.3/cql/cql_reference/cqlshConsistency.html命令 来自 cassandra shell (CQLSH)。

例如:

设置 CONSISTENCY 以强制大多数节点响应: CONSISTENCY QUORUM

要查看当前的一致性级别,只需运行CONSISTENCY;从外壳:

ty@cqlsh> consistency; Current consistency level is ONE.

用于对客户端应用程序进行编程,使用适当的驱动程序设置一致性级别。

要设置一个每次插入使用Java驱动程序的一致性级别,例如,调用QueryBuilder.insertInto with setConsistencyLevel.

例如:

PreparedStatement pstmt = session.prepare( "INSERT INTO product (sku, description) VALUES (?, ?)"); pstmt.setConsistencyLevel(ConsistencyLevel.QUORUM);

要设置一个global使用 Java 驱动程序读取和写入的一致性级别,执行以下操作:

QueryOptions qo = new QueryOptions().setConsistencyLevel(ConsistencyLevel.ALL);

  • 由于 Java 驱动程序仅执行 CQL 语句,这些语句可以对 Cassandra 进行读取或写入,因此无法全局配置仅读取或仅写入的一致性级别。为此,由于可以为每个语句设置一致性级别,因此您可以在每个语句上设置它,也可以使用PreparedStatements。更多信息在查询和结果 https://docs.datastax.com/en/developer/java-driver/3.4/upgrade_guide/migrating_from_astyanax/queries_and_results/文档。

有关读/写一致性级别的更多资源

  • How consistency level is configured https://docs.datastax.com/en/cassandra/3.0/cassandra/dml/dmlConfigConsistency.html
    • 这里还解释了不同的一致性级别 ^
  • Cassandra 的 Java 驱动程序文档 https://docs.datastax.com/en/developer/java-driver/3.3/manual/
  • 请参阅中的“一致性级别”部分配置与 Java 驱动程序的一致性 https://docs.datastax.com/en/developer/java-driver/3.4/upgrade_guide/migrating_from_astyanax/configuration/

有关一致性的其他资源:您可能还想研究您的副本放置策略和复制因子(这是其他形式的一致性)。 为了更好的衡量,我添加了以下链接:

  • Cassandra 中数据复制的背景 https://docs.datastax.com/en/cql/3.3/cql/cql_using/useCreateKeyspace.html
  • 如何使用 CREATE KEYSPACE 更新副本策略和复制因子 https://docs.datastax.com/en/cql/3.3/cql/cql_reference/cqlCreateKeyspace.html
  • 一致性如何影响性能 https://docs.datastax.com/en/cql/3.3/cql/cql_using/useTracingPerf.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何设置cassandra读写一致性 的相关文章

随机推荐

  • Gradle 无法同步“无法找到可选库”

    我必须重新安装系统 今天当我尝试与 gradle 同步时 我在 Android Studio 中收到此错误 Warning Unable to find optional library org apache http legacy 我的项
  • 我想将 std::string 转换为 const wchar_t *

    有什么方法吗 我的电脑是AMD64 std string str BOOL loadU const wchar t lpszPathName int flag 0 当我使用时 loadU str VS2005编译器说 Error 7 err
  • 将 Word/PDF 文档从文件系统索引到 SQL Server

    我正在尝试为我遇到的问题提出一个简单的解决方案 因为到目前为止我发现的所有这些似乎都太复杂了 情况是我们使用专有应用程序来管理我们业务的大部分方面 它有一个SQL Server 2005后端数据库 该数据库相当大 该应用程序还允许将 Wor
  • MS Word 插件:右键单击处理程序

    我正在为 MS Word 2010 开发一个插件 我想向右键菜单添加几个菜单项 仅当选择某些文本时 我看过几个添加项目的示例 但找不到如何有条件地添加项目 简而言之 我想重写诸如 OnRightClick 处理程序之类的东西 提前致谢 这很
  • 如何在 NextJs 中导航到另一个页面而不重新加载整个页面?

    我注意到在 NextJs 中 每当我点击要转到另一个页面 它会调用getInitialProps即使 另一个 页面是同一页面 例如 关于 profile页面有 2 个组件 一个用于 用户信息 另一个用于分页的 订单列表 组件 用户信息 和
  • RegisterWithContext 和生活方式不匹配

    我想将记录器注入到我的控制器中 并且需要将扩展 信息传递给记录器的构造函数 为了我使用的目的RegisterWithContext container RegisterWithContext
  • mysqldump 区分大小写的问题?操作系统->Linux

    当我使用 mysqldump 转储包含大写字母的表时 它在我的 gt dump sql 文件中显示为小写 我在2006年在这里发现了一份报告 差不多4年了http bugs mysql com bug php id 19967 http b
  • 获取所有下义词的完整列表[重复]

    这个问题在这里已经有答案了 有什么方法可以获得与单个单词相关的下位词的完整列表吗 relative wordnet synsets relative pos n 0 hyponyms lemma name for synset in rel
  • numpy/python 中的 Floodfill 分割图像

    我有一个 numpy 数组 它表示图像中分段的二维矩阵 基本上 它是一个稀疏矩阵 具有一堆闭合形状 这些形状是图像片段的轮廓 我需要做的是用 numpy 中的不同颜色 标签对每个闭合形状内的空像素进行着色 我知道我可以使用 PIL 中的洪水
  • 通过FlexibleInstances“重载”可以返回不同的类型,或者匹配类型类吗?

    我很好奇 Haskell 的类型类可以通过 FlexibleInstances 完成什么样的 重载 作为一个简单的测试 这里是一个调整器类型数据类型的例子 它定义了一个adjust根据是否包含整数或双精度值 将为其值添加不同金额的操作 LA
  • MongoDB 聚合框架 - 如何按日期范围、按天分组以及每天返回平均值进行匹配?

    我刚刚学习 MongoDB 的聚合框架 我想知道是否有人可以帮助我改进这个查询以执行以下操作 查找 匹配日期在提交范围内的记录 按天对结果进行分组 每天的回报平均值 这是我的模型 有一些有用的属性可以使编写此查询变得更容易 例如day财产
  • 对浮点数进行四舍五入,使它们的总和恰好为 1

    我有一段相当粗糙的代码 它必须或多或少随机生成一堆百分比 并存储为十进制浮点数 也就是说 它确定材料一占总数的 13 307 然后将其存储在字典中为 0 13307 问题是 我永远无法让这些数字加起来恰好为一 老实说 我并不完全确定问题是什
  • Javascript:location.hostname 和 document.domain 之间的区别?

    使用 location hostname 和 document domain 有什么区别 我认为用例子来解释会很有帮助 看起来document domain is a 只读属性 但在 Mozilla 中除外 它允许您更改用于 例如 AJAX
  • 从 WINAPI 获取文件的先前版本

    在 Windows 7 中 可以获取以前版本的文件 如下图所示 有没有办法通过代码检索文件的先前版本 因为我找不到任何API 感谢先进 这个问题列出了几个标签 因此 尚不清楚是否需要严格的 c c 方法 或者脚本等是否有效 任何状况之下 以
  • Ansi-C 中的单行注释

    我已经习惯了 标记来自 Java 和 Visual Studio 的单行注释 令人惊讶的是 Ansi C 不存在这种注释 使用 my comment 很烦人 使用 Ansi C 时还有其他方法标记单行注释吗 ANSI C 不可以 但当前的标
  • 我们如何使用 APK 主扩展文件中的图像?

    我最近 2 天面临一个问题 我们如何在 Google Play 上上传大小超过 50Mb 的 apk 文件 然后我找到了一种从链接上传带有 APK 扩展文件的 apk 文件的方法http developer android com guid
  • 轻量级 Java 对象缓存 API [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • ASP.NET - 获取 DirectoryEntry / SID 的主体 / 相对标识符 (RID)

    我在自定义 MembershipProvider 类中使用 Active Directory 对 ASP NET 2 0 Intranet 应用程序中的用户进行身份验证 并将其 sid 与该应用程序的配置文件相关联 当 的时候ActiveD
  • ColdFusion 和移动应用程序结构和安全性

    Overview 我希望开始使用 HTML5 jQuery 和 ColdFusion 开发 iOS 应用程序 我对此的理解是让 jQuery 为所有后端函数调用 ColdFusion API 伟大的 我的问题主要是关于页面结构和 API 安
  • 如何设置cassandra读写一致性

    我找不到这方面的文档 我知道cqlsh中有一致性命令 但是读一致性和写一致性没有区别 如何为读取和写入设置不同的一致性级别 此外 还提到了 默认 一致性级别 默认设置在哪里 它是用于读还是写 如何为读取和写入设置不同的一致性级别 如果您只想