如何使用两个搜索服务器设置Solr Cloud?

如何使用两个搜索服务器设置Solr Cloud?,solr,solr4,solrcloud,sunspot-rails,sunspot-solr,Solr,Solr4,Solrcloud,Sunspot Rails,Sunspot Solr,嗨,我正在用sunspot solr开发rails项目并配置solr Cloud。 我的环境:rails 3.2.1、ruby 2.1.2、sunspot 2.1.0、Solr 4.1.6 为什么SolrCloud:我需要更稳定的系统-通常搜索服务器进行维护,web应用程序停止生产。所以,我考虑如何使两个相同的搜索服务器,而不是一个,以使系统更稳定:如果一个服务器将关闭,另一个将继续工作 我找不到任何简单、易懂和详细描述的好turtorial。。。 我正在尝试在两台服务器上设置SolrCloud

嗨,我正在用sunspot solr开发rails项目并配置solr Cloud。 我的环境:rails 3.2.1、ruby 2.1.2、sunspot 2.1.0、Solr 4.1.6

为什么SolrCloud:我需要更稳定的系统-通常搜索服务器进行维护,web应用程序停止生产。所以,我考虑如何使两个相同的搜索服务器,而不是一个,以使系统更稳定:如果一个服务器将关闭,另一个将继续工作

我找不到任何简单、易懂和详细描述的好turtorial。。。 我正在尝试在两台服务器上设置SolrCloud,但我不完全了解它的内部工作原理:

  • 在两台服务器之间同步数据(是自动操作吗?)
  • 在两台服务器之间平衡搜索请求
  • 当一台服务器突然停止工作时,另一台应该成为主服务器(是自动操作吗?)
  • 除列出的功能外,是否还有其他SolrCloud功能

在这里阅读更多有关SolrCloud的信息

从我的经验中得到了一些信息

如果您的应用程序只是从SOLR读取数据,而不向SOLR写入数据(实时,但您使用ETL等进行索引),那么您可以选择主从层次结构

定义一个主机:-将所有写入指向此处。如果此主机关闭,您将无法再索引数据

创建2个(或更多)从机:-这是SOLR的一项功能,它将根据我们指定的时间间隔(例如每20秒)负责从主机同步数据

基于从机创建负载平衡器,并将应用程序指向从负载平衡器读取数据

优点: 使用上述设置,您没有主设备的高可用性(数据写入),但在最后一个从设备停机之前,您将具有数据的高可用性

缺点: 假设一个奴隶倒下了,你在一个小时后把它买回来,这个奴隶将落后于其他奴隶一个小时。因此,在添加回ELB之前,它的手动任务是检查其他从属服务器之间的数据一致性

索洛怎么样

  • 这里没有Master,因此您也可以实现写操作的高可用性
  • 正如我前面所描述的,不需要担心数据不一致性,SolrCloud体系结构将解决这个问题
  • 什么最适合你

  • 定义具有3个节点的外部Zookeeper Quorom
  • 定义至少2个SOLR服务器
  • 将当前索引拆分为2个碎片(默认情况下,每个碎片将分别位于步骤2中定义的2个solr节点中)
  • 将副本定义为2(这将为每个节点中的碎片创建副本)
  • 定义指向上述solr节点的LB
  • 将Solr输入和应用程序指向此LB
  • 通过以上设置,您可以支持任一节点的故障转移

    如果你需要更多的信息,请告诉我

    问候,

    阿内什


    -让我们一起学习。

    zookeeper是存储配置文件的人,与SolrLoud中的solr相比。此外,它知道每个节点的状态,如果与谁是领导者、谁处于恢复状态等相同,则知道状态。zookeeper在领导者倒下时从n个副本中选择一个副本。独立的solr是单个碎片。是的,您可以将云设置为具有多个副本的单个碎片,以便具有高可用性是的,ZooKeeper是控制群集的人。没有ZooKeeper,您无法在云模式下启动solr,如果启动,它将使用内置ZooKeeper。群集可以支持读取,即使ZooKeeper在启动群集后关闭。但无法执行wr没有zookeeperJetty的站点默认情况下使用SOLR。Tomcat是另一种选择。它们都用于标准web服务。Quorom是用于群集ZooKeeper的术语。由于SOLR群集依赖于ZooKeeper,因此它成为单点故障。因此我们也必须群集ZooKeeper。用于生产的理想ZooKeeper数量为5。您可以ep ZooKeepers与solr node位于同一个节点中,但这并不能实现高可用性,因为solr和ZooKeeper在节点关闭时都会关闭。但如果您有多个ZooKeeper,则可以将每个ZooKeeper保留在solr节点中的不同节点中。根据云计算,它允许我们将ZooKeeper和所有solr实例群集在一个节点中通过更改SOLR实例ZooKeeper实例的端口实现单节点。