The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."  +/
Сообщение от opennews (ok) on 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.dev/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.dev/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.dev/opennews/art.shtml?num=41008

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."  +/
Сообщение от Crazy Alex (ok) on 05-Ноя-14, 23:18 
Отлично. Вот как-то так и надо.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."  +5 +/
Сообщение от Аноним (??) on 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 как к серверному дистрибутиву.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."  +/
Сообщение от Аноним (??) on 05-Ноя-14, 23:32 
Чьё недоверие?
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

6. "Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."  +2 +/
Сообщение от Аноним (??) on 05-Ноя-14, 23:41 
> Чьё недоверие?

Анонимусов.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

13. "Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."  –2 +/
Сообщение от Аноним (??) on 06-Ноя-14, 07:02 
Ну как, всяких "профессионалов" типа тигаров из захолустных дешевых хостеров с их бздами.
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

23. "Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."  +1 +/
Сообщение от YetAnotherOnanym (ok) on 06-Ноя-14, 11:03 
> захолустных дешевых хостеров

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

Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

5. "Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."  –4 +/
Сообщение от Stax (ok) on 05-Ноя-14, 23:41 
Где вы эти строки про ubuntu вообще нашли? Из головы взято?
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

7. "Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."  +/
Сообщение от JerryBruckheimer (ok) on 05-Ноя-14, 23:54 
Эти строки в секции "Installing" опубликованы. (репозиторий на гитхаб: https://github.com/facebook/proxygen)
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

10. "Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."  +/
Сообщение от YetAnotherOnanym (ok) on 06-Ноя-14, 01:56 
> в серверной инфраструктуре Facebook используется Ubuntu.

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

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

11. "Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."  +/
Сообщение от Anonim (??) on 06-Ноя-14, 02:58 
Не Ubuntu. Далеко не Ubuntu.
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

15. "Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."  –3 +/
Сообщение от Аноним (??) on 06-Ноя-14, 07:04 
> Не Ubuntu. Далеко не Ubuntu.

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

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

24. "Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."  +1 +/
Сообщение от Аноним (??) on 06-Ноя-14, 17:42 
Клей нюхать - не модно и не моложёжно! Переходи уже на синтетику.
Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

29. "Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."  +/
Сообщение от Аноним (??) on 06-Ноя-14, 22:40 
Чёрным по белому "tested" написано, троль. Про сервера фейса и слова нет.
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

8. "Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."  +/
Сообщение от Аноним (??) on 06-Ноя-14, 00:58 
> и вызов epoll. Код Proxygen распространяется под лицензией BSD.

А смысл в BSDL?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

9. "Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."  +2 +/
Сообщение от YetAnotherOnanym (ok) on 06-Ноя-14, 01:48 
А какой Ваш вариант?
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

14. "Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."  –2 +/
Сообщение от Аноним (??) on 06-Ноя-14, 07:02 
> А смысл в BSDL?

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

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

17. "Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."  +3 +/
Сообщение от Аноним (??) on 06-Ноя-14, 08:11 
или могли использовать у себя без проблем, свойственным GPL. как там уже gcc поживает - не забывают добавить исключения в каждую версию? а то забудут и окажется что программа уже как бы и не ваша..
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

25. "Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."  +/
Сообщение от Аноним (??) on 06-Ноя-14, 18:08 
Враньё
Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

26. "Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."  +/
Сообщение от XoRe (ok) on 06-Ноя-14, 19:05 
Авторитетно
Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

28. "Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."  +/
Сообщение от Аноним (??) on 06-Ноя-14, 20:11 
Спасибо, я старался.
Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору

34. "Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."  +1 +/
Сообщение от Аноним (??) on 07-Ноя-14, 09:27 
> использовать у себя без проблем, свойственным GPL

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

Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

16. "Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."  +/
Сообщение от Аноним (??) on 06-Ноя-14, 07:44 
Одобрение. Все надо писать на C. http://www.webtoolkit.eu/wt
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

18. "Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."  +/
Сообщение от Аноним (??) on 06-Ноя-14, 08:29 
Для начала научись правильно писать название языка
Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

20. "Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."  +/
Сообщение от Zontus on 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"));

Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

22. "Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."  –1 +/
Сообщение от Аноним (??) on 06-Ноя-14, 10:31 
c++11 ад
Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

33. "Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."  +1 +/
Сообщение от Аноним (??) on 07-Ноя-14, 07:57 
Казалось бы, при чём здесь C++11?
Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

27. "Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."  +/
Сообщение от Аноним (??) on 06-Ноя-14, 19:40 
Ты вообще этим пользовался?
Тулкит нормальный, но с дубовым набором виджетов. Его основной юзкейс и по совместимости предел - Web UI для крестовых приложений.
Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

19. "Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."  –1 +/
Сообщение от пургенту on 06-Ноя-14, 09:21 
Чем это изделие лучше, чем libuv в связке с http-parser?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

21. "Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."  +2 +/
Сообщение от Аноним (??) on 06-Ноя-14, 10:29 
теперь node js ненужен?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

30. "Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."  +/
Сообщение от Аноним (??) on 06-Ноя-14, 23:01 
You will need at least 2 GiB of memory to compile proxygen and its dependencies
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

31. "Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."  +1 +/
Сообщение от Аноним (??) on 06-Ноя-14, 23:01 
"при тестировании на системе с CPU Intel Xeon E5-2670 @ 2.60GHz c 16 GiB ОЗУ"
А на десктопе сколько? А то ксеоны дорогие очень.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

35. "Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."  +/
Сообщение от Аноним (??) on 07-Ноя-14, 16:14 
>А на десктопе сколько?

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

Ответить | Правка | ^ к родителю #31 | Наверх | Cообщить модератору

37. "Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."  +/
Сообщение от Аноним (??) on 08-Ноя-14, 22:25 
где поддержка websockets, [сenzored]ь !! почему только ..ие костыли вроде SPDY и прочего уг мамонта ? когда уже слоупоков из девелоперов компаний fortune 500 - выпилят ?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

39. "Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."  +/
Сообщение от Аноним (??) on 12-Ноя-14, 23:21 
что -то жирный сервер у них, 16G RAM вы не находите ?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

40. "Facebook открыл код Proxygen, фреймворка для создания HTTP-с..."  +/
Сообщение от Аноним (??) on 12-Ноя-14, 23:23 
с sandbox -ом что случилось ?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру