URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 99849
[ Назад ]

Исходное сообщение
"Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."

Отправлено opennews , 05-Ноя-14 23:18 
Facebook объявил (https://code.facebook.com/posts/1503205539947302/introducing.../) об открытии исходных текстов проекта Proxygen (https://github.com/facebook/proxygen), в рамках которого подготовлена коллекция С++ библиотек, используемых для создания высокопроизводительных серверных и клиентских приложений, работающих по протоколу HTTP. В состав также входит простая реализация HTTP-сервера с поддержкой протоколов HTTP/1.1, SPDY/3, SPDY/3.1, TLS и частично HTTP/2 (в разработке). При обработке соединений применяются неблокирующие операции ввода/вывода и вызов epoll. Код Proxygen распространяется (https://github.com/facebook/proxygen) под лицензией BSD.


Proxygen не претендует на роль замены Apache httpd и nginx, а сфокусирован на развитии фреймворка, обладающего разумными настройками по умолчанию и подходящего для простой интеграции функцуий работы в роли HTTP-сервера или клиента в уже существующие приложения на языке C++. Изначально Proxygen был создан как высокопроизводительный HTTP/HTTPS-прокси для балансировки соединений, но позднее перерос в универсальный фреймворк c реализацией простого HTTP-стека, позволяющий превращать уже существующие приложения в самостоятельные http-сервисы.

Библиотека предлагает четыре уровня абстракции: сеанс, кодек, транзакцию и обработчик. Основным высокоуровневым элементом библиотеки является объект HTTPSession, определяющий  сеанс соединения. За каждым сеансом закрепляется кодек (HTTPCodec), определяющий специфичные для используемого протокола особенности сериализации сообщений. Для каждого запроса и ответа, обработанных внутри сеанса, создаётся объект HTTPTransaction, связанный с отдельным индентификатором. Непосредственно логика обработки запросов определяется через callback-вызовы HTTPTransation::Handler.

<center><a href="https://raw.githubusercontent.com/facebook/proxygen/master/C... src="http://www.opennet.me/opennews/pics_base/0_1415216421.png" style="border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;" title="" border=0></a></center>


Proxygen отлично протестирован и уже помог обработать в Facebook многие триллионы соединений. Фреймворк обеспечивает достаточно неплохую производительность, например, простой тестовый сервер (https://github.com/facebook/proxygen/blob/master/proxygen/ht...) способен обработать до 300 тысяч запросов в секунду при запуске 8 потоков-обработчиков и до 40 тысяч при одном потоке, при тестировании на системе с CPU Intel Xeon E5-2670 @ 2.60GHz c 16 GiB  ОЗУ.
<center><a href="https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-xap1/t39.2365... src="http://www.opennet.me/opennews/pics_base/0_1415217837.png" style="border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;" title="" border=0></a></center>

URL: https://code.facebook.com/posts/1503205539947302/introducing.../
Новость: http://www.opennet.me/opennews/art.shtml?num=41008


Содержание

Сообщения в этом обсуждении
"Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."
Отправлено Crazy Alex , 05-Ноя-14 23:18 
Отлично. Вот как-то так и надо.

"Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."
Отправлено Аноним , 05-Ноя-14 23:21 
Note that currently this project has only been tested on Ubuntu 14.04
...
The library has been battle-tested with many, many trillions of HTTP(S) and SPDY requests.

Делаем вывод, что в серверной инфраструктуре Facebook используется Ubuntu. Вот вам и недоверие к Ubuntu как к серверному дистрибутиву.


"Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."
Отправлено Аноним , 05-Ноя-14 23:32 
Чьё недоверие?

"Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."
Отправлено Аноним , 05-Ноя-14 23:41 
> Чьё недоверие?

Анонимусов.


"Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."
Отправлено Аноним , 06-Ноя-14 07:02 
Ну как, всяких "профессионалов" типа тигаров из захолустных дешевых хостеров с их бздами.

"Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."
Отправлено YetAnotherOnanym , 06-Ноя-14 11:03 
> захолустных дешевых хостеров

Дороговизна и размещение серверов и офиса в Дефолт-Сити - основополагающие достоинства приличного хостера, да.


"Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."
Отправлено Stax , 05-Ноя-14 23:41 
Где вы эти строки про ubuntu вообще нашли? Из головы взято?

"Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."
Отправлено JerryBruckheimer , 05-Ноя-14 23:54 
Эти строки в секции "Installing" опубликованы. (репозиторий на гитхаб: https://github.com/facebook/proxygen)

"Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."
Отправлено YetAnotherOnanym , 06-Ноя-14 01:56 
> в серверной инфраструктуре Facebook используется Ubuntu.

Всё правильно. Сам Facebook написан на PHP, на серверах - Ubuntu.


"Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."
Отправлено Anonim , 06-Ноя-14 02:58 
Не Ubuntu. Далеко не Ubuntu.

"Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."
Отправлено Аноним , 06-Ноя-14 07:04 
> Не Ubuntu. Далеко не Ubuntu.

Сейчас нам задвинут про QNX, не иначе. А у опача вот тут как-то сервак ошибкой на кривой урле икнул. Оно бы может и не заслуживало бы внимания. Если б не баннер с указанием убунты. Послали опачисты бзды в пень...


"Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."
Отправлено Аноним , 06-Ноя-14 17:42 
Клей нюхать - не модно и не моложёжно! Переходи уже на синтетику.

"Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."
Отправлено Аноним , 06-Ноя-14 22:40 
Чёрным по белому "tested" написано, троль. Про сервера фейса и слова нет.

"Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."
Отправлено Аноним , 06-Ноя-14 00:58 
> и вызов epoll. Код Proxygen распространяется под лицензией BSD.

А смысл в BSDL?


"Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."
Отправлено YetAnotherOnanym , 06-Ноя-14 01:48 
А какой Ваш вариант?

"Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."
Отправлено Аноним , 06-Ноя-14 07:02 
> А смысл в BSDL?

Ну как, чтобы вы могли бесплатно попахать на фэйсбук :).


"Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."
Отправлено Аноним , 06-Ноя-14 08:11 
или могли использовать у себя без проблем, свойственным GPL. как там уже gcc поживает - не забывают добавить исключения в каждую версию? а то забудут и окажется что программа уже как бы и не ваша..

"Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."
Отправлено Аноним , 06-Ноя-14 18:08 
Враньё

"Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."
Отправлено XoRe , 06-Ноя-14 19:05 
Авторитетно

"Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."
Отправлено Аноним , 06-Ноя-14 20:11 
Спасибо, я старался.

"Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."
Отправлено Аноним , 07-Ноя-14 09:27 
> использовать у себя без проблем, свойственным GPL

Ну-ка, ну-ка, подробнее? Какие-такие проблемы свойственны gpl?


"Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."
Отправлено Аноним , 06-Ноя-14 07:44 
Одобрение. Все надо писать на C. http://www.webtoolkit.eu/wt

"Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."
Отправлено Аноним , 06-Ноя-14 08:29 
Для начала научись правильно писать название языка

"Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."
Отправлено упмем , 07-Ноя-14 04:10 
> Для начала научись правильно писать название языка

Это вы про Ц што ле?


"Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."
Отправлено Zontus , 06-Ноя-14 10:21 
Дай мне это развидеть:

source

#include <Wt/WLineEdit>
#include <Wt/WPushButton>
#include <Wt/WTemplate>

Wt::WTemplate *t = new Wt::WTemplate(Wt::WString::tr("WTemplate-example"));

t->bindWidget("name-edit", new Wt::WLineEdit());
t->bindWidget("save-button", new Wt::WPushButton("Save"));
t->bindWidget("cancel-button", new Wt::WPushButton("Cancel"));


"Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."
Отправлено Аноним , 06-Ноя-14 10:31 
c++11 ад

"Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."
Отправлено Аноним , 07-Ноя-14 07:57 
Казалось бы, при чём здесь C++11?

"Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."
Отправлено Аноним , 06-Ноя-14 19:40 
Ты вообще этим пользовался?
Тулкит нормальный, но с дубовым набором виджетов. Его основной юзкейс и по совместимости предел - Web UI для крестовых приложений.

"Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."
Отправлено пургенту , 06-Ноя-14 09:21 
Чем это изделие лучше, чем libuv в связке с http-parser?

"Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."
Отправлено Аноним , 06-Ноя-14 10:29 
теперь node js ненужен?

"Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."
Отправлено Аноним , 06-Ноя-14 23:01 
You will need at least 2 GiB of memory to compile proxygen and its dependencies

"Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."
Отправлено Аноним , 06-Ноя-14 23:01 
"при тестировании на системе с CPU Intel Xeon E5-2670 @ 2.60GHz c 16 GiB ОЗУ"
А на десктопе сколько? А то ксеоны дорогие очень.

"Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."
Отправлено Аноним , 07-Ноя-14 16:14 
>А на десктопе сколько?

Для обработки 300к соединений? 8ядерный amd fx-8350 потянет. Главное сетвушки подобрать норм


"Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."
Отправлено Аноним , 08-Ноя-14 22:25 
где поддержка websockets, [сenzored]ь !! почему только ..ие костыли вроде SPDY и прочего уг мамонта ? когда уже слоупоков из девелоперов компаний fortune 500 - выпилят ?

"Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."
Отправлено Аноним , 10-Ноя-14 09:45 
казалось бы, при чем здесь erlang и его 2.8 млн коннектов на сервере? правда, памяти хочет 196 гигов :)


"Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."
Отправлено Аноним , 12-Ноя-14 23:21 
что -то жирный сервер у них, 16G RAM вы не находите ?

"Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."
Отправлено Аноним , 12-Ноя-14 23:23 
с sandbox -ом что случилось ?