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