Яндекс открыл код фреймворка userver для создания высоконагруженных приложений

Автор Сообщение
news_bot ®

Стаж: 6 лет 2 месяца
Сообщений: 27286

Создавать темы news_bot ® написал(а)
29-Июл-2022 16:45

Компания Яндекс опубликовала исходный код фреймворка Userver, позволяющего создавать высоконагруженные приложения на языке С++, работающие в асинхронном режиме. Фреймворк протестирован на нагрузках уровня Яндекса и используется в таких сервисах, как Яндекс Go, Лавка, Доставка, Маркет и финтех-проектах. Код Userver написан на языке C++ и открыт под лицензией Apache 2.0.
Userver лучше всего подходит для разработки приложений с микросервисной архитектурой. Изначально фреймворк разрабатывался для Яндекс Такси, с его помощью команда перешла с монолитного приложения на архитектуру, которая позволяет разрабатывать отдельные независимые компоненты (микросервисы) и использовать их в разных приложениях. Микросервисы автономны, поэтому приложение на подобной архитектуре легко обновлять и добавлять в него новые функции. Так, микросервис поиска водителя на заказы в Такси можно использовать для схожей задачи — например поиска курьера для выполнения заказов Яндекс Доставки. То же самое можно проделать и с расчетом времени прибытия водителя или курьера и многими другими задачами.
Фреймворк изначально создавался с акцентом на надёжность и удобство, а внутри него предусмотрено всё необходимое для разработки, диагностики, мониторинга, отладки и экспериментов. Например, userver подсказывает как исправить ошибки ещё на этапе компиляции, умеет работать с разными базами данных, менять параметры на лету и так далее. Заявлена поддержка систем Ubuntu, Debian, Fedora, Arch, Gentoo, macOS, архитектур x86, x86_64, AArch64, Arm, компиляторов GCC 8+ и Clang 9+, стандартов C++17, C++20, C++23.
В состав входят драйверы для асинхронной работы с СУБД (MongoDB, PostgreSQL, Redis, ClickHouse, MySQL), асинхронно работающие клиенты и серверы для различных протоколов (HTTP, HTTPS, GRPC, TCP, UDP, TLS), низкоуровневые примитивы для управления синхронизацией и доступа к возможностям операционной системы, а также высокоуровневые компоненты для работы с кэшем, задачами, распределёнными блокировками, трассировкой, метриками, статистикой и данными в форматах JSON/YAML/BSON. Поддерживается изменение конфигурации сервиса на лету, без его остановки.
Ранее Яндекс перевёл в форму открытых проектов и другие свои ключевые технологии — например, распределенную систему управления базами данных YDB, способную обрабатывать миллионы запросов в секунду, а также библиотеку машинного обучения CatBoost, которую Яндекс применяет в Поиске и других сервисах.
===========
Источник:
OpenNet.RU
===========

Похожие новости: Теги для поиска: #_userver, #_cpp, #_yandex
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 18-Апр 16:59
Часовой пояс: UTC + 5