Yandex-ek karga handiko aplikazioak sortzeko erabiltzailearen esparrurako kodea ireki du

Yandex-ek Userver esparruaren iturburu-kodea argitaratu du, modu asinkronoan lan egiten duten C++-n karga handiko aplikazioak sortzeko aukera ematen duena. Markoa Yandex mailako kargapean probatu da eta Yandex Go, Lavka, Delivery, Market eta fintech proiektuetan erabiltzen da. Erabiltzailearen kodea C++-n idatzita dago eta kode irekikoa da Apache 2.0 lizentziapean.

Userver mikrozerbitzuen arkitektura duten aplikazioak garatzeko egokiena da. Hasieran, Yandex Taxi-rako esparrua garatu zen, bere laguntzarekin taldeak aplikazio monolitiko batetik osagai independente bereiziak (mikrozerbitzuak) garatzeko eta aplikazio ezberdinetan erabiltzeko aukera ematen duen arkitektura batera aldatu zen. Mikrozerbitzuak autonomoak dira, beraz, antzeko arkitektura batean oinarritutako aplikazio bat erraz eguneratzen da eta horri ezaugarri berriak gehitzen zaizkio. Horrela, Taxi-eskaeretarako gidaria aurkitzeko mikrozerbitzua antzeko zeregin baterako erabil daiteke; adibidez, Yandex Delivery eskaerak betetzeko mezularitza bat aurkitzeko. Gauza bera egin daiteke gidari edo mezulari baten etorrera-ordua eta beste hainbat zeregin kalkulatzearekin.

Markoa fidagarritasunari eta erosotasunari garrantzia emanez sortu zen hasieran, eta, horren barruan, garapena, diagnostikoa, monitorizazioa, arazketa eta esperimentuak egiteko beharrezkoa den guztia eskaintzen da. Adibidez, userver-ek konpilazio fasean akatsak nola konpondu iradokitzen du, datu-base ezberdinekin lan egin dezake, parametroak berehala alda ditzake, etab. Ubuntu, Debian, Fedora, Arch, Gentoo, macOS sistemetarako, x86, x86_64, AArch64, Arm arkitekturak, GCC 8+ eta Clang 9+ konpiladoreetarako, C++17, C++20, C++23 estandarrak onartzen ditu.

Osaerak DBMSrekin lan asinkronorako kontrolatzaileak (MongoDB, PostgreSQL, Redis, ClickHouse, MySQL), modu asinkronoan lan egiten dituzten bezeroak eta hainbat protokolotarako zerbitzariak (HTTP, HTTPS, GRPC, TCP, UDP, TLS), sinkronizazioaren kudeaketarako behe-mailako primitiboak biltzen ditu. eta sistema eragilearen gaitasunetara sarbidea, baita goi-mailako osagaiak ere, cachearekin, zereginekin, banatutako blokeoekin, trazadurarekin, metrikekin, estatistikekin eta JSON/YAML/BSON formatuetako datuekin lan egiteko. Zerbitzuaren konfigurazioa etengabe aldatzea onartzen du, gelditu gabe.

Aurretik, Yandex-ek bere funtsezko beste teknologia proiektu irekietara transferitu zituen - adibidez, banatutako datu-baseak kudeatzeko sistema YDB, segundoko milioika eskaera prozesatzeko gai dena, baita CatBoost ikaskuntza automatikoko liburutegia ere, Yandex-ek bilaketan eta beste batzuetan erabiltzen duena. zerbitzuak.

Iturria: opennet.ru

Gehitu iruzkin berria