簡體   English   中英

EC2上的datastax cassandra集群 - 節點如何找到彼此?

[英]datastax cassandra cluster on EC2 - how do nodes find each others?

我按照Datastax指令在EC2上設置了一個集群http://www.datastax.com/documentation/cassandra/2.0/cassandra/install/installAMILaunch.html一切正常,集群已創建。

我的問題是怎么樣? 實例如何相互知道IP? 最初我假設它是從元數據中讀取的,但我沒有在那里找到信息。

Cassandra使用“種子節點”將節點拓撲信息傳播到整個群集,包括所有節點的地址。 根據DataStax文檔 ,AMI設置所有種子節點。 我希望AMI修改每個節點的cassandra.yaml文件來配置這些種子節點。

編輯:

它找到種子節點,因為您在創建群集時在每個節點上的cassandra.yaml文件中配置它們,或者AMI代表您執行此操作。 當每個節點出現時,它會在其cassandra.yaml中查找種子節點列表,與它們聯系,並提供他們所知道的所有節點的列表。 換句話說,所有已聯系它們的節點。 當新節點加入時,存在通過集群傳播,種子節點保留主列表。

我相信我有一個答案:Reflector,一個集中式數據傳輸服務,通過預留ID從每個服務器和組獲取請求。 一段時間后,每個人都可以查詢並獲取其他成員的IP。

“反射器用於跟蹤正在啟動的DSE / C群集中的哪些IP。反射器接收內部IP地址,公共DNS,預留ID和群集名稱以跟蹤群集”這個數據保存到SQLite數據庫。如果在5分鍾不活動后發送另一個對php文件的請求,數據庫將被清除並重新開始,以保​​持IP列表盡可能新,以避免沖突並保護您的隱私“。

對反射器的調用在https://github.com/riptano/ComboAMI/blob/2.5/ds2_configure.py#L445

基本上,您已為其連接打開了一些tcp端口。 7000端口用於內部節點通信。 9042用於CQL本機傳輸。

因此,您可以在命令行中檢查這些端口。 他們都應該被打開。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM