Каковы преимущества и недостатки Servlet Container для установки Solr?
В вики-странице SolrInstall перечислены семь разных контейнеров/сервлетов, совместимых с Solr:
- Tomcat
- Jetty
- Смола
- JBoss
- WebSphere
- Weblogic
- Glassfish
Я уверен, что "лучший" субъективен, поэтому я просто скажу, что мои критерии: проще всего настроить, лучше всего подходят для поиска с небольшим, редко обновляемым набором данных и с наименьшим количеством ошибок.
Jetty и Tomcat имеют apt-get solr-пакеты, поэтому они явно лидируют для некоторых. Jetty используется в демонстрационной установке, но есть некоторые замечания о том, что Jetty имеет некоторые трудности с обработкой Unicode в некоторых случаях. Tomcat - общий выбор, но я понимаю, что он не такой легкий и имеет множество функций, которые не нужны Solr.
Стоит ли рассматривать любой из других? Есть ли какие-то важные про и минусы, о которых я должен знать?
Ответы
Ответ 1
Последние 4 могут быть автоматически исключены - это полномасштабные серверы приложений, которые не требуются Solr. Если у Jetty проблемы с unicode, то это тоже. Вы уходите с Tomcat и Resin. Оба являются полнофункциональными контейнерами сервлетов, я бы пошел на более широко используемый - Tomcat. Это достаточно легкий вес.
Ответ 2
В версиях Solr менее 4 версия Jetty была исправлена, чтобы иметь дело с проблемой unicode, ведь команда Solr dev обнаружила ошибку. В Jetty 7 и 8 был применен патч. Solr 4 теперь использует Jetty 8.
Что касается Jetty против Tomcat, я всегда считал это вопросом предпочтения, я не видел, чтобы кто-то показывал реальную разницу в производительности между ними!
Ответ 3
В недавнем обсуждении многие разработчики solr указали, что рекомендуется использовать Jetty, в частности версию Jetty, поставляемую с solr. Это версия, наиболее проверенная против и наиболее используемая.
Ответ 4
Следуя Solr5, Solr следует использовать как черный ящик.
https://cwiki.apache.org/confluence/display/solr/Major+Changes+from+Solr+4+to+Solr+5
http://grokbase.com/t/lucene/solr-user/15772hc1jd/jetty-in-solr-5-2-0
Как и в Solr6, он по-прежнему использует Jetty, но разработчики Solr могут создавать свой собственный сервер приложений в будущем. Solr следует использовать как услугу, а не как войну.
Ответ 5
Разработчики SOLR сами рекомендуют упакованный Jetty (https://cwiki.apache.org/confluence/display/solr/Running+Solr+on+Jetty):
Рекомендуется использовать предоставленный сервер Jetty для оптимальной производительности.
SOLR 5 планируется отправить без WAR, как самостоятельное приложение:
https://issues.apache.org/jira/browse/SOLR-4792