AWS EC2 实例上的 Zookeeper 和 SolrCloud
Zookeeper and SolrCloud on AWS EC2 instances
我使用 Solr 有一段时间了,但对 SolrCloud 还是个新手。我正在调查在我的上下文中部署 SolrCloud 或让多个 Solr 实例(具有匹配的索引内容)位于 ELB 后面是否有意义。
我的部署将在 EC2 实例上的 AWS 中进行。我们当前在 AWS 中的故障排除策略是终止行为不当的实例并允许它们由 AutoScaling 组自动重新创建(在创建新实例时通过脚本配置新实例)。事实上,一旦实例投入生产,我们就无权登录这些实例。存储在 Solr 中的所有内容都可以重新索引,因此无需担心数据丢失。
然而,在尝试了解 SolrCloud 基础架构时,我有几个问题:
- 如果我销毁其中一个,Zookeeper 是否能够自动添加一个新实例?我所看到的一切似乎在配置中都有静态 IP 地址,如果实例被终止和替换,这将需要更新配置(并重新启动 Zookeeper)。
- 是否有我应该调用的 "master" Zookeeper 实例,或者我可以调用它们中的任何一个?如果我可以调用它们中的任何一个,我们可能会在 Zookeeper 前面放置一个 ELB。
- 如果我们使用量很大并允许 AWS AutoScaling 组创建额外的服务器作为 SolrCloud 分片,SolrCloud 是否会正常添加实例并终止它们而不会出现问题? (这似乎是真的,也是使用 SolrCloud 的全部意义所在。)
- 如果我销毁其中一个,Zookeeper 是否能够自动添加一个新实例?我所看到的一切似乎在配置中都有静态 IP 地址,如果实例被终止和替换,这将需要更新配置(并重新启动 Zookeeper)。
AN:在 ZooKeeper 中,您只需提及其他 ZooKeeper。这是为了让 ZooKeepers 知道其他 运行 ZooKeepers。除非您计划 increase/decrease ZooKeepers 的数量,否则您不需要更改此配置。即使我们必须这样做,我们也可以在不干扰集群的情况下一次做一个。此外,我们将主机名保留在配置中,以便 ip 的更改不会对此产生影响。
- 是否有我应该调用的 "master" Zookeeper 实例,或者我可以调用它们中的任何一个?如果我可以调用它们中的任何一个,我们可能会在 Zookeeper 前面放置一个 ELB。
AN:在 ZooKeeper 中,我们有领导者和追随者。我们不需要理会它们,因为我们不与 ZooKeepers
通信
- 如果我们使用量很大并允许 AWS AutoScaling 组创建额外的服务器作为 SolrCloud 分片,SolrCloud 是否会正常添加实例并终止它们而不会出现问题? (这似乎是真的,也是使用 SolrCloud 的全部意义所在。)
AN: 当你创建一个新的SOLR节点时,你必须在同一个集群下启动该节点(通过相同的ZooKeepers)。一旦开始,您将不得不拆分一个分片并将其移动到另一个节点以平衡集群。目前还没有自动化。
SOLR 节点是您必须添加到 ELB 中的节点。
当你启动一个 SOLR 节点时,你会提到 ZooKeepers 列表,SOLR 节点将通过该列表了解哪个集群是该集群的一部分以及为该集群服务的其他节点
我使用 Solr 有一段时间了,但对 SolrCloud 还是个新手。我正在调查在我的上下文中部署 SolrCloud 或让多个 Solr 实例(具有匹配的索引内容)位于 ELB 后面是否有意义。
我的部署将在 EC2 实例上的 AWS 中进行。我们当前在 AWS 中的故障排除策略是终止行为不当的实例并允许它们由 AutoScaling 组自动重新创建(在创建新实例时通过脚本配置新实例)。事实上,一旦实例投入生产,我们就无权登录这些实例。存储在 Solr 中的所有内容都可以重新索引,因此无需担心数据丢失。
然而,在尝试了解 SolrCloud 基础架构时,我有几个问题:
- 如果我销毁其中一个,Zookeeper 是否能够自动添加一个新实例?我所看到的一切似乎在配置中都有静态 IP 地址,如果实例被终止和替换,这将需要更新配置(并重新启动 Zookeeper)。
- 是否有我应该调用的 "master" Zookeeper 实例,或者我可以调用它们中的任何一个?如果我可以调用它们中的任何一个,我们可能会在 Zookeeper 前面放置一个 ELB。
- 如果我们使用量很大并允许 AWS AutoScaling 组创建额外的服务器作为 SolrCloud 分片,SolrCloud 是否会正常添加实例并终止它们而不会出现问题? (这似乎是真的,也是使用 SolrCloud 的全部意义所在。)
- 如果我销毁其中一个,Zookeeper 是否能够自动添加一个新实例?我所看到的一切似乎在配置中都有静态 IP 地址,如果实例被终止和替换,这将需要更新配置(并重新启动 Zookeeper)。
AN:在 ZooKeeper 中,您只需提及其他 ZooKeeper。这是为了让 ZooKeepers 知道其他 运行 ZooKeepers。除非您计划 increase/decrease ZooKeepers 的数量,否则您不需要更改此配置。即使我们必须这样做,我们也可以在不干扰集群的情况下一次做一个。此外,我们将主机名保留在配置中,以便 ip 的更改不会对此产生影响。
- 是否有我应该调用的 "master" Zookeeper 实例,或者我可以调用它们中的任何一个?如果我可以调用它们中的任何一个,我们可能会在 Zookeeper 前面放置一个 ELB。
AN:在 ZooKeeper 中,我们有领导者和追随者。我们不需要理会它们,因为我们不与 ZooKeepers
通信- 如果我们使用量很大并允许 AWS AutoScaling 组创建额外的服务器作为 SolrCloud 分片,SolrCloud 是否会正常添加实例并终止它们而不会出现问题? (这似乎是真的,也是使用 SolrCloud 的全部意义所在。)
AN: 当你创建一个新的SOLR节点时,你必须在同一个集群下启动该节点(通过相同的ZooKeepers)。一旦开始,您将不得不拆分一个分片并将其移动到另一个节点以平衡集群。目前还没有自动化。
SOLR 节点是您必须添加到 ELB 中的节点。
当你启动一个 SOLR 节点时,你会提到 ZooKeepers 列表,SOLR 节点将通过该列表了解哪个集群是该集群的一部分以及为该集群服务的其他节点