本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
支持 Apache 卡桑德拉讀寫一致性級別和相關成本
本節中的主題描述了哪些 Apache 卡桑德拉一致性級別支持讀取和寫入操作 Amazon Keyspaces(Apache 卡桑德拉)。
寫入一致性層級
Amazon Keyspaces 會跨多個可用區域複寫所有寫入操作三次,以提高耐用性和高可用性。在使用LOCAL_QUORUM
一致性層級確認寫入之前,會持久儲存。對於每 1 KB 寫入,您需針對使用佈建容量模式的表格支付 1 個寫入容量單位 (WCU) 的費用,或針對使用隨選模式的表格支付 1 個寫入請求單位 (WRU) 的費用。
您可以使用cqlsh
將目前工作階段中所有查詢的一致性設定為LOCAL_QUORUM
使用下列程式碼。
CONSISTENCY LOCAL_QUORUM;
要以編程方式配置一致性級別,可以使用適當的 Cassandra 客戶端驅動程序設置一致性。例如,4.x 版 Java 驅動程序允許您在app config
文件中設置一致性級別,如下圖所示。
basic.request.consistency = LOCAL_QUORUM
如果您使用的是 3.x 版 Java Cassandra 驅動程序,則可以通過添加指定會話的一致性級別,如下面的代碼示.withQueryOptions(new QueryOptions().setConsistencyLevel(ConsistencyLevel.LOCAL_QUORUM)
例所示。
Session session = Cluster.builder() .addContactPoint(endPoint) .withPort(portNumber) .withAuthProvider(new SigV4AuthProvider("us-east-2")) .withSSL() .withQueryOptions(new QueryOptions().setConsistencyLevel(ConsistencyLevel.LOCAL_QUORUM) .build() .connect();
若要設定特定寫入作業的一致性層級,您可以在使用 Java 驅動程式時使用setConsistencyLevel
引數呼叫QueryBuilder.insertInto
時定義一致性。
讀取一致性等級
Amazon Keyspaces 支援三種讀取一致性層級:ONE
LOCAL_ONE
、和LOCAL_QUORUM
. 在LOCAL_QUORUM
讀取期間,Amazon Keyspaces 間會傳回反映所有先前成功寫入操作的最新更新的回應。使用一致性層級ONE
或LOCAL_ONE
可以改善讀取要求的效能和可用性,但回應可能不會反映最近完成寫入的結果。
對於使用ONE
或LOCAL_ONE
一致性讀取每 4 KB,您需針對使用佈建容量模式的表格支付 0.5 個讀取容量單位 (RCU) 的費用,或針對使用隨選模式的表格支付 0.5 個讀取請求單位 (RRU) 的費用。對於使用LOCAL_QUORUM
一致性讀取每 4 KB,您需針對使用佈建容量模式的表格支付 1 個讀取容量單位 (RCU) 費用,或針對使用隨選模式的表格支付 1 個讀取請求單位 (RRU) 的費用。
根據每個 4 KB 讀取的每個表格的讀取一致性和讀取容量輸送量模式計費 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
一致性等級 | 佈建 | 隨需 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ONE |
0.5 RCU | 0.5 RUS | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
LOCAL_ONE |
0.5 RCU | 0.5 RUS | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
LOCAL_QUORUM |
1 RCU | 1 RRU |
若要為讀取作業指定不同的一致性,請在使QueryBuilder.select
用 Java 驅動程式時使用setConsistencyLevel
引數呼叫。
不支援的一致性
Amazon Keyspaces 不支援下列一致性層級,並會導致例外狀況。
不支援的一致性 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
阿帕奇·卡桑德拉 | Amazon Keyspaces | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
EACH_QUORUM |
不支援 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
QUORUM |
不支援 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ALL
|
不支援 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TWO |
不支援 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
THREE |
不支援 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ANY |
不支援 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SERIAL |
不支援 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
LOCAL_SERIAL |
不支援 |