Mae Yandex wedi agor y cod ar gyfer y fframwaith defnyddiwr ar gyfer creu cymwysiadau llwyth uchel

Mae Yandex wedi cyhoeddi cod ffynhonnell y fframwaith Userver, sy'n eich galluogi i greu cymwysiadau llwyth uchel yn C ++ sy'n gweithio yn y modd asyncronaidd. Mae'r fframwaith wedi'i brofi o dan lwythi lefel Yandex ac fe'i defnyddir mewn gwasanaethau fel Yandex Go, Lavka, Delivery, Market a phrosiectau fintech. Mae cod Defnyddiwr wedi'i ysgrifennu yn C ++ ac mae'n ffynhonnell agored o dan drwydded Apache 2.0.

Defnyddiwr sydd fwyaf addas ar gyfer datblygu cymwysiadau gyda phensaernïaeth microwasanaeth. I ddechrau, datblygwyd y fframwaith ar gyfer Yandex Taxi, gyda'i help y tîm yn newid o gymhwysiad monolithig i bensaernïaeth sy'n eich galluogi i ddatblygu cydrannau annibynnol ar wahân (microwasanaethau) a'u defnyddio mewn gwahanol gymwysiadau. Mae microwasanaethau yn ymreolaethol, felly mae'n hawdd diweddaru cymhwysiad sy'n seiliedig ar bensaernïaeth debyg ac ychwanegu nodweddion newydd ato. Felly, gellir defnyddio'r microwasanaeth ar gyfer dod o hyd i yrrwr ar gyfer archebion Tacsi ar gyfer tasg debyg - er enghraifft, dod o hyd i negesydd i gyflawni gorchmynion Dosbarthu Yandex. Gellir gwneud yr un peth wrth gyfrifo amser cyrraedd gyrrwr neu negesydd a llawer o dasgau eraill.

Crëwyd y fframwaith i ddechrau gyda phwyslais ar ddibynadwyedd a chyfleustra, ac y tu mewn iddo, darperir popeth sy'n angenrheidiol ar gyfer datblygu, diagnosteg, monitro, dadfygio ac arbrofion. Er enghraifft, mae defnyddiwr yn awgrymu sut i drwsio gwallau yn y cam llunio, yn gallu gweithio gyda gwahanol gronfeydd data, newid paramedrau ar y hedfan, ac ati. Cefnogaeth ddatganedig ar gyfer systemau Ubuntu, Debian, Fedora, Arch, Gentoo, macOS, x86, x86_64, AArch64, pensaernïaeth Arm, casglwyr GCC 8+ a Clang 9+, C ++17, C ++20, C ++23 safonau.

Mae'r cyfansoddiad yn cynnwys gyrwyr ar gyfer gwaith asyncronaidd gyda DBMS (MongoDB, PostgreSQL, Redis, ClickHouse, MySQL), cleientiaid sy'n gweithio'n anghydamserol a gweinyddwyr ar gyfer protocolau amrywiol (HTTP, HTTPS, GRPC, TCP, CDU, TLS), cyntefigau lefel isel ar gyfer rheoli cydamseru a mynediad i alluoedd y system weithredu, yn ogystal â chydrannau lefel uchel ar gyfer gweithio gyda storfa, tasgau, cloeon dosbarthedig, olrhain, metrigau, ystadegau a data mewn fformatau JSON/YAML/BSON. Mae'n cefnogi newid cyfluniad y gwasanaeth ar y hedfan, heb ei atal.

Yn flaenorol, trosglwyddodd Yandex ei dechnolegau allweddol eraill i ffurf prosiectau agored - er enghraifft, y system rheoli cronfa ddata ddosbarthedig YDB, sy'n gallu prosesu miliynau o geisiadau yr eiliad, yn ogystal â llyfrgell dysgu peiriannau CatBoost, y mae Yandex yn ei defnyddio yn Search ac eraill. gwasanaethau.

Ffynhonnell: opennet.ru

Ychwanegu sylw