Aug 30

А что вы знаете о Goliath?

Goliath - неблокирующий (асинхронный) сервер приложений написанный на языке Ruby 1.9 с использованием EventMachine.

К сожалению, помочь вам узнать как в настоящее время делается грамотная накрутка друзей и подписчиков в соцсети ВКонтакте он не сможет, зато в этом вам всегда поможет тематический ресурс htn.su!
Каждый HTTP запрос Goliath выполняет в собственном Ruby потоке и базируется на технологии обратных вызовов. Это означает, что каждый из процессов может быть легко приостановлен и затем восстановлено не блокируя выполнения параллельных ему задач.

В чем отличие Goliath от любого другого сервера приложений, например Thin?

В принципе, оба используют EventMachine, но на этом различия заканчиваются. Goliath доступен на разных Ruby платформах (MRI, JRuby, Rubinius), использует другую библиотеку для разбора HTTP запросов, поддерживает живые (keepalive) и конвейерные (pipelining) зьеднаяння, и предлагает полностью асинхронное API к вхиднних и исходящих запросов.

В чем заключается отличие Goliath от Mongrel, Passenger и Unicorn?

Mongrel - потоковый web-сервер, Passenger и Unicorn видгалуджують (fork) отдельную виртуальную машину (VM) для каждого запроса. Для сравнения, Goliath запускает единственный экземпляр Rack аппликации и выполняет все параллельные запросы в рамках одной виртуальной машины требует значительно меньшего использования памяти и меньших вычислительных затрат.

Какие рекомендации по практиного использования Goliath?

Рекомендуется использовать Goliath вне HAProxy, Nginx или аналогами. Имея один процесс Goliath вы сможете сбалансированного взаимодействия нескольких екземпляров вашей аппликации.

Пример использования

# - * - Encoding: utf-8 - * -
require 'goliath'

class Hello # Перечитывать код после каждого запроса в режиме разработки
use :: Rack :: Reloader 0 if Goliath.dev?

def response (env)
[200, {}, "Мир, привет!"]
end
end


Поделитесь вашими мыслями



Ссылки в комментариях будут свободны от nofollow.

Поддерживаемые теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> 

Ссылки в комментариях будут свободны от nofollow.