结合Solr 3x型主/从和#34;中继器"提供远程4x SolrCloud实例?

时间:2014-07-11 18:30:50

标签: solr replication remote-server solrcloud

Solr 3x“中继器”和多个数据中心:

Solr 3x让节点表现为两者从属和主节点,从一个主节点拉出,然后将副本向下游馈送到它自己的从节点。这是如此常见/有用它甚至有一个名字,“Repeater”

如果您需要跨多个数据中心,这非常有用。您可以拥有数据中心A(DCA)中的真实主设备和数据中心B(DCB)中的“中继器”。然后,该转发器将从DCA获取内容并为DCB中的所有其他节点提供信号,节省带宽

假设您要将此设置升级到Solr 4x和SolrCloud。 (请注意,Solr 4x仍支持Solr 3x样式的旧式复制)

据说你应该有一个SolrCloud集群跨越不同的数据中心。所以数据中心B应该拥有它自己的SolrCloud。

一个想法是拥有DCA - > DCB链路仍然使用Solr 3x样式的主/从复制。然后,DCB中的“转发器”也是SolrCloud节点,将自动传播到其他节点。

主要问题:

Solr节点是否可以参与Solr 3x样式的主/从模式(作为从站)并且也可以作为SolrCloud集群的一部分?如果是这样,这是如何配置的?

并发症:

在简单的情况下,如果只有1个带有副本的分片,则很容易看出它在数据方面的作用。如果你在DCB中有多个分片,那就不太清楚了,我怎么告诉每个分片只复制它自己的数据共享?请注意,SolrCloud通常通过事务复制,而3x使用二进制索引。

另一个复杂因素是你正在进行复制。如何告诉每个分片的主节点从远程DCA节点拉出来?

备选方案:

解决方法是升级到4倍但在DCB中继续使用3x式复制,所以不要使用SolrCloud。

我意识到另一种解决方案是让数据源将其更新发送到两个数据中心,或者像RabbitMQ那样使用。为了这个问题,让我们假设这不是一个选项(长篇故事......)

也许还有其他一些我没有想过的方法?

有没有人真的尝试使用SolrCloud跨度数据中心?这太可怕了?

有人必须先问过这个问题!

但是我看过谷歌,虽然它找到了大量关键字的网页,但我还没有看到这种具体的“混合”模式充实。我发现one thread from 2013但它并没有真正谈论配置和复杂性。

1 个答案:

答案 0 :(得分:2)

要回答您的第一个问题,3.X样式的Solr从站不能是Solr Cloud中的节点。原因是主机/从机中的从机3.X Solr配置只需复制,字节为字节,主机上的所有索引文件。就是这样。在转发器配置中,它也可以是其他人复制的主设备,或者是专用查询从设备或两者。但就是这样。

Solr Cloud配置中的节点是分布式计算集群的完全参与者,其中索引通常旨在分布在所有节点上,并且所有节点都参与查询。这是一个非常强大的功能,它可以自动处理故障节点并显着减轻扩展的工作量,这在3.X风格中是非常手动的。

然而,你为此付出的一部分是增加了复杂性(Zookeeper),对低延迟节点间通信的要求(因为所有节点现在彼此交谈并与Zookeeper交谈)以及Master /简单性的丧失奴隶复制。

在20M文档中,您完全在单节点主索引的约束下,具有实际上无限数量的从站,因此具有非常高的查询容量。我今天在生产环境中这样做,每个主人都有大约60M的文档,没有明显的问题。

问题是您是否需要NRT,多节点索引,自动故障转移,能够自动调整超过100M的文档?如果是这样,那么Master / Slave可能不适合你。

您可以查看将相同的数据写入两个不同的Solr Cloud群集,每个数据中心一个群集。您可以直接执行此操作,或使用类似Apache Flume的功能为您执行此操作 - 无论是执行此操作还是存在一些问题,因此真正的问题是处理那些值得获得Solr Cloud附加优势的问题吗? / p>