我继承了一个旧的 rails 应用程序,我最近将其批发转移到了 AWS。基础设施的一部分是一个雪貂索引,它存在于每晚构建订阅者电子邮件的十个后端应用程序服务器上。我们有一个大型数据库,所以每个后端服务器每天重建索引大约需要四个小时。在 10 个应用服务器中,这需要很多额外的时间来保持其中大部分在否则会停止运行时继续运行。(总而言之,每组索引每台服务器大约 8GB)。
所有重建的雪貂指数都从主数据库读取相同的数据。我想知道的是 - 我可以让一个应用程序服务器进行每日重建,然后将最终重建的索引 rsync 到其他应用程序服务器吗?我对雪貂(或就此而言的导轨)了解得不够多,无法知道这里可能存在什么样的依赖关系。我认为索引就是索引,因此将完全相同的数据复制到所有服务器应该是“无争议的”。我是在杂草中还是在正确的轨道上?
我不明白为什么不。
我的意思是,你试过了吗?
Ferret 只是 Lucene 的一个 ruby 端口,您可以使用 Lucene 索引做一些巧妙的事情,例如 rsync,并且 NFS 共享它,只要服务器只需要对其进行只读访问即可。
但是,您必须停止索引才能运行复制过程,以便获得索引中数据的一致快照。
虽然这听起来像是一个批处理作业,运行了一会儿就停止了,ICBW。
我对你最好的建议是尝试一下。从池中取出几台服务器,并尝试在它们之间同步索引,然后对其进行测试。您应该能够定义一些测试用例来验证您的假设,对吗?
归档时间: |
|
查看次数: |
246 次 |
最近记录: |