Yandex huet de Code fir den Userver Framework opgemaach fir High-load Uwendungen ze kreéieren

Yandex huet de Quellcode vum Userver-Framework publizéiert, wat Iech erlaabt High-load Uwendungen am C ++ ze kreéieren déi am asynchrone Modus funktionnéieren. De Kader gouf ënner Yandex-Niveau Lasten getest a gëtt a Servicer wéi Yandex Go, Lavka, Liwwerung, Maart a Fintech Projeten benotzt. De Code vum Userver ass an C++ geschriwwen an ass ënner der Apache 2.0 Lizenz lizenzéiert.

Userver ass am Beschten gëeegent fir Uwendungen mat Mikroservicearchitektur z'entwéckelen. Am Ufank gouf de Kader fir Yandex Taxi entwéckelt, mat senger Hëllef huet d'Team vun enger monolithescher Applikatioun op eng Architektur gewiesselt, déi Iech erlaabt separat onofhängeg Komponenten (Mikroservicer) z'entwéckelen an se a verschiddenen Uwendungen ze benotzen. Mikroservicer sinn autonom, sou datt eng Applikatioun baséiert op enger ähnlecher Architektur einfach ass ze aktualiséieren an nei Features ze addéieren. Also kann de Mikroservice fir e Chauffeur fir Taxibestellungen ze fannen fir eng ähnlech Aufgab benotzt ginn - zum Beispill, e Courrier ze fannen fir Yandex Liwwerbestellungen ze erfëllen. Datselwecht kann mat der Berechnung vun der Arrivée vun engem Chauffeur oder Courrier a vill aner Aufgaben gemaach ginn.

De Kader gouf am Ufank mat engem Schwéierpunkt op Zouverlässegkeet a Komfort erstallt, an dobannen ass alles wat néideg ass fir Entwécklung, Diagnostik, Iwwerwaachung, Debugging an Experimenter. Zum Beispill, userver proposéiert wéi Fehler an der Kompiléierungsphase ze fixéieren, ka mat verschiddenen Datenbanken schaffen, Parameteren op der Flucht änneren, asw. Deklaréiert Ënnerstëtzung fir Ubuntu, Debian, Fedora, Arch, Gentoo, macOS Systemer, x86, x86_64, AArch64, Arm Architekturen, GCC 8+ a Clang 9+ Compileren, C++17, C++20, C++23 Standards.

D'Zesummesetzung enthält Treiber fir asynchron Aarbecht mat DBMS (MongoDB, PostgreSQL, Redis, ClickHouse, MySQL), asynchron schaffende Clienten a Servere fir verschidde Protokoller (HTTP, HTTPS, GRPC, TCP, UDP, TLS), Low-Level Primitiv fir Synchroniséierungsmanagement an Zougang zu de Fäegkeeten vum Betribssystem, souwéi High-Level Komponenten fir mat Cache, Aufgaben, verdeelt Spären, Tracing, Metriken, Statistiken an Daten an JSON / YAML / BSON Formater ze schaffen. Et ënnerstëtzt d'Ännerung vun der Servicekonfiguratioun op der Flucht, ouni et ze stoppen.

Virdrun huet Yandex seng aner Schlësseltechnologien an d'Form vun oppene Projete transferéiert - zum Beispill de verdeelt Datebankmanagement System YDB, fäeg Millioune Ufroen pro Sekonn ze veraarbechten, souwéi d'CatBoost Maschinnléierebibliothéik, déi Yandex an der Sich an aner benotzt. Servicer.

Source: opennet.ru

Setzt e Commentaire