2015-09-25 62 views
1

我們在美國AWS地區擁有3個Cassandra節點,在新加坡AWS地區擁有3個節點。如果我必須建立一個多數據中心,我們必須使用Ec2MultiRegionSnitch?或者我們可以使用GossipingPropertyFileSnitch?Cassandra Ec2MultiRegionSnitch或GossipingPropertyFileSnitch適用於AWS地區

而且我應該在這裏只使用私有IP地址作爲廣播地址和監聽地址嗎?

正如我的系統管理員告訴我的,我們並不需要公有IP,私有IP應該可以工作,因爲兩者都可以相互通信。但我對此抱有懷疑。有人可以對此有所瞭解嗎?

+1

考慮編輯你的問題,明確提及卡桑德拉。你不在身上提及它的標題。 –

回答

2

有你沒有理由不使用Ec2MultiRegionSnitch方法打小報告,如果你打算使用NetworkTopologyStrategy你KEYSPACE(這使得數據中心卡桑德拉知道)。否則,您將不得不手動配置拓撲,如下所示:

在EC2部署中,區域名稱被視爲數據中心名稱,可用區域被視爲數據中心內的機架。例如,如果節點位於us-east-1區域,則us-east是數據中心名稱,1是機架位置。

因此,使用它,卡桑德拉將自動從instances' metadata獲得該信息。

對於公有IP,您確實需要它們,因爲您無法在不同地區的VPC之間建立對等關係,因此這些VPC內的實例無法互相通信。

再次,Datastax's documention說該怎麼做:

在cassandra.yaml,設置listen_address到節點的私有IP地址,broadcast_address到節點的公共IP地址。

+0

哦..這是否意味着我可以在創建密鑰空間的同時使用區域名稱來確定複製因子?當我輸入nodetool狀態時,它將顯示單個數據中心而不是區域名稱爲dc。這是我所關心的。 – user3726031

+0

我從來沒有使用它,但是,是的,我希望在創建名稱空間和分配複製因子時使用區域名稱。節點工具狀態應顯示DC行上的區域名稱。實際上,就像文件中所說的,區域相當於DC和AZ到機架。 –

+0

我已經經歷了幾個datastax文檔,並且您所說的情況只有在我們使用EC2snitch時纔有可能。我嘗試了gossippropertyfilesnitch,並使用了3個節點和新加坡3個節點,當進入nodetool狀態時,它只顯示一個數據中心(我在rackdc-properties文件中使用的名稱)。 EC2snitch只會在這裏有所作爲。希望聽到你或其他人的評論。 – user3726031

相關問題