Вопрос

От всех статей я прочитал до настоящего времени о Mochiweb, я слышал это снова и снова, что Mochiweb обеспечивает очень хорошую масштабируемость. Мой вопрос в том, как именно Mochiweb получит свой собственность масштабируемости? Имеет ли он от внутренних свойств масштабируемости Erlang или MoChiweb у любого дополнительного кода, который явно позволяет ему хорошо масштабировать? Поместите другой путь, если бы я должен был написать простой HTTP-сервер в Erlang сам, с простым «циклом» (рекурсивной функцией) для обработки запросов, будет ли одинаковый уровень масштабируемости, что и простой веб-сервер, который построен с использованием MOCHIWEB Framework?

ОБНОВИТЬ: Я не планирую реализовать полный доступный веб-сервер, поддерживающий каждую возможную функцию. Мои требования очень специфичны - обрабатывать данные пост из HTML-формы с фиксированным элементом управления.

Это было полезно?

Решение

Mochiweb не масштабируется сама, насколько я понимаю. Это быстро, крошечная библиотека серверов, которая может обрабатывать тысячи запросов в секунду. Способ, которым он делает это не имеет ничего общего с «масштабируемостью» (помимо регулировки количества mochiweb_acceptorS, которые слушают в любой момент времени).

То, что вы получаете с MOCHIWEB - это прочная библиотека веб-сервера, а также функции масштабируемости Erlang. Если вы хотите запустить один сервер MOCHIWEB, когда вступит запрос, вы все равно можете загрузить работу обработки, которую требуется запрос на любой машинный, благодаря распределенной инфраструктуре узела Erlang и дешевым сообщением. Если вы хотите запустить несколько серверов MOCHIWEB, вы можете поставить их за балансировщик нагрузки и использовать распределенные функции MNNIA, чтобы синхронизировать данные сеанса между машинами.

Точка, Mochiweb маленький и быстрый (достаточно). Отказ Erlang - это силовой инструмент масштабируемости.


Если вы бросаете свое собственное серверное решение, вы, вероятно, можете встретиться или победить эффективность MOCHIWEB и «масштабируемость» из коробки. Но тогда вам придется переосмыслить все, о чем они уже подумали, и вам придется боесть тестировать это самостоятельно.

Другие советы

Наверное. :-)

Если вы должны были написать веб-сервер, который обрабатывает каждый запрос в отдельном процессе (световой веса в Erlang), вы можете легко достичь той же «масштабируемости». Конечно, набор функций будет отличаться, если вы не реализуете все, что имеет Mochiweb.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top