Solr в мультитенантной среде - PullRequest
14 голосов
/ 24 марта 2010

Я подумываю об использовании Solr в мультитенантном приложении, и мне интересно, есть ли какие-либо передовые практики или вещи, на которые мне следует обратить внимание?

Один из вопросов, в частности, имеет ли смысл иметь ядро ​​Solr для каждого арендатора. Есть ли проблемы с большим количеством Solr Cores? Я рассматриваю возможность использования ядра на каждого арендатора, потому что я могу защитить каждое ядро ​​отдельно.

Спасибо

Ответы [ 3 ]

3 голосов
/ 28 июня 2011

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

Я понимаю, почему вы можете захотеть предоставить прямой доступ к API - например, если каждый «пользователь» является сайтом Drupal или аналогичным для среды с общим хостингом. Лучше всего было бы защитить различные URL, например, если бы у вас было / solr / admin / cores, / solr / client1 для ядра клиента и / solr / client2 для другого, у вас было бы три разных аутентификации, одна для вашего администратора и одна для ваших арендаторов. Это делается в контейнере (Jetty, Tomcat и т. Д.), Посмотрите на общую страницу Solr Security: http://wiki.apache.org/solr/SolrSecurity - вы захотите настроить базовый логин доступа для каждого пути таким же образом.

0 голосов
/ 14 июля 2011

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

0 голосов
/ 04 февраля 2011

Вы бы больше не использовали отдельный table in a database для каждого арендатора, чем solr core для каждого арендатора.

Если вы думаете о ядре как о таблице базы данных и организуете свой проект таким образом, чтобы каждое ядро ​​представляло объект в вашем проблемном пространстве, тогда вы можете лучше использовать solr.

Где светит solr, когда вам нужно проиндексировать текст, а затем быстро найти его. Если вы этого не делаете, вы также можете использовать реляционную базу данных.

Также из вашего вопроса о защите solr для каждого арендатора, я надеюсь, вы не предлагаете своим зарегистрированным пользователям получать прямой доступ к выходу solr? Ваши пользователи не должны иметь прямого доступа к вашему экземпляру solr.

Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...