【问题标题】:Zookeeper and SolrCloud on AWS EC2 instancesAWS EC2 实例上的 Zookeeper 和 SolrCloud
【发布时间】:2015-10-27 02:21:33
【问题描述】:

我使用 Solr 有一段时间了,但对 SolrCloud 还是陌生的。我正在调查在我的上下文中部署 SolrCloud 或让多个 Solr 实例(具有匹配的索引内容)位于 ELB 后面是否有意义。

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

然而,在尝试了解 SolrCloud 基础架构时,我有几个问题:

  • 如果我销毁其中一个实例,Zookeeper 是否能够自动添加一个新实例?我所看到的一切似乎在配置中都有静态 IP 地址,如果实例被终止和替换,则需要更新配置(并重新启动 Zookeeper)。
  • 是否有我应该调用的“主”Zookeeper 实例,或者我可以调用其中的任何一个?如果我可以调用它们中的任何一个,我们可能会在 Zookeeper 前面放置一个 ELB。
  • 如果我们使用量很大并允许 AWS AutoScaling 组创建额外的服务器作为 SolrCloud 分片,SolrCloud 是否会优雅地添加实例并终止它们而不会出现问题? (这似乎是真的,也是使用 SolrCloud 的全部意义所在。)

【问题讨论】:

    标签: solr amazon-ec2 apache-zookeeper


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

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

    • 是否有我应该调用的“主”Zookeeper 实例,或者我可以调用其中的任何一个?如果我可以调用它们中的任何一个,我们可能会在 Zookeeper 前面放置一个 ELB。

    AN:在 ZooKeeper 中,我们有领导者和追随者。我们不需要担心它们,因为我们不与 ZooKeepers 通信

    • 如果我们使用量很大并允许 AWS AutoScaling 组创建额外的服务器作为 SolrCloud 分片,SolrCloud 是否会优雅地添加实例并终止它们而不会出现问题? (这似乎是真的,也是使用 SolrCloud 的全部意义所在。)

    AN:当你创建一个新的 SOLR 节点时,你必须在同一个集群下启动这个节点(通过相同的 ZooKeeper)。一旦你开始这样做,你将不得不拆分一个分片并将其移动到另一个节点以平衡集群。目前还没有自动化。

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

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

    【讨论】:

      猜你喜欢
      • 2020-03-29
      • 2013-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-17
      相关资源
      最近更新 更多