我刚开始使用solr,并希望在下面的场景中提出您的建议。我们有2个数据中心,每个数据中心有3个节点(两个位于不同的aws区域,以获得位置优势)。我们要求他们询问每个数据中心是否有2个solr节点。所以每个数据中心只有2个solr节点和1个cassandra节点。我想了解它是否可以进行这种设置并且我很困惑solr节点是否会有索引上的数据?所有6个节点共享数据,4个solr节点上会有数据索引吗?请提供一些相关信息。感谢。
答案 0 :(得分:4)
简短回答是否,这不起作用。 如果您在DC中的一个节点上启用DSE搜索,则需要为DC中的所有节点启用它。
DSE Search为节点本地存储的数据构建lucene索引。假设你有一个带有RF1的3节点DC(节点只有1/3的数据),你只能打开其中一个节点上的搜索。 1/3的搜索查询将失败。
如果您的工作负载相对较小且SLA松散(包括c *和搜索)和/或如果您配置过度,那么您可以在主Cassandra节点上启用搜索。但是,在许多情况下,c *工作负载较重且SLA严密,搜索查询会对cassandra性能产生负面影响(因为它们与相同的硬件竞争)。
如果您希望仅在物理DC中的三个节点中的两个中启用搜索,则实现此目的的唯一方法是将物理DC实际拆分为两个逻辑DC。在你的情况下,你会有:
美国 - 卡桑德拉
美国 - 搜索
新加坡 - 卡桑德拉
新加坡 - 搜索
这为您的搜索和c *查询提供了地理位置,并且在您的c *和搜索工作负载之间提供workload isolation,因为它们与不同的OS子系统竞争。