Вам действительно нужно создать сервер запросов / индексирования самостоятельно?
Рассматривали ли вы ElasticSearch ?Он автоматически разделит и реплицирует ваш индекс, вам просто нужно настроить, сколько разделов вы хотите и сколько реплик для каждого раздела.Это также даст вам простой HTTP-интерфейс для индексации и запроса.В ElasticSearch все узлы / экземпляры одинаковы, поэтому вы можете отправлять и запрашивать документы на любом из узлов.
С индексом всего 50 КБ, я думаю, один раздел с несколькими репликами будет обрабатывать ваши 100 запросов в секунду.требование.
В любом случае кажется, что ваши требования невелики.Документы размером 50 КБ с размером менее 1 КБ кажутся подходящими для индекса в памяти (RAMDirectory в lucene).В зависимости от запросов, которые будут отправлены в индекс, у вас может быть меньше машин, обрабатывающих 100 запросов в секунду.
Индексирование новых документов может быть выполнено разными способами, учитывая, что у вас нет жестких требований к задержке обновления, а количество новых документов очень мало.Вы можете отправлять документы по HTTP каждому экземпляру, отправлять через ssh / ftp CSV-файл (или что-то еще) с обновленными документами, и каждый раз каждый день индексировать этот файл.