2015-09-25 21 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

相关问题