Yandex het die kode oopgemaak vir die gebruikersraamwerk vir die skep van hoëladingstoepassings

Yandex het die bronkode van die Userver-raamwerk gepubliseer, wat jou toelaat om hoëladingstoepassings in C++ te skep wat in asynchrone modus werk. Die raamwerk is onder Yandex-vlakladings getoets en word gebruik in dienste soos Yandex Go, Lavka, Delivery, Market en fintech-projekte. Userver se kode is in C++ geskryf en is oopbron onder die Apache 2.0-lisensie.

Userver is die beste geskik vir die ontwikkeling van toepassings met mikrodiensargitektuur. Aanvanklik is die raamwerk vir Yandex Taxi ontwikkel, met sy hulp het die span oorgeskakel van 'n monolitiese toepassing na 'n argitektuur wat jou toelaat om afsonderlike onafhanklike komponente (mikrodienste) te ontwikkel en in verskillende toepassings te gebruik. Mikrodienste is outonoom, so 'n toepassing gebaseer op 'n soortgelyke argitektuur is maklik om op te dateer en nuwe kenmerke daarby te voeg. Die mikrodiens vir die vind van 'n bestuurder vir Taxi-bestellings kan dus vir 'n soortgelyke taak gebruik word - byvoorbeeld om 'n koerier te vind om Yandex-afleweringsbestellings uit te voer. Dieselfde kan gedoen word met die berekening van die aankomstyd van 'n bestuurder of koerier en baie ander take.

Die raamwerk is aanvanklik geskep met die klem op betroubaarheid en gerief, en daarbinne word alles verskaf wat nodig is vir ontwikkeling, diagnostiek, monitering, ontfouting en eksperimente. Byvoorbeeld, userver stel voor hoe om foute op die samestellingstadium reg te stel, kan met verskillende databasisse werk, parameters dadelik verander, ensovoorts. Ondersteuning verklaar vir Ubuntu, Debian, Fedora, Arch, Gentoo, macOS-stelsels, x86, x86_64, AArch64, Arm-argitekture, GCC 8+ en Clang 9+ samestellers, C++17, C++20, C++23 standaarde.

Die samestelling bevat drywers vir asynchrone werk met DBMS (MongoDB, PostgreSQL, Redis, ClickHouse, MySQL), asinchronies werkende kliënte en bedieners vir verskeie protokolle (HTTP, HTTPS, GRPC, TCP, UDP, TLS), lae-vlak primitiewe vir sinchronisasie bestuur en toegang tot die vermoëns van die bedryfstelsel, sowel as hoëvlakkomponente om met kas, take, verspreide slotte, opsporing, statistieke, statistieke en data in JSON/YAML/BSON-formate te werk. Dit ondersteun die verandering van die dienskonfigurasie dadelik, sonder om dit te stop.

Voorheen het Yandex sy ander sleuteltegnologieë na die vorm van oop projekte oorgedra - byvoorbeeld die verspreide databasisbestuurstelsel YDB, wat in staat is om miljoene versoeke per sekonde te verwerk, sowel as die CatBoost-masjienleerbiblioteek, wat Yandex in Search en ander gebruik. dienste.

Bron: opennet.ru

Voeg 'n opmerking