2012-07-22 63 views
1

我正在使用cassandra-1.1。cassandra不會爲2個服務器創建正確的環(每個服務器有2個實例)

我想配置4個實例(每個PC 2個實例)的集羣 我已經更新了.yaml文件配置如下:

listen_address = 127.0.0.1 (127.0.0.2) 
rpc_port=9160 (9161) 
rpc_address=0.0.0.0 

托架是用於在第二個實例同一臺電腦。

但在這種情況下,nodetool找到 僅有的兩個實例卡桑德拉在同一臺電腦(而不是4)

./nodetool -h 127.0.0.1 -p 8001 ring 

我也配置

- seeds: "172.10.10.32,172.10.10.33" 

相同的兩個電腦的(xxx32和xxx33)。

我錯過了什麼?

回答

1

您的實例僅在回送接口(127.0.0.1127.0.0.2)上進行偵聽。遠程節點將無法連接到本地環回接口。因此,他們永遠不會知道遠程實例正在運行。

如果您希望遠程節點能夠連接,您需要偵聽外部接口。

+0

謝謝。我在同一臺機器上運行多臺服務器。因此,列表爲0.0.0.0對我來說是更好的選擇,因爲我不必更改內部協議端口 – Julias 2012-07-25 20:17:19

+0

listen_address不能使用0.0.0.0,因爲它也用於告訴其他節點如何連接到該地址節點。如果你的所有節點都在一臺機器上,那麼使用127.0.0.1,.2,.3等就可以,只要它們完全不同。您應該在種子列表中使用這些相同的地址。 – 2012-07-25 21:18:16

+0

是的,你說得對,我使用0.0.0.0的rpm adsress讓其他客戶端連接到cassandra。爲了在同一臺機器上配置兩個節點,我爲一個節點使用了真實IP,而爲另一個節點使用了127.0.0.2.3 ...。而在種子中,我配置了真正的ips。我有一個混合配置的問題:2臺機器有2-3個cassandra實例。好像好嗎? – Julias 2012-07-28 20:40:03