Size: a a a

2020 September 09

AN

Alexander N in pro.cxx
Есть следующий вопрос - если бы вы разрабатывали микросервисы, взаимодействующие между собой какой протокол вы бы использовали? И ещё с использованием чего можно достаточно- удобно разрабатывать HTTP(S/2) API?
источник

AN

Alexander N in pro.cxx
Я вот думаю может Cap'n proto для взаимодействия между процессами заюзать, но вот с API сложнее т.к. нормальных реализаций HTTP не видал
источник

AK

Andrei K in pro.cxx
Если сервисы между собой не особо хотят сэкономить на пересылке данных, то json-rpc
источник

AK

Andrei K in pro.cxx
На boost asio + boost beast
источник

AK

Andrei K in pro.cxx
Если хочется сэкономить на канале и на сериализации/десереализации, то websoket-ы с тем же набором и плюс google protobuf поверх
источник

AK

Andrei K in pro.cxx
Если еще хочется сэкономить, то тогда чистые сокеты без boost beast и google protobuf для сериализации.
источник

IZ

Ilia Zviagin in pro.cxx
Aleksei Budyakov
Всем привет. Изучаю C++ довольно давно. Курсера, степик, универ.

Сейчас углубляю знания читая Professional C++ by Marc Gregoire, С++ High Preformance by Victor Sehr.
Хотелось бы поинтересоваться у людей с большим практическим опытом и знаниями, о том что можно было бы еще толкового почитать.

Начал изучать CMake. Туториал с сайта CMake, различные видео с ютуба, в том числе Jason Turner (cpp weekly)
И все выглядит как пояснение набора команд. Хотелось бы больше идейной информации об организации проектов CMake + Conan / vcpkg.
Как лучше хранить те или иные компоненты проекта, управлять зависимостями, использованиe CPack, CTest.  
Не посоветуети ли какие-либо источники и по системе сборки? И что думаете об альтернативах вроде Meson, build2.
В инете пишут что неплохая книга Professional CMake: A Practical Guide by Craig Scott (Зеленая такая), но она платная и надо ли оно.

Так же интересно поинетресоваться у людей с опытом промышленной разработки о паттернах проектирования.
Часто ли применяются, что можно почитать по архитектуре приложений применительно к плюсам, насколько важно в реальных проектах продумывать изначально архитектуру/паттерны.
источник

IZ

Ilia Zviagin in pro.cxx
Andrei K
Если хочется сэкономить на канале и на сериализации/десереализации, то websoket-ы с тем же набором и плюс google protobuf поверх
а зачем WEB-сокеты?
источник

AK

Andrei K in pro.cxx
Я же написал. «Если хочетчя сэкономить на канале и сериализации». Очевидно, что кидаться сообщениями по вебсокету раз в 30-100 дешевле чем по чистому http
источник

AK

Andrei K in pro.cxx
При этом вся потенциальная инфраструктура httpшная для установки соединения — остаётся доступной, в отличие от чистых сокетов.
источник

IZ

Ilia Zviagin in pro.cxx
Andrei K
Я же написал. «Если хочетчя сэкономить на канале и сериализации». Очевидно, что кидаться сообщениями по вебсокету раз в 30-100 дешевле чем по чистому http
с чего это?
источник

IZ

Ilia Zviagin in pro.cxx
Andrei K
Я же написал. «Если хочетчя сэкономить на канале и сериализации». Очевидно, что кидаться сообщениями по вебсокету раз в 30-100 дешевле чем по чистому http
Я просто не знаю спецификацию и API Web socket, вот хочу узнать, с чего оно вдруг будет быстрее.
источник

VA

Valery Antopol in pro.cxx
Ты устанавливаешь соединение HTTP-запросом, получаешь HTTP ответ. Дальше по этому соединению можно посылать данные в виде пакетов
Size + packet_type + mask + data
Данные в data xor'ятся с mask
источник

AK

Andrei K in pro.cxx
Ilia Zviagin
Я просто не знаю спецификацию и API Web socket, вот хочу узнать, с чего оно вдруг будет быстрее.
Возможно стоит ознакомиться в таком случае.

Но довольно очевидно, что упаковывать каждый пэйлоад в хттп заголовок и переподнимать соединение, перепроходить TLS handshake дольше, чем установить по сути прямое соединение один раз с оверхедом в десять байт на датафрейм.
источник

IZ

Ilia Zviagin in pro.cxx
Andrei K
Возможно стоит ознакомиться в таком случае.

Но довольно очевидно, что упаковывать каждый пэйлоад в хттп заголовок и переподнимать соединение, перепроходить TLS handshake дольше, чем установить по сути прямое соединение один раз с оверхедом в десять байт на датафрейм.
А кто тебя заставляет это делать на голом сокете, даже и с SSL ?
источник

AK

Andrei K in pro.cxx
Делать что?
источник

AK

Andrei K in pro.cxx
Чувак спросил какие у него есть варианты. При этом уточнил про HTTP(S) я объяснил, что поверх той же инфрастуктуры можно открыть гораздо более скоростной канал, ценой небольшого количества кода.
источник

IZ

Ilia Zviagin in pro.cxx
Andrei K
Делать что?
упаковывать каждый пэйлоад в хттп заголовок и переподнимать соединение, перепроходить TLS handshake
источник

AK

Andrei K in pro.cxx
Это не надо делать на чистых сокетах, но на них надо будет дописать свою инфраструктуру по поднятию соединения и немного транспортного кода. Для вебсокетов это не надо их поддерживают даже утюги.
источник

IZ

Ilia Zviagin in pro.cxx
Andrei K
Чувак спросил какие у него есть варианты. При этом уточнил про HTTP(S) я объяснил, что поверх той же инфрастуктуры можно открыть гораздо более скоростной канал, ценой небольшого количества кода.
Ну, я бы думал, что там два вопроса, несвязанных. Но я понял. Спасибо
источник