AWS EC2实例上的Zookeeper和SolrCloud

时间:2015-08-04 15:30:00

标签: solr amazon-ec2 apache-zookeeper

我已经使用了Solr一段时间,但我是SolrCloud的新手。我正在研究在我的上下文中部署SolrCloud或者在ELB后面有多个Solr实例(具有匹配的索引内容)是否有意义。

我的部署将在AWS上的EC2实例上进行。我们当前在AWS中的故障排除策略是终止行为不当的实例,并允许它们由AutoScaling组(在创建时通过脚本配置新实例)自动重新创建。事实上,我们无法在生产过程中登录实例。存储在Solr中的所有内容都可以重新编制索引,因此不必担心数据丢失。

但是,在尝试了解SolrCloud基础架构时,我遇到了一些问题:

  • 如果我销毁其中一个实例,Zookeeper是否能够自动添加新实例?我看到的所有内容似乎都在配置中有静态IP地址,如果实例被终止并替换,则需要更新配置(并且Zookeeper重新启动)。
  • 我应该调用一个“主”Zookeeper实例,还是可以调用其中任何一个?如果我可以打电话给任何一个,我们可能会把一个ELB放在Zookeeper面前。
  • 如果我们遇到大量使用并允许AWS AutoScaling组创建用作SolrCloud分片的其他服务器,SolrCloud会优雅地添加实例并终止它们而不会出现问题吗? (这似乎是真的,以及使用SolrCloud的重点。)

1 个答案:

答案 0 :(得分:5)

  • 如果我销毁其中一个实例,Zookeeper是否能够自动添加新实例?我看到的所有内容似乎都在配置中有静态IP地址,如果实例被终止并替换,则需要更新配置(并且Zookeeper重新启动)。

AN:在ZooKeeper中,您只需要提及其他ZooKeepers。这是为了让ZooKeepers知道其他正在运行的ZooKeepers。除非您计划增加/减少ZooKeepers的数量,否则您不需要更改此配置。即使我们必须这样做,我们也可以在不打扰群集的情况下做一次。此外,我们将主机名保留在配置中,以便ip中的更改对此没有影响。

  • 是否有"主人"我应该调用Zookeeper实例,还是可以调用其中任何一个?如果我可以打电话给任何一个,我们可能会把一个ELB放在Zookeeper面前。

AN:在ZooKeeper中,我们有一位领导者和粉丝。因为我们不与ZooKeepers沟通,所以我们不需要打扰他们

  • 如果我们遇到大量使用并允许AWS AutoScaling组创建用作SolrCloud分片的其他服务器,SolrCloud会优雅地添加实例并终止它们而不会出现问题吗? (这似乎是真的,以及使用SolrCloud的重点。)

AN:当您创建新的SOLR节点时,您必须在同一群集下启动该节点(通过相同的ZooKeepers)。一旦开始,您将必须拆分一个分片并将其移动到另一个节点,以便平衡群集。截至目前尚未自动化。

SOLR节点是您必须在ELB中添加的节点。

当您启动SOLR节点时,您将提及ZooKeeper列表,SOLR节点将通过该列表了解哪个群集是该群集的一部分以及为群集服务的其他节点