master 宕机时如何处理 solr 复制
How to handle solr replication when master goes down
我有 solr setup,它是为 Master 和 slave 配置的。索引在 master 中发生,slave 每隔 2 分钟从 master 复制一次索引。所以从master到slave获取数据有2分钟的延迟。假设我的 master 在 10:42 处索引了一些数据,但由于某些硬件问题,master 在 10:43 处宕机了。所以现在在 10:42 索引的数据应该在 10:44 之前复制到从属服务器上(因为我们设置了两分钟的间隔)因为现在主服务器不可用,如何识别最后索引的数据是什么在 solr 主服务器中。 solr log 中有没有办法跟踪索引activity。
提前致谢
如果您将 Solr 日志设置为 INFO
,Solr 会记录索引操作。任何 commit/add 都会显示在日志中,因此您可以检查日志以了解最后一次添加的时间。不过,根据设置的不同,当服务器关闭时可能很难获取最后的日志。
您可以减少复制之间的时间以获得更实时的复制,或者改用 SolrCloud(它应该在索引文档时分发它们)。
还有 API 个端点(查看在浏览到 'replication' 状态页面时管理界面建立的连接)用于获取复制状态,但如果服务器没了
通常 - 如果服务器不可用,您将很难判断它最后一次被索引到的时间。您可以通过将索引任务中的索引时间存储在 Solr 之外来解决一些问题,例如,每次您从应用程序发送要索引的内容时更新内存缓存中的值或 MySQL。
我有 solr setup,它是为 Master 和 slave 配置的。索引在 master 中发生,slave 每隔 2 分钟从 master 复制一次索引。所以从master到slave获取数据有2分钟的延迟。假设我的 master 在 10:42 处索引了一些数据,但由于某些硬件问题,master 在 10:43 处宕机了。所以现在在 10:42 索引的数据应该在 10:44 之前复制到从属服务器上(因为我们设置了两分钟的间隔)因为现在主服务器不可用,如何识别最后索引的数据是什么在 solr 主服务器中。 solr log 中有没有办法跟踪索引activity。
提前致谢
如果您将 Solr 日志设置为 INFO
,Solr 会记录索引操作。任何 commit/add 都会显示在日志中,因此您可以检查日志以了解最后一次添加的时间。不过,根据设置的不同,当服务器关闭时可能很难获取最后的日志。
您可以减少复制之间的时间以获得更实时的复制,或者改用 SolrCloud(它应该在索引文档时分发它们)。
还有 API 个端点(查看在浏览到 'replication' 状态页面时管理界面建立的连接)用于获取复制状态,但如果服务器没了
通常 - 如果服务器不可用,您将很难判断它最后一次被索引到的时间。您可以通过将索引任务中的索引时间存储在 Solr 之外来解决一些问题,例如,每次您从应用程序发送要索引的内容时更新内存缓存中的值或 MySQL。