2014-10-09 34 views
2

我已經配置了跨越兩個數據中心(AWS,us-east和us-west)的Cassandra羣集。寫入只發生在美國東環,並且我可以看到數據與另一個環同步。但是,滯後很高。cassandra多數據中心數據同步滯後

On DC1 
cqlsh:ks> select count(*) from cf1 limit 1000000; 

count 
-------- 
225568 

On DC2 
cqlsh:ks> select count(*) from cf1 limit 1000000; 

count 
-------- 
139964 

-

  1. 爲什麼會這樣,以及是什麼依賴?
  2. 有沒有辦法使用任何工具查看滯後?是否可以在OpsCenter中查看?
+0

您使用什麼一致性級別寫入?使用'EACH_QUORUM'(詳細信息:http://www.datastax.com/documentation/cassandra/2.1/cassandra/dml/dml_config_consistency_c.html)可能有助於延遲(因爲直到兩個DC都承認它們才寫完),但會增加寫入延遲。一般來說,您可能應該查看網絡和磁盤吞吐量。 – arre 2014-10-10 21:48:18

+0

我們目前使用LOCAL_QUORUM,並且希望保留它以用於延遲原因。將看網絡和磁盤吞吐量。 – 2014-10-10 21:49:45

回答

2

由於您的兩個DC位於不同的AWS區域,您可能會在兩者之間看到一些滯後。這取決於跨數據中心同步的數據量。如果您有大的列系列和/或高級別的寫入,那麼這隻會意味着需要更多數據進行同步。使用LOCAL_QUORUM是在本地DC保留寫入的正確選擇。如果您願意,可以使用較低的一致性級別,一般而言,如果數據一致性很重要,則經驗法則始終要比讀取的一致性級別更高。

除了通常的操作系統級別的工具,卡桑德拉確實有nodetool實用程序。爲了監控您可以使用下面的nodetool命令:

nodetool netstats - (會顯示您的節點是流數據)http://www.datastax.com/documentation/cassandra/2.0/cassandra/tools/toolsNetstats.html

nodetool cfstats - (顯示列家族延遲等統計信息非常有用)http://www.datastax.com/documentation/cassandra/2.0/cassandra/tools/toolsCFstats.html

nodetool proxyhistograms - (顯示來自協調節點的統計數據)http://www.datastax.com/documentation/cassandra/2.0/cassandra/tools/toolsProxyHistograms.html

還有一些其他非常有用的nodetool命令,您可以使用它們:

http://www.datastax.com/documentation/cassandra/2.0/cassandra/tools/toolsNodetool_r.html

我假設你正在使用Cassandra的2.0,但對於其他版本的很多命令都非常類似的nodetool

作爲一個側面說明,你也可以使用的OpsCenter賦予的圖形視圖有關更多信息,請參閱:http://www.datastax.com/documentation/opscenter/5.0/opsc/about_c.html