Giablihan sa Yandex ang code alang sa userver framework alang sa paghimo og mga aplikasyon nga adunay taas nga karga

Ang Yandex nagpatik sa source code sa Userver framework, nga nagtugot kanimo sa paghimo og mga high-load nga aplikasyon sa C++ nga nagtrabaho sa asynchronous mode. Ang gambalay gisulayan ubos sa Yandex-level loads ug gigamit sa mga serbisyo sama sa Yandex Go, Lavka, Delivery, Market ug fintech nga mga proyekto. Ang kodigo sa Userver gisulat sa C++ ug bukas nga gigikanan ubos sa lisensya sa Apache 2.0.

Ang userver labing haum alang sa pagpalambo sa mga aplikasyon nga adunay microservice nga arkitektura. Sa sinugdan, ang balangkas gimugna alang sa Yandex Taxi, uban sa tabang niini ang team mibalhin gikan sa usa ka monolithic nga aplikasyon ngadto sa usa ka arkitektura nga nagtugot kanimo sa pagpalambo sa bulag nga independenteng mga sangkap (microservices) ug gamiton kini sa lainlaing mga aplikasyon. Ang mga microservice kay autonomous, mao nga ang usa ka aplikasyon nga gibase sa susama nga arkitektura sayon ​​nga i-update ug idugang ang mga bag-ong feature niini. Busa, ang microservice alang sa pagpangita sa usa ka drayber alang sa Taxi order mahimong gamiton alang sa usa ka susama nga buluhaton - alang sa panig-ingnan, sa pagpangita sa usa ka courier sa pagtuman sa Yandex Delivery order. Mahimo usab kini sa pagkalkulo sa oras sa pag-abot sa usa ka drayber o courier ug daghang uban pang mga buluhaton.

Ang balangkas sa sinugdan gimugna uban ang pagpasiugda sa kasaligan ug kasayon, ug sa sulod niini, ang tanan nga gikinahanglan alang sa pag-uswag, pagdayagnos, pag-monitor, pag-debug ug mga eksperimento gihatag. Pananglitan, gisugyot sa userver kung giunsa ang pag-ayo sa mga sayup sa yugto sa pag-compile, mahimo’g magtrabaho sa lainlaing mga database, magbag-o sa mga parameter sa langaw, ug uban pa. Gideklarar nga suporta alang sa Ubuntu, Debian, Fedora, Arch, Gentoo, macOS system, x86, x86_64, AArch64, Arm architectures, GCC 8+ ug Clang 9+ compiler, C++17, C++20, C++23 standards.

Ang komposisyon naglakip sa mga drayber alang sa asynchronous nga trabaho uban sa DBMS (MongoDB, PostgreSQL, Redis, ClickHouse, MySQL), asynchronously nagtrabaho nga mga kliyente ug mga server alang sa nagkalain-laing mga protocol (HTTP, HTTPS, GRPC, TCP, UDP, TLS), ubos nga lebel primitives alang sa synchronization management ug pag-access sa mga kapabilidad sa operating system, ingon man mga high-level nga mga sangkap alang sa pagtrabaho sa cache, mga buluhaton, gipang-apod-apod nga mga kandado, pagsubay, metrics, estadistika ug datos sa JSON/YAML/BSON nga mga format. Gisuportahan niini ang pagbag-o sa pag-configure sa serbisyo sa langaw, nga wala’y paghunong niini.

Kaniadto, gibalhin sa Yandex ang uban pang mga yawe nga teknolohiya sa porma sa bukas nga mga proyekto - pananglitan, ang giapod-apod nga sistema sa pagdumala sa database nga YDB, nga makahimo sa pagproseso sa milyon-milyon nga mga hangyo matag segundo, ingon man ang CatBoost machine learning library, nga gigamit ni Yandex sa Search ug uban pa. serbisyo.

Source: opennet.ru

Idugang sa usa ka comment