Я ищу несколько предложений о том, какой будет наилучший / эффективный метод обмена информацией между двумя сетевыми серверами Windows ...
У нас есть поисковая система для огромного архива изображений и веб-сайт, использующий индекс Lucene , который размещен на том же (первом) сервере Windows, а веб-сайт на основе Apache выполняет роль клиент поисковой системы для наших пользователей.
У нас есть второй сервер, который содержит вторую часть нашего архива изображений, где мы добавляем новые изображения, которые обрабатываются службой Windows, извлекают их метаданные, готовят эскизы и которые должны обновлять наш индекс Lucene с первого сервер ...
Служба Windows в основном использует компонент FileSystemWatcher для отслеживания различных файлов, которые добавляются (в тысячах) или удаляются, и она должна обновлять индекс нашей поисковой системы, чтобы включать в себя вновь добавленные файлы (сделать их видимыми для наших конечные пользователи) или удалить их из индекса на основе событий удаления файлов ...
Не могли бы вы предложить некоторые эффективные методы для обновления (уведомления), возможно, создать локальный небольшой индекс, а затем объединить его с основным ... Я работаю над обновлением системы, чтобы она была более эффективной. и иметь возможность работать с тысячами изображений и обновлять индекс как можно скорее.
В текущей версии мы использовали WCF с NetTcpBinding на пользовательском (произвольно выбранном) порту для связи с нашим главным сервером и обновления его индекса, но: 2 сервера объединены в сеть, и я мог бы просто поделиться основными индексами Lucene папка, которая будет видна нашему 2-му серверу, который может напрямую обновить его, когда он будет готов Сейчас я склоняюсь к этой опции . Это не очень гибко, но, скорее всего, состояние сети (конфигурации) не изменится (+ я предоставлю файл конфигурации) .
Что еще я мог бы использовать? :) MSMQ, IIS (веб-сервис) ?, WCF (снова ..?) Хотя в данный момент я сосредоточен на том, чтобы заставить компонент FileSystemWatcher работать без нареканий (чтобы не пропустить ни одного файла) и обрабатывать входящие изображения с высочайшей надежностью, очень скоро я перейду к этой "сетевой" части ...
Любые идеи будут очень цениться. (Извините за такой вопрос, но я бы не хотел упустить какие-либо действительно хорошие идеи на этот раз) и заранее благодарю!