Yandex yakavhura kodhi yeuserver framework yekugadzira yakakwirira-mutoro maapplication

Yandex yakaburitsa kodhi yekodhi yeUserver framework, iyo inokutendera iwe kuti ugadzire yakakwira-mutoro zvikumbiro muC ++ inoshanda mune asynchronous mode. Iyo dhizaini yakaedzwa pasi peYandex-level mitoro uye inoshandiswa mumasevhisi akadai seYandex Go, Lavka, Delivery, Musika uye fintech mapurojekiti. Kodhi yemushandisi yakanyorwa muC++ uye ine rezinesi pasi peApache 2.0 rezinesi.

Userver inonyatsokodzera kugadzira maapplication ane microservice architecture. Pakutanga, chimiro chakagadzirirwa Yandex Taxi, nerubatsiro rwayo timu yakachinja kubva kune monolithic application kuenda kune architecture iyo inobvumidza iwe kugadzira yakaparadzana yakazvimirira zvikamu (microservices) uye uzvishandise mune akasiyana maapplication. Microservices inozvimiririra, saka application yakavakirwa pane yakafanana dhizaini iri nyore kugadzirisa uye kuwedzera maficha matsva kwairi. Saka, iyo microservice yekutsvaga mutyairi weTaxi mirairo inogona kushandiswa kune rakafanana basa - semuenzaniso, kutsvaga mutumwa kuti azadzise Yandex Delivery mirairo. Zvimwe chetezvo zvinogona kuitwa nekuverenga nguva yekusvika yemutyairi kana mutakuri uye mamwe mabasa mazhinji.

Iyo dhizaini yakatanga kugadzirwa nekusimbisa kuvimbika uye nyore, uye mukati mayo, zvese zvinodiwa pakusimudzira, kuongororwa, kutarisa, kugadzirisa uye kuedza kunopihwa. Semuenzaniso, mushandisi anoratidza maitiro ekugadzirisa zvikanganiso panguva yekuunganidza, anogona kushanda neakasiyana dhatabhesi, shandura maparamita panhunzi, zvichingodaro. Yakaziviswa rutsigiro rweUbuntu, Debian, Fedora, Arch, Gentoo, macOS masisitimu, x86, x86_64, AArch64, Arm architectures, GCC 8+ uye Clang 9+ compilers, C++17, C++20, C++23 zviyero.

Kuumbwa kwacho kunosanganisira vatyairi veasynchronous basa neDBMS (MongoDB, PostgreSQL, Redis, ClickHouse, MySQL), asynchronously kushanda vatengi uye maseva ezvibvumirano zvakasiyana (HTTP, HTTPS, GRPC, TCP, UDP, TLS), yakaderera-nhanho primitives yekuyananisa manejimendi. uye kuwana kugona kweiyo inoshanda sisitimu, pamwe nepamusoro-soro zvikamu zvekushanda necache, mabasa, akagoverwa makiyi, kutsvaga, metrics, nhamba uye data muJSON/YAML/BSON mafomati. Inotsigira kushandura kurongeka kwesevhisi pane nhunzi, pasina kuimisa.

Kare, Yandex yakatamisa mamwe makiyi tekinoroji kumhando yemapurojekiti akavhurika - semuenzaniso, iyo yakagoverwa dhatabhesi manejimendi system YDB, inokwanisa kugadzirisa mamirioni ezvikumbiro pasekondi, pamwe neCatBoost muchina library library, iyo Yandex inoshandisa muKutsvaga uye nezvimwe. masevhisi.

Source: opennet.ru

Voeg