Yandex hà apertu u codice per u framework di l'utilizatori per creà applicazioni d'alta carica

Yandex hà publicatu u codice fonte di u framework Userver, chì permette di creà applicazioni d'alta carica in C++ chì travaglianu in modu asincronu. U quadru hè statu pruvatu sottu carichi Yandex-livellu è hè adupratu in servizii cum'è Yandex Go, Lavka, Delivery, Market è prughjetti fintech. U codice di l'utilizatori hè scrittu in C++ è hè apertu sottu a licenza Apache 2.0.

Userver hè più adattatu per sviluppà applicazioni cù architettura di microserviziu. In principiu, u quadru hè statu sviluppatu per Yandex Taxi, cù u so aiutu, a squadra hà cambiatu da una applicazione monolitica à una architettura chì permette di sviluppà cumpunenti indipendenti separati (microservizi) è l'utilizanu in diverse applicazioni. I microservizi sò autonomi, cusì una applicazione basata nantu à una architettura simile hè faciule d'aghjurnà è aghjunghje novi funziunalità. Cusì, u microserviziu per truvà un cunduttore per ordini di Taxi pò esse usatu per un compitu simili - per esempiu, truvà un corriere per cumpiendu ordini Yandex Delivery. U listessu pò esse fattu cù u calculu di l'ora d'arrivu di un cunduttore o un corriere è parechje altre attività.

U quadru hè statu inizialmente creatu cun enfasi in affidabilità è cunvenzione, è in questu, tuttu ciò chì hè necessariu per u sviluppu, diagnostichi, monitoraghju, debugging è esperimenti hè furnitu. Per esempiu, userver suggerisce cumu per correggere l'errori in a fase di compilazione, pò travaglià cù diverse basa di dati, cambià i parametri nantu à a mosca, è cusì. Supportu dichjaratu per Ubuntu, Debian, Fedora, Arch, Gentoo, sistemi macOS, x86, x86_64, AArch64, architetture Arm, compilatori GCC 8+ è Clang 9+, C++17, C++20, C++23 standard.

A cumpusizioni include drivers per u travagliu asincronu cù DBMS (MongoDB, PostgreSQL, Redis, ClickHouse, MySQL), clienti è servitori chì travaglianu in modu asincronu per diversi protokolli (HTTP, HTTPS, GRPC, TCP, UDP, TLS), primitivi di pocu livellu per a gestione di sincronizazione. è accessu à e capacità di u sistema operatore, è ancu cumpunenti d'altu livellu per travaglià cù cache, compiti, chjusi distribuiti, traccia, metriche, statistiche è dati in formati JSON / YAML / BSON. Supporta cambià a cunfigurazione di u serviziu nantu à a mosca, senza fermallu.

Nanzu, Yandex hà trasfirutu e so altre tecnulugii chjave à a forma di prughjetti aperti - per esempiu, u sistema di gestione di basa di dati distribuitu YDB, capace di processà milioni di richieste per seconda, è ancu a biblioteca di apprendimentu automaticu CatBoost, chì Yandex usa in Ricerca è altri. servizii.

Source: opennet.ru

Add a comment