Наша команда разработчиков в настоящее время изучает миграцию нашей поисковой системы в Apache Solr, и мы будем очень благодарны за советы по настройке. Мы индексируем около двухсот миллионов строк базы данных. Мы добавляем около ста тысяч новых строк в течение дня. Эти новые строки базы данных должны быть доступны для поиска в течение двух минут после их получения.
Мы не хотим, чтобы индексирование искажало поисковика, поэтому наша мысль состоит в том, чтобы два сервера Solr работали на разных машинах в настройке репликации. Первым экземпляром Solr будет указатель. Он будет использовать DataImportHandler для индексирования дельта и включить автосообщение, чтобы предотвратить чрезмерные ставки фиксации. Оптимизация индекса будет проводиться в течение запланированных периодов. Второй экземпляр Solr (подчиненный) будет основным поисковым устройством и будет иметь индексы, хранящиеся на твердотельных накопителях RAIDed.
Что нас беспокоит, это переход на другой ресурс. Наши поиски являются критически важными. Если основной искатель по какой-либо причине опускается, наша служба поиска автоматически отключит запросы к индектеру node. Однако индексирование не менее критично. Если индексчик умирает, нам нужно иметь теплый режим восстановления после сбоя. Есть ли рекомендуемый способ автоматизации перехвата master node при репликации Solr? Я начал изучать ZooKeeper, но я не был уверен, что это лучший подход.