Resin — это веб-сервер и сервер приложений Java , разработанный Caucho Technology . В настоящее время доступны только две версии: Resin ( GPL ), которая бесплатна для использования в производстве, и Resin Pro, разработанная для корпоративных и производственных сред с лицензионной платой. Resin поддерживает стандарт Java EE и имеет mod_php/ PHP -подобный движок под названием Quercus.
Resin (GPL) предлагает основные функции для обслуживания веб-сайтов и приложений, в то время как Resin Pro включает в себя дополнительные оптимизации, такие как:
Встроенное кэширование: Resin Pro использует встроенные механизмы кэширования для повышения производительности.
Кластеризация: Resin Pro поддерживает публичную, частную или гибридную кластеризацию, повышая масштабируемость и избыточность.
Расширенная система администрирования и контроля работоспособности: обеспечивает расширенную систему администрирования и мониторинга работоспособности для эффективного управления сервером.
Репликация сеансов HTTP: обеспечивает высокую доступность за счет репликации сеансов HTTP на нескольких экземплярах сервера.
Распределенная репликация кэша: повышает производительность приложений за счет репликации кэшированных данных в распределенной среде.
Автоматическое восстановление и диагностические отчеты: Resin Pro предлагает автоматические механизмы восстановления и подробные диагностические отчеты для помощи в устранении неполадок .
Хотя Resin в основном основан на Java, критические компоненты его сетевой инфраструктуры написаны на оптимизированном C, что обеспечивает баланс функций и производительности. Выпущенный в 1999 году, Resin имеет долгую историю, что делает его одним из самых зрелых и хорошо зарекомендовавших себя серверов приложений и веб-серверов.
Характеристики продукта
Resin Pro был разработан с учетом следующих особенностей:
Динамическая кластеризация: блокировка была заменена неблокирующими атомарными операциями, что позволило устранить узкие места, связанные с конкуренцией, улучшить производительность async/epoll и сократить накладные расходы потоков для обработки 100 000 запросов в секунду.
Поддержка облака: Одна команда может добавлять или удалять членов кластера Elastic. Топология кластера, балансировка нагрузки, кэширование, обмен сообщениями и управление автоматически адаптируются к динамическим серверам.
Скомпилированный PHP на JVM: повышает производительность, масштабируемость и безопасность приложений PHP, позволяя коду PHP напрямую вызывать объекты Java.
Безопасность посредством интеграции OpenSSL: комплексная структура безопасности для аутентификации приложений, авторизации и безопасности на основе SSL на транспортном уровне;
Интеллектуальный программный балансировщик нагрузки: нагрузка приложений автоматически распределяется между ресурсами для их балансировки.
Кэширование прокси-сервера: кэширование Java может повысить производительность приложений за счет сохранения результатов длительных вычислений и снижения нагрузки на базу данных и времени отклика приложения.
Масштабируемость
Эластичная кластеризация/поддержка облака [2]
Кластеризация 3-го поколения, оптимизированная для развертываний Virtualization 2.0, EC2 и OpenStack [3]
Доля рынка Resin невелика в общей схеме серверов приложений Java, но некоторые сайты с большим трафиком используют его, такие как фондовая биржа Торонто, Salesforce.com, Condé Nast (материнская компания Wired, Vogue, GQ) и CNET. [10] В обзоре NetCraft за февраль 2012 года указано, что Resin вырос до 4 700 000 сайтов; Resin был единственным упомянутым веб-сервером на основе Java. [11]
Страница 2012 года на сайте вики Caucho описывает процедуру тестирования, результаты которой показывают, что Resin тестировал файлы размером 0k (пустая HTML-страница), 1K, 8K и 64K байт. На каждом уровне Resin соответствовал или превосходил производительность веб-сервера Nginx . [12]
Quercus
Quercus — это реализация языка PHP на основе Java, входящая в состав Resin. Согласно слайд-шоу, представленному Эмилем Онгом (из Caucho) на встрече Java Meetup Group в Сан-Франциско в апреле 2008 г., касающемуся Resin 3.1, существенное различие в работе Quercus между версиями Resin Open Source и Resin Professional заключается в том, что в Resin Professional PHP компилируется в байт-код Java . Напротив, в версии с открытым исходным кодом PHP выполняется интерпретатором . [ 13]
В 2007 году Каучо заявил, что Quercus быстрее стандартного PHP 5 (PHP 8 с JIT намного быстрее старых версий PHP; PHP 5 больше не поддерживается), [14] [15] хотя это справедливо только для версии, скомпилированной с помощью JIT в Resin Professional. [16] Quercus поставляется с Resin.
Лицензирование
Одна лицензия охватывает все компоненты архитектуры Resin.
Resin предоставляется как в версии с открытым исходным кодом под лицензией GPL, так и в версии Pro с улучшениями для предприятий.
^ "Пол Коуэн обсуждает сервер приложений Resin и облако". Infoq.com. Архивировано из оригинала 2012-10-19 . Получено 2012-10-25 .
^ "Caucho: Поддержка Resin Cloud: Кластеризация 3-го поколения для масштабирования Elastic Cloud" (PDF) . s3.amazonaws.com. Архивировано (PDF) из оригинала 2015-04-04 . Получено 2012-10-25 .
^ "Resin Can Now Can Act As a Drop-in Replacement for Memcached Solution". Infoq.com. Архивировано из оригинала 20.11.2012 . Получено 25.10.2012 .
^ "Caucho Technology » Архив блога » Resin Pro Health System сейчас и в будущем". Blog.caucho.com. 2011-08-26. Архивировано из оригинала 2012-10-25 . Получено 2012-10-25 .
^ "Caucho Resin официально сертифицирован по профилю Java EE 6 Web". Infoq.com. Архивировано из оригинала 2012-08-22 . Получено 2012-10-25 .
^ "Caucho Resin | Java Application Server | Java EE | PaaS Ready » Java EE Web Profile и далее". Caucho.com. Архивировано из оригинала 2012-10-01 . Получено 2012-10-25 .
^ "Caucho Resin | Java Application Server | Java EE | PaaS Ready » Java CDI | Candi". Caucho.com. Архивировано из оригинала 2012-10-24 . Получено 2012-10-25 .
^ "Caucho Resin | Java Application Server | Web Server | Java EE Certified | PaaS/Cloud Ready » Resin Web Server". Caucho.com. 2012-02-07. Архивировано из оригинала 2012-10-31 . Получено 2012-10-25 .
^ "Опрос веб-серверов за февраль 2012 г. | Netcraft". News.netcraft.com. 2012-02-07. Архивировано из оригинала 2012-10-31 . Получено 2012-10-25 .
^ "Тесты производительности NginX 1.2.0 и Resin 4.0.29". Caucho.com. Архивировано из оригинала 2012-08-25 . Получено 2012-04-01 .
^ Эмиль Онг (2008-04-09), Начало работы с Quercus (PDF) , Caucho Technology, архивировано из оригинала (PDF) 2011-07-08 , извлечено 2009-08-19(сопроводительная запись в блоге Каучо, архив 2012-07-16 на archive.today , дополнительная копия PDF, архив 2011-07-14 на Wayback Machine )
^ "PHP на Java: лучшее из двух миров?". Infoq.com. Архивировано из оригинала 29-09-2012 . Получено 25-10-2012 .
^ "Powered by Google Docs" (PDF) . Архивировано (PDF) из оригинала 2013-10-05 . Получено 2012-10-25 .
^ Новый ежемесячный информационный бюллетень Caucho, Caucho Technology, 2008-02-26, архивировано из оригинала 2013-05-12 , извлечено 2013-02-27 , Я думаю, что мы наконец-то приближаемся к моменту, когда мы достаточно точно имитируем другую реализацию PHP (за исключением того, что у нас есть распределенные сеансы, мы быстрее в скомпилированном режиме и т. д. :-)).