2016-03-02 4 views
0

У меня есть настройка solr, которая настроена для Master и slave. Индексирование происходит в главном, а ведомое устройство реплицирует индекс каждые 2 мин интервала от мастера. Таким образом, есть задержка в 2 минуты при получении данных от ведущего к ведомому. Предположим, что мой мастер индексировал в 10:42 некоторые данные, но из-за какой-то аппаратной проблемы мастер спустился в 10:43. Итак, теперь данные, индексируемые в 10:42, предполагали реплицировать на Slave на 10:44 (поскольку мы установили интервал в две минуты). Поскольку теперь мастер недоступен, как определить, какие последние проиндексированные данные в solr Master server , Есть ли способ в solr log отслеживать активность индекса.Как справиться с solr-репликацией, когда мастер идет вниз

Заранее спасибо

ответ

1

Solr делает журнал операций индексации, если у вас есть Solr лог установлен INFO. Любая фиксация/добавление появится в журнале, поэтому вы можете проверить журнал, когда было сделано последнее добавление. В зависимости от настройки, возможно, будет сложно получить последний журнал, если тогда сервер не работает.

Вы можете сократить время между репликациями, чтобы получить больше репликации в реальном времени, или вместо этого использовать SolrCloud (который должен распространять документы по мере их индексации).

Есть также конечные точки API (см. Какие соединения, которые интерфейс администратора делает при просмотре на странице статуса репликации) для получения статуса репликации, но это не поможет вам, если сервер ушел.

В общем случае, если сервер недоступен, вам будет сложно сообщить, когда он был последним проиндексирован. Вы можете обойти несколько проблем, сохранив время индексирования вне Solr из задачи индексирования, например, обновив значение в memcache или MySQL каждый раз, когда вы отправляете что-то, что нужно индексировать из вашего приложения.

Смежные вопросы