Подтвердить что ты не робот

Является ли puma единственными многопоточными рельсами 4 http-сервера?

Я получил наш стек, преобразованный в Rails 4 (да!)

и я ищу, чтобы воспользоваться потокобезопасным кодом.

Puma работает при вставании, останавливаясь, по-видимому, другая проблема: (

Является ли Puma единственными многопоточными рельсами?

Thin -> EventMachine
Unicorn -> Forking
Puma -> multi-threaded

Mongrel -> don't care
Webbrick -> don't care
4b9b3361

Ответ 1

Нет. В алфавитном порядке:

  • Iodine альтернатива HTTP/Websocket Server и EventMachine (основанная на kqueue/epoll)
  • Net::HTTP::Server, несмотря на отсутствие рекламы, поддерживает многопоточность
  • Phusion Passenger поддерживает многопоточность с тех пор v4 beta
  • Rainbows! поддерживает несколько моделей concurrency, включая многопоточность
  • Reel - Celluloid -backed "evented", который также отлично подходит для многопоточных приложений и обеспечивает традиционную многопоточную блокировку ввода-вывода "
  • Thin имеет потоковый режим, который можно включить, передав --threaded или установив threaded: true в соответствующем файле конфигурации (например, bundle exec thin start --threaded)
  • WEBrick работает самостоятельно, поэтому нечестно исключить его как опцию; если вы используете встроенную версию Rails, вам нужно monkey-patch Rails::Server включить многопоточность
  • Zbatery основан на Rainbows! и поддерживает все модели concurrency, которые радуют! поддерживает

Обратите внимание, что в настоящее время MRI Ruby запускает только один поток, выполняемый за раз из-за его глобального блокирования интерпретатора (GIL). Вы действительно сможете использовать многопоточность, используя другую среду выполнения Ruby, такую ​​как JRuby или Rubinius, которые обеспечивают доступ к собственным потокам. Если вы решите пойти с JRuby, существует несколько JVM-зависимых серверов, которые стоит изучить.

Ответ 2

Тринидад хорош. Очень мощный сервер для разработки jRuby:

http://blog.jruby.org/2012/04/two-apps-one-trinidad/

http://railscasts.com/episodes/377-trinidad?view=comments

Вот несколько хороших тестов (сервер Trini бьет puma):

http://carlhoerberg.github.io/blog/2012/03/31/jruby-application-server-benchmarks/

Хороший учебник по настройке сервера Trinidad:

http://blog.jruby.org/2012/04/two-apps-one-trinidad/